ó
    ¼Rj/  ã                   ó:   • S SK r S SKJr  S SKJr   " S S\5      rg)é    N)ÚBaseDatabaseFeatures)Úcached_propertyc                   ó^  ^ • \ 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 5       r\S	 5       r S
r!\S 5       r"\S 5       r#\S 5       r$\S 5       r%\S 5       r&\U 4S j5       r'\S 5       r(\)" \*RV                  " S5      5      r,\S 5       r-\S 5       r.\S 5       r/\)" \*RV                  " S5      5      r0\S 5       r1\)" \*RV                  " S5      5      r2\S 5       r3\S 5       r4\S 5       r5\S 5       r6\S 5       r7\S 5       r8\S 5       r9\)" \*RV                  " S 5      5      r:\)" \*RV                  " S 5      5      r;\S! 5       r<\S" 5       r=\S# 5       r>\S$ 5       r?\S% 5       r@\S& 5       rA\)" \*RV                  " S'5      5      rB\S( 5       rCSrDU =rE$ ))ÚDatabaseFeaturesé   © TFz…
        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¸
        CREATE TABLE test_table_composite_pk (
            column_1 INTEGER NOT NULL,
            column_2 INTEGER NOT NULL,
            PRIMARY KEY(column_1, column_2)
        )
    c                 ó<   • U R                   R                  (       a  gg)N)é
   é   )é   ©Ú
connectionÚmysql_is_mariadb©Úselfs    ÚMD:\diplom_project\venv\Lib\site-packages\django/db/backends/mysql/features.pyÚminimum_database_versionÚ)DatabaseFeatures.minimum_database_version:   s   € à�?‰?×+×+Øàó    c                 óü   • SnU R                   R                  (       a  U R                   R                  S:¼  d5  U R                   R                  (       d  U R                   R                  S:¼  a  SnU S3U S3U S3S.$ )	NÚutf8©r
   é   )r   r   é   Úutf8mb3Ú_general_ciÚ_esperanto_ciÚ_swedish_ci)ÚciÚnon_defaultÚ
swedish_ci©r   r   Úmysql_version)r   Úcharsets     r   Útest_collationsÚ DatabaseFeatures.test_collationsA   st   € àˆà�O‰O×,×,Ø—‘×-Ñ-°Ó8à—‘×0×0Ø—‘×-Ñ-°Ó;ð  ˆGà�I˜[Ð)Ø%˜Y mÐ4Ø$˜I [Ð1ñ
ð 	
r   zUTC_TIMESTAMP(6)c                 óª  • SS1SS1S1S1SS1S	.nU R                   R                  (       a8  S
U R                   R                  s=:  a  S:  a  O  OUR                  SS105        U R                   R                  (       a8  SU R                   R                  s=:  a  S:  a  O  OUR                  SS105        U R                  (       d  UR                  SS105        SU R                   R
                  ;   a  UR                  SS105        U R                   R                  (       a.  U R                   R                  S:¼  a  UR                  SS105        U$ )NzLdb_functions.comparison.test_greatest.GreatestTests.test_coalesce_workaroundzFdb_functions.comparison.test_least.LeastTests.test_coalesce_workaroundz5model_fields.test_textfield.TextFieldTests.test_emojiz4model_fields.test_charfield.TestCharField.test_emojiz;schema.tests.SchemaTests.test_func_index_json_key_transformzDexpressions.tests.FTimeDeltaTests.test_durationfield_multiply_dividezGupdate.tests.AdvancedTests.test_update_ordered_by_inline_m2m_annotationz@update.tests.AdvancedTests.test_update_ordered_by_m2m_annotation)zThis doesn't work on MySQL.z4Running on MySQL requires utf8mb4 encoding (#18392).zHMySQL doesn't support functional indexes on a function that returns JSONzkMySQL supports multiplying and dividing DurationFields by a scalar value but it's not implemented (#25287).zWUPDATE ... ORDER BY syntax on MySQL/MariaDB does not support ordering byrelated fields.)r
   r   é   ©r
   é   é   z*https://jira.mariadb.org/browse/MDEV-19598zCschema.tests.SchemaTests.test_alter_not_unique_field_to_primary_key)r
   r   é   )r
   r*   z*https://jira.mariadb.org/browse/MDEV-22775zBschema.tests.SchemaTests.test_alter_pk_with_self_referential_fieldz%MariaDB and MySQL >= 8.0.18 specific.z4queries.test_explain.ExplainTests.test_mysql_analyzeÚONLY_FULL_GROUP_BYzjGROUP BY cannot contain nonaggregated column when ONLY_FULL_GROUP_BY mode is enabled on MySQL, see #34262.zOaggregation.tests.AggregateTestCase.test_group_by_nested_expression_with_paramsz„ALTER TABLE ... RENAME COLUMN statement doesn't rename inline constraints on MariaDB 10.5.2+, this is fixed in Django 5.0+ (#34320).zGschema.tests.SchemaTests.test_rename_field_with_check_to_truncated_name)r   r   r#   ÚupdateÚsupports_explain_analyzeÚsql_mode)r   Úskipss     r   Údjango_test_skipsÚ"DatabaseFeatures.django_test_skipsU   s¡  € ð+ð+ð,ð HØFðEð Nðð
 Wð@ð
?àRð ñ)
ˆð4 �?‰?×+×+ð 1
ð �O‰O×)Ñ)õ	17ð -7ö	17ð
 �L‰Là@ðEðCðôð �?‰?×+×+ð 1
