from typing import Any

from django.db.backends.base.features import (
    BaseDatabaseFeatures as BaseDatabaseFeatures,
)

class DatabaseFeatures(BaseDatabaseFeatures):
    allows_group_by_selected_pks: bool = ...
    can_return_columns_from_insert: bool = ...
    can_return_rows_from_bulk_insert: bool = ...
    has_real_datatype: bool = ...
    has_native_uuid_field: bool = ...
    has_native_duration_field: bool = ...
    has_native_json_field: bool = ...
    can_defer_constraint_checks: bool = ...
    has_select_for_update: bool = ...
    has_select_for_update_nowait: bool = ...
    has_select_for_update_of: bool = ...
    has_select_for_update_skip_locked: bool = ...
    can_release_savepoints: bool = ...
    supports_tablespaces: bool = ...
    supports_transactions: bool = ...  # type: ignore [assignment]
    can_introspect_autofield: bool = ...
    can_introspect_ip_address_field: bool = ...
    can_introspect_materialized_views: bool = ...
    can_introspect_small_integer_field: bool = ...
    can_distinct_on_fields: bool = ...
    can_rollback_ddl: bool = ...
    supports_combined_alters: bool = ...
    nulls_order_largest: bool = ...
    closed_cursor_error_class: Any = ...
    has_case_insensitive_like: bool = ...
    greatest_least_ignores_nulls: bool = ...
    can_clone_databases: bool = ...
    supports_temporal_subtraction: bool = ...
    supports_slicing_ordering_in_compound: bool = ...
    create_test_procedure_without_params_sql: str = ...
    create_test_procedure_with_int_param_sql: str = ...
    requires_casted_case_in_updates: bool = ...
    supports_over_clause: bool = ...
    only_supports_unbounded_with_preceding_and_following: bool = ...
    supports_aggregate_filter_clause: bool = ...
    supported_explain_formats: Any = ...
    validates_explain_options: bool = ...
    supports_deferrable_unique_constraints: bool = ...
    has_json_operators: bool = ...
    json_key_contains_list_matching_requires_list: bool = ...
    def is_postgresql_9_6(self) -> Any: ...
    def is_postgresql_10(self) -> Any: ...
    def is_postgresql_11(self) -> Any: ...
    def is_postgresql_12(self) -> Any: ...
    has_bloom_index: Any = ...
    has_brin_autosummarize: Any = ...
    has_phraseto_tsquery: Any = ...
    has_websearch_to_tsquery: Any = ...
    supports_table_partitions: Any = ...
