
    h3                     0    d dl mZ d dlmZ  G d d      Zy)    )ProgrammingError)cached_propertyc                      e Zd ZdZdZdZg ZdZdZdZ	dZ
dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLeMZNdZOdZPdZQdZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\dZ]dZ^dZ_dZ`dZadZbdZcdZddZedZf eg       ZhdZidZjdZkdZldZmdZndZodZpdZqdZrdZsdZtdZudZvdZwd	 Zxeyd
        Zzeyd        Z{d Z|y)BaseDatabaseFeaturesFTNBigAutoFieldSmallAutoFieldBooleanField    c                     || _         y )N)
connection)selfr   s     c/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/db/backends/base/features.py__init__zBaseDatabaseFeatures.__init__A  s	    $    c                 F    | j                   j                  j                  duS )z5Does this backend support explaining query execution?N)r   opsexplain_prefix)r   s    r   #supports_explaining_query_executionz8BaseDatabaseFeatures.supports_explaining_query_executionD  s     ""11==r   c                    | j                   j                         5 }|j                  d       | j                   j                  d       |j                  d       | j                   j	                          | j                   j                  d       |j                  d       |j                         \  }|j                  d       ddd       |dk(  S # 1 sw Y   dk(  S xY w)	z!Confirm support for transactions.z"CREATE TABLE ROLLBACK_TEST (X INT)Fz(INSERT INTO ROLLBACK_TEST (X) VALUES (8)Tz"SELECT COUNT(X) FROM ROLLBACK_TESTzDROP TABLE ROLLBACK_TESTNr   )r   cursorexecuteset_autocommitrollbackfetchone)r   r   counts      r   supports_transactionsz*BaseDatabaseFeatures.supports_transactionsI  s     __##% 	7NN?@OO**51NNEFOO$$&OO**40NN?@__&FENN56	7 z	7 zs   B'CCc                 H    | j                   sy|j                  j                  S )NF)allows_group_by_selected_pks_metamanaged)r   models     r   %allows_group_by_selected_pks_on_modelz:BaseDatabaseFeatures.allows_group_by_selected_pks_on_modelW  s    00{{"""r   )}__name__
__module____qualname__gis_enabledallows_group_by_pkr   empty_fetchmany_valueupdate_can_self_select!interprets_empty_strings_as_nulls$supports_nullable_unique_constraints.supports_partially_nullable_unique_constraints&supports_deferrable_unique_constraintscan_use_chunked_readscan_return_columns_from_insert can_return_rows_from_bulk_inserthas_bulk_insertuses_savepointscan_release_savepointsrelated_fields_match_typeallow_sliced_subqueries_with_inhas_select_for_updatehas_select_for_update_nowait!has_select_for_update_skip_lockedhas_select_for_update_ofselect_for_update_of_column#test_db_allows_multiple_connectionssupports_unspecified_pksupports_forward_referencestruncates_nameshas_real_datatypesupports_subqueries_in_group_byhas_native_uuid_fieldhas_native_duration_fieldsupports_temporal_subtractionsupports_regex_backreferencing!supports_date_lookup_using_stringsupports_timezoneshas_zoneinfo_database-requires_explicit_null_ordering_when_groupingnulls_order_largest supports_order_by_nulls_modifierorder_by_nulls_firstmax_query_paramsallows_auto_pk_0can_defer_constraint_checks(supports_mixed_date_datetime_comparisonssupports_tablespacessupports_sequence_resetcan_introspect_defaultcan_introspect_foreign_keyscan_introspect_autofield can_introspect_big_integer_fieldcan_introspect_binary_fieldcan_introspect_decimal_fieldcan_introspect_duration_fieldcan_introspect_ip_address_field%can_introspect_positive_integer_field"can_introspect_small_integer_fieldcan_introspect_time_field introspected_big_auto_field_type"introspected_small_auto_field_typeintrospected_boolean_field_typesupports_index_column_ordering!can_introspect_materialized_viewscan_distinct_on_fieldsatomic_transactionscan_rollback_ddl!supports_atomic_references_renamesupports_combined_alterssupports_foreign_keyscan_create_inline_fk!supports_column_check_constraints supports_table_check_constraints can_introspect_check_constraintssupports_paramstyle_pyformatrequires_literal_defaultsconnection_persists_old_columnsr   closed_cursor_error_classhas_case_insensitive_likebare_select_suffiximplied_column_null%supports_select_for_update_with_limitgreatest_least_ignores_nullscan_clone_databasesignores_table_name_casefor_update_after_fromsupports_select_unionsupports_select_intersectionsupports_select_difference%supports_slicing_ordering_in_compound supports_parentheses_in_compound supports_aggregate_filter_clausesupports_index_on_text_fieldsupports_over_clause#supports_frame_range_fixed_distance4only_supports_unbounded_with_preceding_and_followingsupports_cast_with_precisiontime_cast_precision(create_test_procedure_without_params_sql(create_test_procedure_with_int_param_sqlsupports_callproc_kwargs!db_functions_convert_bytes_to_strsetsupported_explain_formatsvalidates_explain_optionssupports_default_in_lead_lagsupports_ignore_conflictsrequires_casted_case_in_updatessupports_partial_indexes%supports_functions_in_partial_indexes*allows_multiple_constraints_on_same_fields&supports_boolean_expr_in_select_clausesupports_json_fieldcan_introspect_json_field!supports_primitives_in_json_fieldhas_native_json_fieldhas_json_operatorssupports_json_field_contains-json_key_contains_list_matching_requires_listr   r   r   r   r#    r   r   r   r      s   K#( ! ).%
 ,0( 6:2-2* %*"',$OO" !&&*#!#( (-%$ #( +/' $
 #' O &*# " !& %*! &*" )-%  ! 5:1   (,$ !   #( 04, ! # "
 #'  % (,$ #' $(  %)! ',# -2) */& !% (6$)9& '5# &*" ).% #   )-%  % !   )-%'+$'+$
 $(  !& ',# !1 !%    -1) $)    $ " !#' !%,1)'+$ (-$ $(  !*/';@8 $(   04,/3,  % ).% !$ !% $(  !% ',#  $,0) 26. .2*  $(,%! $(  5:1% > >  #r   r   N)	django.dbr   django.utils.functionalr   r   r   r   r   <module>r      s    & 3U# U#r   