Ë
    ¦#ijÎ'  ã                   ó:   — d dl Z d dlmZ d dlmZ  G d„ de«      Zy)é    N)ÚBaseDatabaseFeatures)Úcached_propertyc                   óè  ‡ — e 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%e&d„ «       Z'e&d„ «       Z(d	Z)e&d
„ «       Z*e&d„ «       Z+e&d„ «       Z,e&d„ «       Z-e&d„ «       Z.e&ˆ fd„«       Z/e&d„ «       Z0 e1 e2jf                  d«      «      Z4e&d„ «       Z5e&d„ «       Z6e&d„ «       Z7 e1 e2jf                  d«      «      Z8e&d„ «       Z9e&d„ «       Z:e&d„ «       Z;e&d„ «       Z<e&d„ «       Z=e&d„ «       Z>e&d„ «       Z?e&d„ «       Z@e&d„ «       ZAe&d„ «       ZBe&d „ «       ZC e1 e2jf                  d!«      «      ZDe&d"„ «       ZEe&d#„ «       ZFe&d$„ «       ZGe&d%„ «       ZHˆ xZIS )&Ú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INSERT INTO {} () VALUES ()c                 ó2   — | j                   j                  ryy)N)é
   é   )é   r   é   ©Ú
connectionÚmysql_is_mariadb©Úselfs    ú[/var/www/html/office/venv/lib/python3.12/site-packages/django/db/backends/mysql/features.pyÚminimum_database_versionz)DatabaseFeatures.minimum_database_version?   s   € à�?‰?×+Ò+Øàó    c                 ó   — dddddœS )NÚutf8mb4_general_ciÚutf8mb4_esperanto_ciÚutf8mb4_swedish_ci)ÚciÚnon_defaultÚ
swedish_ciÚvirtualr   r   s    r   Útest_collationsz DatabaseFeatures.test_collationsF   s   € ð 'Ø1Ø.Ø-ñ	
ð 	
r   zUTC_TIMESTAMP(6)c                 ó  — ddhdhdhh d£dœ}| j                   s|j                  ddhi«       | j                  j                  d	k  r|j                  d
dhi«       | j                  j                  s|j                  dddhi«       |S )NzLdb_functions.comparison.test_greatest.GreatestTests.test_coalesce_workaroundzFdb_functions.comparison.test_least.LeastTests.test_coalesce_workaroundz;schema.tests.SchemaTests.test_func_index_json_key_transformzDexpressions.tests.FTimeDeltaTests.test_durationfield_multiply_divide>   ú@update.tests.AdvancedTests.test_update_ordered_by_m2m_annotationúEupdate.tests.AdvancedTests.test_update_ordered_by_m2m_annotation_descúGupdate.tests.AdvancedTests.test_update_ordered_by_inline_m2m_annotation)zThis doesn't work on MySQL.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.z%MariaDB and MySQL >= 8.0.18 specific.z4queries.test_explain.ExplainTests.test_mysql_analyze©r   r   é   zKNesting 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)Úsupports_explain_analyzeÚupdater   Úmysql_versionr   )r   Úskipss     r   Údjango_test_skipsz"DatabaseFeatures.django_test_skipsQ   sÌ   € ð+ð+ð,ð Nðð
 Wð@ò ñ!
ˆð. ×,Ò,Ø�L‰Là;ØNð>ðôð �?‰?×(Ñ(¨:Ò5Ø�L‰Lð%ð,ð'ðôð �‰×/Ò/Ø�L‰LððPðQð ðô
ð ˆr   c                 ó4   — | j                   j                  d   S )zY
        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_enginez&DatabaseFeatures._mysql_storage_engineŠ   s   € ð
 �‰×0Ñ0Ð1IÑJÐJr   c                 ó2   — d| j                   j                  v S )zt
        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_0z!DatabaseFeatures.allows_auto_pk_0‘   s   € ð '¨$¯/©/×*BÑ*BÐBÐBr   c                 ó.   — | j                   j                  S ©Nr   r   s    r   Úupdate_can_self_selectz'DatabaseFeatures.update_can_self_select™   ó   € à�‰×/Ñ/Ð/r   c                 ó    — | j                   dk7  S )z-Confirm support for introspected foreign keysÚMyISAM©r-   r   s    r   Úcan_introspect_foreign_keysz,DatabaseFeatures.can_introspect_foreign_keys�   s   € ð ×)Ñ)¨XÑ5Ð5r   c                 ó*   •— i t         ‰| �  ¥dddddœ¥S )NÚ	TextFieldÚIntegerFieldÚBigIntegerFieldÚ	CharField)ÚBinaryFieldÚBooleanFieldÚDurationFieldÚGenericIPAddressField)ÚsuperÚintrospected_field_types)r   Ú	__class__s    €r   rD   z)DatabaseFeatures.introspected_field_types¢   s+   ø€ ð
