3
7^|                 @   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)BaseDatabaseFeatures)InterfaceError)cached_propertyc               @   s0  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eZdZdZdZdZdZdZdZ dZ!dZ"dZ#ddddhZ$dZ%e&d	d
 Z'e&dd Z(e&dd Z)e*e+j,dZ-e*e+j,dZ.e*e+j,dZ/e*e+j,dZ0e*e+j,dZ1e*e+j,dZ2e*e+j,dZ3e*e+j,dZ4d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 )Nia )
connection
pg_version)self r
   H/tmp/pip-build-8app2_gc/Django/django/db/backends/postgresql/features.pyis_postgresql_9_5:   s    z"DatabaseFeatures.is_postgresql_9_5c             C   s   | j jdkS )Nia )r   r   )r	   r
   r
   r   is_postgresql_9_6>   s    z"DatabaseFeatures.is_postgresql_9_6c             C   s   | j jdkS )Ni )r   r   )r	   r
   r
   r   is_postgresql_10B   s    z!DatabaseFeatures.is_postgresql_10r   r   r   N)5__name__
__module____qualname__Zallows_group_by_selected_pksZcan_return_id_from_insertZcan_return_ids_from_bulk_insertZhas_real_datatypeZhas_native_uuid_fieldZhas_native_duration_fieldZcan_defer_constraint_checksZhas_select_for_updateZhas_select_for_update_nowaitZhas_select_for_update_ofZ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_clauseZ supports_aggregate_filter_clauseZsupported_explain_formatsZvalidates_explain_optionsr   r   r   r   propertyoperator
attrgetterZ!has_select_for_update_skip_lockedZhas_brin_index_supportZhas_jsonb_aggZhas_brin_autosummarizeZhas_gin_pending_list_limitZsupports_ignore_conflictsZhas_phraseto_tsqueryZsupports_table_partitionsr
   r
   r
   r   r      sZ   r   )r   Z django.db.backends.base.featuresr   Zdjango.db.utilsr   Zdjango.utils.functionalr   r   r
   r
   r
   r   <module>   s   