a
    Šxdþ  ã                   @   s@   d dl Z d dlmZ d dlmZ d dlmZ G dd„ deƒZdS )é    N)ÚInterfaceError)ÚBaseDatabaseFeatures)Úcached_propertyc                   @   s&  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e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+e,dd„ ƒZ-e,dd	„ ƒZ.e,d
d„ ƒZ/e,dd„ ƒZ0e1e2 3d¡ƒZ4e1e2 3d¡ƒZ5e1e2 3d¡ƒZ6e1e2 3d¡ƒZ7e1e2 3d¡ƒZ8dS )ÚDatabaseFeaturesTFz°
        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;>   ZJSONZTEXTÚXMLZYAMLc                 C   s   | j jdkS )Nièa ©Ú
connectionZ
pg_version©Úself© r   ú^/var/www/html/Ranjet/env/lib/python3.9/site-packages/django/db/backends/postgresql/features.pyÚis_postgresql_9_6@   s    z"DatabaseFeatures.is_postgresql_9_6c                 C   s   | j jdkS )Ni † r   r	   r   r   r   Úis_postgresql_10D   s    z!DatabaseFeatures.is_postgresql_10c                 C   s   | j jdkS )Ni°­ r   r	   r   r   r   Úis_postgresql_11H   s    z!DatabaseFeatures.is_postgresql_11c                 C   s   | j jdkS )NiÀÔ r   r	   r   r   r   Úis_postgresql_12L   s    z!DatabaseFeatures.is_postgresql_12r   r   r   N)9Ú__name__Ú
__module__Ú__qualname__Zallows_group_by_selected_pksZcan_return_columns_from_insertZ can_return_rows_from_bulk_insertZhas_real_datatypeZhas_native_uuid_fieldZhas_native_duration_fieldZhas_native_json_fieldZcan_defer_constraint_checksZhas_select_for_updateZhas_select_for_update_nowaitZhas_select_for_update_ofZ!has_select_for_update_skip_lockedZcan_release_savepointsZsupports_tablespacesZsupports_transactionsZcan_introspect_autofieldZcan_introspect_ip_address_fieldZ!can_introspect_materialized_viewsZ"can_introspect_small_integer_fieldZcan_distinct_on_fieldsZcan_rollback_ddlZsupports_combined_altersZnulls_order_largestr   Zclosed_cursor_error_classZhas_case_insensitive_likeZgreatest_least_ignores_nullsZcan_clone_databasesZsupports_temporal_subtractionZ%supports_slicing_ordering_in_compoundZ(create_test_procedure_without_params_sqlZ(create_test_procedure_with_int_param_sqlZrequires_casted_case_in_updatesZsupports_over_clauseZ4only_supports_unbounded_with_preceding_and_followingZ supports_aggregate_filter_clauseZsupported_explain_formatsZvalidates_explain_optionsZ&supports_deferrable_unique_constraintsZhas_json_operatorsZ-json_key_contains_list_matching_requires_listr   r   r   r   r   ÚpropertyÚoperatorÚ
attrgetterZhas_bloom_indexZhas_brin_autosummarizeZhas_phraseto_tsqueryZhas_websearch_to_tsqueryZsupports_table_partitionsr   r   r   r   r      sj   



r   )r   Z	django.dbr   Z django.db.backends.base.featuresr   Zdjango.utils.functionalr   r   r   r   r   r   Ú<module>   s   