ð �O‰O×)Ñ)õ	14ð -4ö	14ð
 �L‰Là@ðDðCðôð ×,×,Ø�L‰Là;ØNð>ðôð   4§?¡?×#;Ñ#;Ó;Ø�L‰LðOðFðQðôð �?‰?×+×+°·±×0MÑ0Mð R
ó 1
ð
 �L‰Lð ðIð"ðô	ð ˆr   c                 ó4   • U R                   R                  S   $ )zGInternal 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Ñ0Ð1IÑJÐJr   c                 ó4   • SU R                   R                  ;   $ )z\
Autoincrement primary key can be set to 0 if it doesn't generate new
autoincrement values.
ÚNO_AUTO_VALUE_ON_ZERO)r   r0   r   s    r   Úallows_auto_pk_0Ú!DatabaseFeatures.allows_auto_pk_0³   s   € ð '¨$¯/©/×*BÑ*BÑBÐBr   c                 ón   • U R                   R                  =(       a    U R                   R                  S:¬  $ )N)r
   r(   r+   r"   r   s    r   Úupdate_can_self_selectÚ'DatabaseFeatures.update_can_self_select»   ó0   € à�‰×/Ñ/÷ 
°D·O±O×4QÑ4Qð V
ñ 5
ð 	
r   c                 ó    • U R                   S:g  $ )z-Confirm support for introspected foreign keysÚMyISAM©r8   r   s    r   Úcan_introspect_foreign_keysÚ,DatabaseFeatures.can_introspect_foreign_keysÃ   s   € ð ×)Ñ)¨XÑ5Ð5r   c                 ó*   >• 0 [         TU ]  ESSSSS.E$ )NÚ	TextFieldÚIntegerFieldÚBigIntegerFieldÚ	CharField)ÚBinaryFieldÚBooleanFieldÚDurationFieldÚGenericIPAddressField)ÚsuperÚintrospected_field_types)r   Ú	__class__s    €r   rQ   Ú)DatabaseFeatures.introspected_field_typesÈ   s+   ø€ ð
Ü‰gÑ.ð
à&Ø*Ø.Ø%0ò
ð 	
r   c                 ón   • U R                   R                  =(       a    U R                   R                  S:¬  $ )N)r
   r*   r   r"   r   s    r   Úcan_return_columns_from_insertÚ/DatabaseFeatures.can_return_columns_from_insertÒ   rA   r   rU   c                 ó4   • U R                   R                  S   $ )NÚhas_zoneinfo_databaser6   r   s    r   rX   Ú&DatabaseFeatures.has_zoneinfo_databaseÞ   s   € à�‰×0Ñ0Ð1HÑIÐIr   c                 ó4   • U R                   R                  S   $ )NÚsql_auto_is_nullr6   r   s    r   Úis_sql_auto_is_null_enabledÚ,DatabaseFeatures.is_sql_auto_is_null_enabledâ   s   € à�‰×0Ñ0Ð1CÑDÐDr   c                 ól   • U R                   R                  (       a  gU R                   R                  S:¬  $ )NT)r   r   r+   r"   r   s    r   Úsupports_over_clauseÚ%DatabaseFeatures.supports_over_clauseæ   ó'   € à�?‰?×+×+ØØ�‰×,Ñ,°	Ñ9Ð9r   r_   c                 ól   • U R                   R                  (       a  gU R                   R                  S:¬  $ ©NT©r   r   é   r"   r   s    r   Ú!supports_column_check_constraintsÚ2DatabaseFeatures.supports_column_check_constraintsð   ó'   € à�?‰?×+×+ØØ�‰×,Ñ,°
