+
    Tj'                     <    ^ RI t ^ RIHt ^ RIHt  ! R R]4      tR# )    N)BaseDatabaseFeatures)cached_propertyc                     a a ] tR t^t oR%tRtRtRtRtRt	Rt
RtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRtRt Rt!Rt"Rt#Rt$Rt%Rt&]'R 4       t(]'R 4       t)Rt*]'R	 4       t+]'R
 4       t,]'R 4       t-]'R 4       t.]'R 4       t/]'V 3R l4       t0]'R 4       t1]2! ]3Ph                  ! R4      4      t5]'R 4       t6]'R 4       t7]'R 4       t8]2! ]3Ph                  ! R4      4      t9]'R 4       t:]'R 4       t;]'R 4       t<]'R 4       t=]'R 4       t>]'R 4       t?]'R 4       t@]'R 4       tA]'R 4       tB]'R 4       tC]'R 4       tD]2! ]3Ph                  ! R 4      4      tE]'R! 4       tF]'R" 4       tG]'R# 4       tH]'R$ 4       tIR%tJVtKV ;tL# )&DatabaseFeaturesTFz
        CREATE PROCEDURE test_procedure ()
        BEGIN
            DECLARE V_I INTEGER;
            SET V_I = 1;
        END;
    z
        CREATE PROCEDURE test_procedure (P_I INTEGER)
        BEGIN
            DECLARE V_I INTEGER;
            SET V_I = P_I;
        END;
    zINSERT INTO {} () VALUES ()c                B    V P                   P                  '       d   R# R# )
   )r      )   r      
connectionmysql_is_mariadbselfs   &V/var/www/idalgo/venv/lib/python3.14/site-packages/django/db/backends/mysql/features.pyminimum_database_version)DatabaseFeatures.minimum_database_version?   s    ??+++N    c                    R RRRRRRR/# )ciutf8mb4_general_cinon_defaultutf8mb4_esperanto_ci
swedish_ciutf8mb4_swedish_civirtual r   s   &r   test_collations DatabaseFeatures.test_collationsF   s&     &1.-	
 	
r   zUTC_TIMESTAMP(6)c           	     2   R RR0RR0RR0R0 Rm/pV P                   '       g   VP                  RR	0/4       V P                  P                  R8  d   VP                  R
R0/4       V P                  P                  '       g   VP                  RRR0/4       V# )zThis doesn't work on MySQL.zLdb_functions.comparison.test_greatest.GreatestTests.test_coalesce_workaroundzFdb_functions.comparison.test_least.LeastTests.test_coalesce_workaroundzHMySQL doesn't support functional indexes on a function that returns JSONz;schema.tests.SchemaTests.test_func_index_json_key_transformzkMySQL supports multiplying and dividing DurationFields by a scalar value but it's not implemented (#25287).zDexpressions.tests.FTimeDeltaTests.test_durationfield_multiply_dividezWUPDATE ... ORDER BY syntax on MySQL/MariaDB does not support ordering byrelated fields.z%MariaDB and MySQL >= 8.0.18 specific.z4queries.test_explain.ExplainTests.test_mysql_analyzezKNesting of UNIONs at the right-hand side is not supported on MySQL < 8.0.31zGqueries.test_qs_combinators.QuerySetSetOperationTests.test_union_nestedzDMySQL doesn't allow renaming columns referenced by generated columnsz_migrations.test_operations.OperationTests.test_invalid_generated_field_changes_on_rename_storedz`migrations.test_operations.OperationTests.test_invalid_generated_field_changes_on_rename_virtual>   @update.tests.AdvancedTests.test_update_ordered_by_m2m_annotationEupdate.tests.AdvancedTests.test_update_ordered_by_m2m_annotation_descGupdate.tests.AdvancedTests.test_update_ordered_by_inline_m2m_annotationr
   r      )supports_explain_analyzeupdater   mysql_versionr   )r   skipss   & r   django_test_skips"DatabaseFeatures.django_test_skipsQ   s     *++,M>V@ !
