Ë
    ¦#ij†  ã                   óV   — d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	  G d„ de«      Z
y)é    N)Ú	DataErrorÚInterfaceError)ÚBaseDatabaseFeatures)Úis_psycopg3)Ú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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)h d£Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3ddddd	œZ4d
Z5dZ6e7d„ «       Z8e7d„ «       Z9e7d„ «       Z:e7d„ «       Z;e7ˆ fd„«       Z<e7d„ «       Z=e7d„ «       Z>e7d„ «       Z?dZ@ eA eBj†                  d«      «      ZD eA eBj†                  d«      «      ZEˆ xZFS )ÚDatabaseFeatures)é   Tz°
        CREATE FUNCTION test_procedure () RETURNS void AS $$
        DECLARE
            V_I INTEGER;
        BEGIN
            V_I := 1;
        END;
    $$ LANGUAGE plpgsql;z½
        CREATE FUNCTION test_procedure (P_I INTEGER) RETURNS void AS $$
        DECLARE
            V_I INTEGER;
        BEGIN
            V_I := P_I;
        END;
    $$ LANGUAGE plpgsql;>   ÚXMLÚJSONÚTEXTÚYAMLFÚCzsv-x-icu)ÚdeterministicÚnon_defaultÚ
swedish_ciÚvirtualz(STATEMENT_TIMESTAMP() AT TIME ZONE 'UTC'zINSERT INTO {} DEFAULT VALUESc                 óÎ   — dhdhdœ}| j                   j                  d   j                  d«      r|j                  dddhi«       | j                  r|j                  d	d
hi«       |S )NzQindexes.tests.SchemaIndexesNotPostgreSQLTests.test_create_index_ignores_opclassesz2lookup.tests.LookupTests.test_textfield_exact_null)zopclasses are PostgreSQL only.z$PostgreSQL requires casting to text.ÚOPTIONSÚpoolz Pool does implicit health checkszNbackends.base.test_base.ConnectionHealthChecksTests.test_health_checks_enabledz]backends.base.test_base.ConnectionHealthChecksTests.test_set_autocommit_health_checks_enabledz>The actual query cannot be determined for server side bindingsz>backends.base.test_base.ExecuteWrapperTests.test_wrapper_debug)Ú
connectionÚsettings_dictÚgetÚupdateÚuses_server_side_binding)ÚselfÚskipss     ú`/var/www/html/office/venv/lib/python3.12/site-packages/django/db/backends/postgresql/features.pyÚdjango_test_skipsz"DatabaseFeatures.django_test_skipsQ   s’   € ð6ð/ð
 Eð5ñ
ˆð �?‰?×(Ñ(¨Ñ3×7Ñ7¸Ô?Ø�L‰Là6ð5ðDð9ðô	ð ×(Ò(Ø�L‰LàTð-ðWðôð ˆó    c                 óˆ   — t        «       }| j                  r|j                  dh«       t        s|j                  h d£«       |S )NzOaggregation.tests.AggregateTestCase.test_group_by_nested_expression_with_params>   ú.postgres_tests.test_array.TestQuerying.test_gtú.postgres_tests.test_array.TestQuerying.test_inú.postgres_tests.test_array.TestQuerying.test_lt)Úsetr   r   r   )r   Úexpected_failuress     r   Údjango_test_expected_failuresz.DatabaseFeatures.django_test_expected_failuresr   sL   € ä›EÐØ×(Ò(Ø×$Ñ$ð
Bð	ôõ Ø×$Ñ$òôð !Ð r    c                 ój   — | j                   j                  d   }t        xr |j                  d«      du S )Nr   Úserver_side_bindingT)r   r   r   r   )r   Úoptionss     r   r   z)DatabaseFeatures.uses_server_side_bindingŠ   s0   € à—/‘/×/Ñ/°	Ñ:ˆÜÒI˜wŸ{™{Ð+@ÓAÀTÐIÐIr    c                 ó.   — t         rt        dfS t        dfS )Nz6PostgreSQL text fields cannot contain NUL (0x00) bytesz6A string literal cannot contain NUL (0x00) characters.)r   r   Ú
ValueError©r   s    r   Ú+prohibits_null_characters_in_text_exceptionz<DatabaseFeatures.prohibits_null_characters_in_text_exception�   s   € åÜÐVÐVÐVäÐWÐWÐWr    c                 ó(   •— i t         ‰| �  ¥ddddœ¥S )NÚBigIntegerFieldÚIntegerFieldÚSmallIntegerField)ÚPositiveBigIntegerFieldÚPositiveIntegerFieldÚPositiveSmallIntegerField)ÚsuperÚintrospected_field_types)r   Ú	__class__s    €r   r7   z)DatabaseFeatures.introspected_field_types–   s(   ø€ ð
Ü‰gÑ.ð
à'8Ø$2Ø)<ò	
ð 	
r    c                 ó4   — | j                   j                  dk\  S )NiðI ©r   Ú
pg_versionr-   s    r   Úis_postgresql_15z!DatabaseFeatures.is_postgresql_15Ÿ   ó   € à�‰×)Ñ)¨VÑ3Ð3r    c                 ó4   — | j                   j                  dk\  S )Ni q r:   r-   s    r   Úis_postgresql_16z!DatabaseFeatures.is_postgresql_16£   r=   r    c                 ó4   — | j                   j                  dk\  S )Ni˜ r:   r-   s    r   Úis_postgresql_17z!DatabaseFeatures.is_postgresql_17§   r=   r    r<   r?   )GÚ__name__Ú
__module__Ú__qualname__Úminimum_database_versionÚallows_group_by_selected_pksÚcan_return_columns_from_insertÚ can_return_rows_from_bulk_insertÚcan_return_rows_from_updateÚhas_real_datatypeÚhas_native_uuid_fieldÚhas_native_duration_fieldÚhas_native_json_fieldÚcan_defer_constraint_checksÚhas_select_for_updateÚhas_select_for_update_nowaitÚhas_select_for_update_ofÚ!has_select_for_update_skip_lockedÚhas_select_for_no_key_updateÚcan_release_savepointsÚsupports_commentsÚsupports_tablespacesÚsupports_transactionsÚ!can_introspect_materialized_viewsÚcan_distinct_on_fieldsÚcan_rollback_ddlÚ+schema_editor_uses_clientside_param_bindingÚsupports_combined_altersÚnulls_order_largestr   Úclosed_cursor_error_classÚgreatest_least_ignores_nullsÚcan_clone_databasesÚsupports_temporal_subtractionÚ%supports_slicing_ordering_in_compoundÚ(create_test_procedure_without_params_sqlÚ(create_test_procedure_with_int_param_sqlÚrequires_casted_case_in_updatesÚsupports_over_clauseÚsupports_frame_exclusionÚ4only_supports_unbounded_with_preceding_and_followingÚ supports_aggregate_filter_clauseÚ"supports_aggregate_order_by_clauseÚsupported_explain_formatsÚ&supports_deferrable_unique_constraintsÚhas_json_operatorsÚ-json_key_contains_list_matching_requires_listÚsupports_update_conflictsÚ%supports_update_conflicts_with_targetÚsupports_covering_indexesÚ!supports_stored_generated_columnsÚ"supports_virtual_generated_columnsÚcan_rename_indexÚtest_collationsÚtest_now_utc_templateÚinsert_test_table_with_defaultsr   r   r'   r   r.   r7   r<   r?   rA   Úsupports_unlimited_charfieldÚpropertyÚoperatorÚ
attrgetterÚ*supports_nulls_distinct_unique_constraintsÚsupports_any_valueÚ__classcell__)r8   s   @r   r	   r	   	   s.  ø„ Ø$ÐØ#'Ð Ø%)Ð"Ø'+Ð$Ø"&ÐØÐØ ÐØ $ÐØ ÐØ"&ÐØ ÐØ#'Ð Ø#ÐØ(,Ð%Ø#'Ð Ø!ÐØÐØÐØ ÐØ(,Ð%Ø!ÐØÐØ26Ð/Ø#ÐØÐØ .ÐØ#'Ð ØÐØ$(Ð!Ø,0Ð)ð0Ð,ð0Ð,ð '+Ð#ØÐØ#ÐØ;?Ð8Ø'+Ð$Ø)-Ð&Ú ?ÐØ-1Ð*ØÐØ48Ð1Ø $ÐØ,0Ð)Ø $ÐØ(,Ð%Ø).Ð&ØÐàØ!Ø Øñ	€Oð GÐØ&EÐ#àñó ðð@ ñ!ó ð!ð. ñJó ðJð ñXó ðXð ó
ó ð
ð ñ4ó ð4ð ñ4ó ð4ð ñ4ó ð4ð $(Ð Ù19Øˆ×ÑÐ.Ó/ó2Ð.ñ "Ð"5 (×"5Ñ"5Ð6HÓ"IÓJÔr    r	   )rz   Ú	django.dbr   r   Ú django.db.backends.base.featuresr   Ú)django.db.backends.postgresql.psycopg_anyr   Údjango.utils.functionalr   r	   © r    r   ú<module>r„      s%   ðÛ ç /Ý AÝ AÝ 3ôgKÐ+õ gKr    