Ñ:Ð:r   rf   c                 ól   • U R                   R                  (       a  gU R                   R                  S:¬  $ rc   r"   r   s    r   Ú can_introspect_check_constraintsÚ1DatabaseFeatures.can_introspect_check_constraintsú   rh   r   c                 óœ   • U R                   R                  (       a  U R                   R                  S:¬  $ U R                   R                  S:¬  $ )Nr   ©r   r   é   r"   r   s    r   Ú!has_select_for_update_skip_lockedÚ2DatabaseFeatures.has_select_for_update_skip_locked   s9   € à�?‰?×+×+Ø—?‘?×0Ñ0°GÑ;Ð;Ø�‰×,Ñ,°	Ñ9Ð9r   c                 ól   • U R                   R                  (       a  gU R                   R                  S:¬  $ )NTrm   r"   r   s    r   Úhas_select_for_update_nowaitÚ-DatabaseFeatures.has_select_for_update_nowait  ra   r   c                 óx   • U R                   R                  (       + =(       a    U R                   R                  S:¬  $ )Nrm   r"   r   s    r   Úhas_select_for_update_ofÚ)DatabaseFeatures.has_select_for_update_of  s0   € ð —‘×0Ñ0Ô0÷ ;Ø—‘×-Ñ-°Ñ:ð	
r   c                 ón   • U R                   R                  =(       d    U R                   R                  S:¬  $ )N)r   r   é   r"   r   s    r   r/   Ú)DatabaseFeatures.supports_explain_analyze  s0   € à�‰×/Ñ/÷ 
°4·?±?×3PÑ3Pð U
ñ 4
ð 	
r   c                 óš   • 1 SknU R                   R                  (       d+  U R                   R                  S:¼  a  UR                  S5        U$ )N>   ÚJSONÚTEXTÚTRADITIONALrd   ÚTREE)r   r   r#   Úadd)r   Úformatss     r   Úsupported_explain_formatsÚ*DatabaseFeatures.supported_explain_formats  s@   € ò 2ˆØ�‰×/×/°D·O±O×4QÑ4Qð V
ó 5
ð
 �K‰K˜ÔØˆr   c                 ó    • U R                   S:g  $ )z9
All storage engines except MyISAM support transactions.
rC   rD   r   s    r   Úsupports_transactionsÚ&DatabaseFeatures.supports_transactions(  s   € ð
 ×)Ñ)¨XÑ5Ð5r   r„   c                 ó4   • U R                   R                  S   $ )NÚlower_case_table_namesr6   r   s    r   Úignores_table_name_caseÚ(DatabaseFeatures.ignores_table_name_case2  s   € à�‰×0Ñ0Ð1IÑJÐJr   c                 ó8   • U R                   R                  (       + $ )Nr   r   s    r   Úsupports_default_in_lead_lagÚ-DatabaseFeatures.supports_default_in_lead_lag6  s   € ð —?‘?×3Ñ3Ô3Ð3r   c                 óR   • U R                   R                  (       a  U R                  $ g)NT)r   r   rj   r   s    r   Úcan_introspect_json_fieldÚ*DatabaseFeatures.can_introspect_json_field;  s   € à�?‰?×+×+Ø×8Ñ8Ð8Ør   c                 ó¾   • U R                   S:w  a  gU R                  R                  (       a  U R                  R                  S:¬  $ U R                  R                  S:¬  $ )NÚInnoDBF)r
   r   rm   )r8   r   r   r#   r   s    r   Úsupports_index_column_orderingÚ/DatabaseFeatures.supports_index_column_orderingA  sJ   € à×%Ñ%¨Ó1ØØ�?‰?×+×+Ø—?‘?×0Ñ0°GÑ;Ð;Ø�‰×,Ñ,°	Ñ9Ð9r   c                 ó¤   • U R                   R                  (       + =(       a/    U R                  S:g  =(       a    U R                   R                  S:¬  $ )NrC   )r   r   é   )r   r   r8   r#   r   s    r   Úsupports_expression_indexesÚ,DatabaseFeatures.supports_expression_indexesI  sC   € ð —‘×0Ñ0Ô0÷ <Ø×*Ñ*¨hÑ6÷<à—‘×-Ñ-°Ñ;ð	