. ,,,LL;N> ??((:5LL%,' ///LLPQ 
 r   c                <    V P                   P                  R,          # )zI
Internal method used in Django tests. Don't rely on this from your code
default_storage_enginer   mysql_server_datar   s   &r   _mysql_storage_engine&DatabaseFeatures._mysql_storage_engine   s    
 001IJJr   c                4    RV P                   P                  9   # )z\
Autoincrement primary key can be set to 0 if it doesn't generate new
autoincrement values.
NO_AUTO_VALUE_ON_ZERO)r   sql_moder   s   &r   allows_auto_pk_0!DatabaseFeatures.allows_auto_pk_0   s     '$//*B*BBBr   c                .    V P                   P                  # Nr   r   s   &r   update_can_self_select'DatabaseFeatures.update_can_self_select       ///r   c                     V P                   R8g  # )z-Confirm support for introspected foreign keysMyISAMr0   r   s   &r   can_introspect_foreign_keys,DatabaseFeatures.can_introspect_foreign_keys   s     ))X55r   c           	     0   < / \         SV `  CR RRRRRRR/C# )BinaryField	TextFieldBooleanFieldIntegerFieldDurationFieldBigIntegerFieldGenericIPAddressField	CharField)superintrospected_field_types)r   	__class__s   &r   rK   )DatabaseFeatures.introspected_field_types   s4    
g.
;N.#[
 	
r   c                .    V P                   P                  # r8   r   r   s   &r   can_return_columns_from_insert/DatabaseFeatures.can_return_columns_from_insert   r;   r   rO   c                <    V P                   P                  R ,          # )has_zoneinfo_databaser.   r   s   &r   rR   &DatabaseFeatures.has_zoneinfo_database   s    001HIIr   c                <    V P                   P                  R ,          # )sql_auto_is_nullr.   r   s   &r   is_sql_auto_is_null_enabled,DatabaseFeatures.is_sql_auto_is_null_enabled   s    001CDDr   c                p    V P                   P                  '       d   R # V P                   P                  R8  # Tr
   r      r   r   r(   r   s   &r   !supports_column_check_constraints2DatabaseFeatures.supports_column_check_constraints   *    ??+++,,
::r   r]   c                p    V P                   P                  '       d   R # V P                   P                  R8  # rY   r\   r   s   &r    can_introspect_check_constraints1DatabaseFeatures.can_introspect_check_constraints   r_   r   c                8    V P                   P                  '       * # r8   r   r   s   &r   has_select_for_update_of)DatabaseFeatures.has_select_for_update_of       ??3333r   c                p    V P                   P                  ;'       g    V P                   P                  R8  # )r
   )r
   r      r\   r   s   &r   r&   )DatabaseFeatures.supports_explain_analyze   s5    // 
 
4??3P3P U
 4
 	
r   c                    0 RmpV P                   P                  '       g-   V P                   P                  R8  d   VP                  R4       V# )JSONTREE>   rk   TEXTTRADITIONALrZ   )r   r   r(   add)r   formatss   & r   supported_explain_formats*DatabaseFeatures.supported_explain_formats   sC     2///DOO4Q4Q V
 5

 KKr   c                     V P                   R8g  # )z9
