
vÅÏ^ß	  ã               @   sV   d  d l  Z  d  d l m Z d  d l m Z d  d l m Z Gd d „  d e ƒ Z d S)é    N)ÚBaseDatabaseFeatures)ÚInterfaceError)Úcached_propertyc               @   sW  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 d d d h Z& d Z' e( d	 d
 „  ƒ Z) e( d d „  ƒ Z* e+ e, j- d ƒ ƒ Z. e+ e, j- d ƒ ƒ Z/ e+ e, j- d ƒ ƒ Z0 d 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 )Ú
connectionÚ
pg_version)Úself© r
   úH/tmp/pip-build-8lau8j11/django/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
   r   Úis_postgresql_10@   s    z!DatabaseFeatures.is_postgresql_10r   r   N)1Ú__name__Ú
__module__Ú__qualname__Zallows_group_by_selected_pksZcan_return_columns_from_insertZ'can_return_multiple_columns_from_insertZ can_return_rows_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!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_clauseZ supports_aggregate_filter_clauseZsupported_explain_formatsZvalidates_explain_optionsr   r   r   ÚpropertyÚoperatorÚ
attrgetterZhas_brin_autosummarizeZhas_phraseto_tsqueryZsupports_table_partitionsr
   r
   r
   r   r      sR   r   )r   Z django.db.backends.base.featuresr   Zdjango.db.utilsr   Zdjango.utils.functionalr   r   r
   r
   r
   r   Ú<module>   s   