
    h*>                     0    S SK Jr  S SKJr   " S S5      rg)    )ProgrammingError)cached_propertyc                      \ rS rSrSrSrSrSrSr/ r	Sr
SrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"Sr#Sr$Sr%Sr&Sr'Sr(Sr)Sr*Sr+Sr,Sr-Sr.Sr/Sr0Sr1Sr2Sr3Sr4Sr5Sr6Sr7SSSSS	S
SSSSSSSSSS.r8Sr9Sr:Sr;Sr<Sr=Sr>Sr?Sr@SrASrBSrCSrDSrESrFSrGSrHSrISrJSrKSrL\MrNSrOSrPSrQSrRSrSSrTSrUSrVSrWSrXSrYSrZSr[Sr\Sr]Sr^Sr_Sr`SraSrbSrcSrdSreSrfSrgSrh\i" 5       rjSrkSrlSrmSrnSroSrpSrqSrrSrsSrtSruSrvSrwSrxSrySrzSr{Sr|Sr}Sr~SrSrSrSrSrSrSrSrSrSrSrSSSSSS.rSrSr\i" 5       r0 rS r\S 5       r\S 5       rS rSrg)BaseDatabaseFeatures   NFT	AutoFieldBigAutoFieldBigIntegerFieldBinaryFieldBooleanField	CharFieldDurationFieldGenericIPAddressFieldIntegerFieldPositiveBigIntegerFieldPositiveIntegerFieldPositiveSmallIntegerFieldSmallAutoFieldSmallIntegerField	TimeField)r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r       )cicsnon_default
swedish_civirtualc                     Xl         g )N
connection)selfr    s     R/var/www/html/env/lib/python3.13/site-packages/django/db/backends/base/features.py__init__BaseDatabaseFeatures.__init__  s    $    c                 F    U R                   R                  R                  SL$ )z5Does this backend support explaining query execution?N)r    opsexplain_prefix)r!   s    r"   #supports_explaining_query_execution8BaseDatabaseFeatures.supports_explaining_query_execution  s     ""11==r%   c                    U R                   R                  5        nUR                  S5        U R                   R                  S5        UR                  S5        U R                   R	                  5         U R                   R                  S5        UR                  S5        UR                  5       u  nUR                  S5        SSS5        US:H  $ ! , (       d  f       WS:H  $ = f)	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_transactions*BaseDatabaseFeatures.supports_transactions  s     __##%NN?@OO**51NNEFOO$$&OO**40NN?@(HUNN56 & z &% zs   B'C
C!c                 R    U R                   (       d  gUR                  R                  $ )NF)allows_group_by_selected_pks_metamanaged)r!   models     r"   %allows_group_by_selected_pks_on_model:BaseDatabaseFeatures.allows_group_by_selected_pks_on_model  s    00{{"""r%   r   )__name__
__module____qualname____firstlineno__minimum_database_versiongis_enabledallows_group_by_lobr5   allows_group_by_select_indexempty_fetchmany_valueupdate_can_self_select"delete_can_self_reference_subquery!interprets_empty_strings_as_nulls$supports_nullable_unique_constraints.supports_partially_nullable_unique_constraints*supports_nulls_distinct_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has_select_for_no_key_update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*ignores_unnecessary_order_by_in_subqueries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_tablespacessupports_sequence_resetcan_introspect_defaultcan_introspect_foreign_keysintrospected_field_typessupports_index_column_ordering!can_introspect_materialized_viewscan_distinct_on_fieldsatomic_transactionscan_rollback_ddl+schema_editor_uses_clientside_param_bindingsupports_combined_alterssupports_foreign_keyscan_create_inline_fkcan_rename_indexindexes_foreign_keys!supports_column_check_constraints supports_table_check_constraints can_introspect_check_constraintssupports_paramstyle_pyformatrequires_literal_defaultssupports_expression_defaults"supports_default_keyword_in_insert'supports_default_keyword_in_bulk_insert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#requires_compound_order_by_subquery supports_aggregate_filter_clausesupports_index_on_text_fieldsupports_over_clause#supports_frame_range_fixed_distancesupports_frame_exclusion4only_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,create_test_table_with_composite_primary_keysupports_callproc_kwargssetsupported_explain_formatssupports_default_in_lead_lagsupports_ignore_conflictssupports_update_conflicts%supports_update_conflicts_with_targetrequires_casted_case_in_updatessupports_partial_indexes%supports_functions_in_partial_indexessupports_covering_indexessupports_expression_indexescollate_as_index_expression*allows_multiple_constraints_on_same_fields&supports_boolean_expr_in_select_clausesupports_comparing_boolean_expr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_listhas_json_object_functionsupports_collation_on_charfieldsupports_collation_on_textfield%supports_non_deterministic_collationssupports_commentssupports_comments_inline!supports_stored_generated_columns"supports_virtual_generated_columnssupports_logical_xor+prohibits_null_characters_in_text_exceptionsupports_unlimited_charfieldtest_collationstest_now_utc_templateinsert_test_table_with_defaultsdjango_test_expected_failuresdjango_test_skipsr#   r   r)   r2   r9   __static_attributes__ r%   r"   r   r      s_   #K#( #' ! *.& ).%
 ,0( 6:2 27. .3* %*"',$OO" !&&*#!#( (-%$#(  #( +/' $
 #' O &*# 26. " !& %*! &*" )-%  ! 5:1   (,$ !   #( ! # "
 #'
 !&,$& (!8&#< 6%@*0  & &*" ).% #  27/  % !      )-%'+$'+$
 $(  !& $(  *.& /3+ ',# !1 !&    -1) $)    $ " !#' !%,1)'+$*/' (-$ $(  !*/'$;@8 $(   04,/3, 480  % !$ $(  !% !&,1) ',#  $,0) %"&"' 26. .2* '+#  $(,%! $(  5:1# '+#&*#,0) $ ).%).& ! 37/ $)  O ! '+# %(E! % > >  #r%   r   N)	django.dbr   django.utils.functionalr   r   r   r%   r"   <module>r      s    & 3\# \#r%   