r   c                 ór   • U R                   R                  nU=(       d    U R                   R                  S:¬  $ )N)r   r   é   r"   )r   Ú
is_mariadbs     r   Úsupports_select_intersectionÚ-DatabaseFeatures.supports_select_intersectionQ  s+   € à—_‘_×5Ñ5ˆ
Ø×H˜TŸ_™_×:Ñ:¸jÑHÐHr   r›   c                 ól   • U R                   R                  (       a  U R                   R                  S:¬  $ g)Nr)   Tr"   r   s    r   Úcan_rename_indexÚ!DatabaseFeatures.can_rename_indexZ  s'   € à�?‰?×+×+Ø—?‘?×0Ñ0°JÑ>Ð>Ør   )FÚ__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úempty_fetchmany_valueÚallows_group_by_selected_pksÚrelated_fields_match_typeÚallow_sliced_subqueries_with_inÚhas_select_for_updateÚ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_commentsÚsupports_comments_inlineÚsupports_temporal_subtractionÚ%supports_slicing_ordering_in_compoundÚsupports_index_on_text_fieldÚsupports_update_conflictsÚ(create_test_procedure_without_params_sqlÚ(create_test_procedure_with_int_param_sqlÚ,create_test_table_with_composite_primary_keyÚsupports_partial_indexesÚcollate_as_index_expressionÚ supports_order_by_nulls_modifierÚorder_by_nulls_firstÚsupports_logical_xorr   r   r%   Útest_now_utc_templater2   r8   r<   r?   rE   rQ   rU   ÚpropertyÚoperatorÚ
attrgetterÚ can_return_rows_from_bulk_insertrX   r\   r_   Ú#supports_frame_range_fixed_distancerf   Ú supports_table_check_constraintsrj   ro   rr   ru   r/   r�   r„   Úuses_savepointsÚcan_release_savepointsrˆ   r‹   rŽ   r’   r–   r›   Úsupports_select_differencerž   Ú__static_attributes__Ú__classcell__)rR   s   @r   r   r      su  ø† ØÐØ#'Ð Ø $Ðà&+Ð#Ø ÐØ"'ÐØ%*Ð"Ø(-Ð%ØÐØ48Ð1ØÐØÐØÐØ#ÐØ$(Ð!Ø,0Ð)Ø#(Ð Ø $Ðð0Ð,ð0Ð,ð4Ð0ð  %Ðð #'Ðà',Ð$ØÐØÐàñó ðð ñ
ó ð
ð" /ÐàñVó ðVðp ñKó ðKð ñCó ðCð ñ
ó ð
ð ñ6ó ð6ð ô
ó ð
ð ñ
ó ð
ñ (0Ø×ÒÐ<Ó=ó(Ð$ð ñJó ðJð ñEó ðEð ñ:ó ð:ñ
 +3Ø×ÒÐ2Ó3ó+Ð'ð ñ;ó ð;ñ
 (0Ø×ÒÐ?Ó@ó(Ð$ð ñ;ó ð;ð
 ñ:ó ð:ð
 ñ:ó ð:ð
 ñ
ó ð
ð ñ
ó ð
ð ñ
ó ð
ð ñ6ó ð6ñ ˜x×2Ò2Ð3JÓKÓL€OÙ% h×&9Ò&9Ð:QÓ&RÓSÐàñKó ðKð ñ4ó ð4ð ñó ðð
 ñ:ó ð:ð ñ
ó ð
ð ñIó ðIñ "*Ø×ÒÐ:Ó;ó"Ðð ñó ör   r   )rÀ   Ú django.db.backends.base.featuresr   Údjango.utils.functionalr   r   r   r   r   Ú<module>rÌ      s   ðÛ å AÝ 3ôWÐ+õ Wr   