All storage engines except MyISAM support transactions.
r=   r>   r   s   &r   supports_transactions&DatabaseFeatures.supports_transactions   s    
 ))X55r   c                <    V P                   P                  R ,          # )lower_case_table_namesr.   r   s   &r   ignores_table_name_case(DatabaseFeatures.ignores_table_name_case   s    001IJJr   c                8    V P                   P                  '       * # r8   r   r   s   &r   supports_default_in_lead_lag-DatabaseFeatures.supports_default_in_lead_lag   s     ??3333r   c                V    V P                   P                  '       d   V P                  # R # )T)r   r   ra   r   s   &r   can_introspect_json_field*DatabaseFeatures.can_introspect_json_field   s!    ??+++888r   c                    V P                   R 8w  d   R# V P                  P                  '       d   V P                  P                  R8  # R# )InnoDBFT)r   r
   )r0   r   r   r(   r   s   &r   supports_index_column_ordering/DatabaseFeatures.supports_index_column_ordering   s;    %%1??+++??00G;;r   c                    V P                   P                  '       * ;'       d1    V P                  R 8g  ;'       d    V P                   P                  R8  # )r=   r
   r      )r   r   r0   r(   r   s   &r   supports_expression_indexes,DatabaseFeatures.supports_expression_indexes  sM     000 < <**h6< <--;	
r   c                t    V P                   P                  pT;'       g    V P                   P                  R8  # )r
   r$   r\   r   
is_mariadbs   & r   supports_select_intersection-DatabaseFeatures.supports_select_intersection  s.    __55
HHT__::jHHr   r   c                p    V P                   P                  '       d   R # V P                   P                  R8  # )Tr   r\   r   s   &r   supports_expression_defaults-DatabaseFeatures.supports_expression_defaults  r_   r   c                t    V P                   P                  pT;'       d    V P                   P                  R8  # )r   )r      r\   r   s   & r   has_native_uuid_field&DatabaseFeatures.has_native_uuid_field  s.    __55
FFdoo;;wFFr   c                p    V P                   P                  '       d   R V P                   P                  9  # R# )ONLY_FULL_GROUP_BYT)r   r   r4   r   s   &r   allows_group_by_selected_pks-DatabaseFeatures.allows_group_by_selected_pks  s*    ??+++'t/G/GGGr   c                8    V P                   P                  '       * # r8   r   r   s   &r   supports_any_value#DatabaseFeatures.supports_any_value%  rf   r   r   )M__name__
__module____qualname____firstlineno__empty_fetchmany_valuerelated_fields_match_typeallow_sliced_subqueries_with_inhas_select_for_updatehas_select_for_update_nowait!has_select_for_update_skip_lockedsupports_forward_referencessupports_regex_backreferencing!supports_date_lookup_using_stringsupports_timezones-requires_explicit_null_ordering_when_groupingatomic_transactionscan_clone_databases"supports_aggregate_order_by_clausesupports_commentssupports_comments_inlinesupports_temporal_subtraction%supports_slicing_ordering_in_compoundsupports_index_on_text_fieldsupports_over_clause#supports_frame_range_fixed_distancesupports_update_conflictscan_rename_index"delete_can_self_reference_subquery(create_test_procedure_without_params_sql(create_test_procedure_with_int_param_sqlsupports_partial_indexescollate_as_index_expressioninsert_test_table_with_defaults supports_order_by_nulls_modifierorder_by_nulls_firstsupports_logical_xor!supports_stored_generated_columns"supports_virtual_generated_columnssupports_json_negative_indexingr   r   r   test_now_utc_templater*   r0   r5   r9   r?   rK   rO   propertyoperator
attrgetter can_return_rows_from_bulk_insertrR   rV   r]    supports_table_check_constraintsra   rd   r&   rq   rt   rx   r{   r~   r   r   r   supports_select_differencer   r   r   r   __static_attributes____classdictcell____classcell__)rL   __classdict__s   @@r   r   r      sg     $&+# #' (,%"'%*"(-%481)-&#$(!,0)#( *.' $).&0,0,  % #'&C#',$(,%)-&&+#  
 
 /6 6p K K C C 0 0 6 6 
 
 0 0 (0<=($ J J E E ; ;
 (0?@($ ; ;
 4 4 
 
 
 
 6 6 K K 4 4  
   
 
 I I "*:;" ; ;
 G G  
 4 4 4r   r   )r    django.db.backends.base.featuresr   django.utils.functionalr   r   r   r   r   <module>r      s     A 3`4+ `4r   