Ü‰gÑ.ð
à&Ø*Ø.Ø%0ò
ð 	
r   c                 ó.   — | j                   j                  S r3   r   r   s    r   Úcan_return_columns_from_insertz/DatabaseFeatures.can_return_columns_from_insert¬   r5   r   rG   c                 ó4   — | j                   j                  d   S )NÚhas_zoneinfo_databaser+   r   s    r   rI   z&DatabaseFeatures.has_zoneinfo_database´   s   € à�‰×0Ñ0Ð1HÑIÐIr   c                 ó4   — | j                   j                  d   S )NÚsql_auto_is_nullr+   r   s    r   Úis_sql_auto_is_null_enabledz,DatabaseFeatures.is_sql_auto_is_null_enabled¸   s   € à�‰×0Ñ0Ð1CÑDÐDr   c                 ób   — | j                   j                  ry| j                   j                  dk\  S ©NT©r   r   é   ©r   r   r&   r   s    r   Ú!supports_column_check_constraintsz2DatabaseFeatures.supports_column_check_constraints¼   ó'   € à�?‰?×+Ò+ØØ�‰×,Ñ,°
Ñ:Ð:r   rR   c                 ób   — | j                   j                  ry| j                   j                  dk\  S rN   rQ   r   s    r   Ú can_introspect_check_constraintsz1DatabaseFeatures.can_introspect_check_constraintsÆ   rS   r   c                 ó0   — | j                   j                   S r3   r   r   s    r   Úhas_select_for_update_ofz)DatabaseFeatures.has_select_for_update_ofÌ   ó   € à—?‘?×3Ñ3Ð3Ð3r   c                 ód   — | j                   j                  xs | j                   j                  dk\  S )N)r   r   é   rQ   r   s    r   r$   z)DatabaseFeatures.supports_explain_analyzeÐ   s0   € à�‰×/Ñ/ò 
°4·?±?×3PÑ3Pð U
ñ 4
ð 	
r   c                 óŽ   — h d£}| j                   j                  s*| j                   j                  dk\  r|j                  d«       |S )N>   ÚJSONÚTEXTÚTRADITIONALrO   ÚTREE)r   r   r&   Úadd)r   Úformatss     r   Úsupported_explain_formatsz*DatabaseFeatures.supported_explain_formatsØ   s@   € ò 2ˆØ�‰×/Ò/°D·O±O×4QÑ4Qð V
ò 5
ð
 �K‰K˜ÔØˆr   c                 ó    — | j                   dk7  S )zI
        All storage engines except MyISAM support transactions.
        r7   r8   r   s    r   Úsupports_transactionsz&DatabaseFeatures.supports_transactionså   s   € ð
 ×)Ñ)¨XÑ5Ð5r   c                 ó4   — | j                   j                  d   S )NÚlower_case_table_namesr+   r   s    r   Úignores_table_name_casez(DatabaseFeatures.ignores_table_name_caseì   s   € à�‰×0Ñ0Ð1IÑJÐJr   c                 ó0   — | j                   j                   S r3   r   r   s    r   Úsupports_default_in_lead_lagz-DatabaseFeatures.supports_default_in_lead_lagð   s   € ð —?‘?×3Ñ3Ð3Ð3r   c                 óH   — | j                   j                  r| j                  S y)NT)r   r   rU   r   s    r   Úcan_introspect_json_fieldz*DatabaseFeatures.can_introspect_json_fieldõ   s   € à�?‰?×+Ò+Ø×8Ñ8Ð8Ør   c                 ó‚   — | j                   dk7  ry| j                  j                  r| j                  j                  dk\  S y)NÚInnoDBF)r	   r   T)r-   r   r   r&   r   s    r   Úsupports_index_column_orderingz/DatabaseFeatures.supports_index_column_orderingû   s8   € à×%Ñ%¨Ò1ØØ�?‰?×+Ò+Ø—?‘?×0Ñ0°GÑ;Ð;Ør   c                 óˆ   — | j                   j                   xr* | j                  dk7  xr | j                   j                  dk\  S )Nr7   ©r   r   é   )r   r   r-   r&   r   s    r   Úsupports_expression_indexesz,DatabaseFeatures.supports_expression_indexes  sC   € ð —‘×0Ñ0Ð0ò <Ø×*Ñ*¨hÑ6ò<à—‘×-Ñ-°Ñ;ð	
r   c                 óh   — | j                   j                  }|xs | j                   j                  dk\  S )Nr"   rQ   ©r   Ú
is_mariadbs     r   Úsupports_select_intersectionz-DatabaseFeatures.supports_select_intersection  s+   € à—_‘_×5Ñ5ˆ
ØÒH˜TŸ_™_×:Ñ:¸jÑHÐHr   rv   c                 ób   — | j                   j                  ry| j                   j                  dk\  S )NTrp   rQ   r   s    r   Úsupports_expression_defaultsz-DatabaseFeatures.supports_expression_defaults  rS   r   c                 óh   — | j                   j                  }|xr | j                   j                  dk\  S )N)r	   é   rQ   rt   s     r   Úhas_native_uuid_fieldz&DatabaseFeatures.has_native_uuid_field  s+   € à—_‘_×5Ñ5ˆ
ØÒF˜dŸo™o×;Ñ;¸wÑFÐFr   c                 ó`   — | j                   j                  rd| j                   j                  vS y)NÚONLY_FULL_GROUP_BYT)r   r   r0   r   s    r   Úallows_group_by_selected_pksz-DatabaseFeatures.allows_group_by_selected_pks  s'   € à�?‰?×+Ò+Ø'¨t¯©×/GÑ/GÐGÐGØr   c                 ó0   — | j                   j                   S r3   r   r   s    r   Úsupports_any_valuez#DatabaseFeatures.supports_any_value%  rX   r   )JÚ__name__Ú
__module__Ú__qualname__Ú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(   r-   r1   r4   r9   rD   rG   ÚpropertyÚoperatorÚ
attrgetterÚ can_return_rows_from_bulk_insertrI   rL   rR   Ú supports_table_check_constraintsrU   rW   r$   rb   rd   rg   ri   rk   rn   rr   rv   Úsupports_select_differencerx   r{   r~   r€   Ú__classcell__)rE   s   @r   r   r      sf  ø„ ØÐØ $Ðà&+Ð#Ø ÐØ#'Ð Ø(,Ð%Ø"'ÐØ%*Ð"Ø(-Ð%ØÐØ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ó ô4r   r   )r©   Ú django.db.backends.base.featuresr   Údjango.utils.functionalr   r   r   r   r   ú<module>r±      s   ðÛ å AÝ 3ô`4Ð+õ `4r   