B
    CVvg1  ã               @   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                   sd  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Z$ddddhZ%dZ&dZ'dZ(d	d
hiZ)e*dd„ ƒZ+e*‡ fd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¡ƒZ8e1e2 3d¡ƒZ9e1e2 3d¡ƒZ:‡  Z;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YAMLzopclasses are PostgreSQL only.zQindexes.tests.SchemaIndexesNotPostgreSQLTests.test_create_index_ignores_opclassesc             C   s   | j rdddœS i S )Nzsv-x-icu)Znon_defaultZ
swedish_ci)Úis_postgresql_10)Úself© r	   úJ/tmp/pip-install-o3oxmrkh/Django/django/db/backends/postgresql/features.pyÚtest_collationsC   s    z DatabaseFeatures.test_collationsc                s   t ƒ jddddœ–S )NZBigIntegerFieldZIntegerFieldZSmallIntegerField)ZPositiveBigIntegerFieldZPositiveIntegerFieldZPositiveSmallIntegerField)ÚsuperÚintrospected_field_types)r   )Ú	__class__r	   r
   r   M   s    z)DatabaseFeatures.introspected_field_typesc             C   s   | j jdkS )Ni † )Ú
connectionÚ
pg_version)r   r	   r	   r
   r   V   s    z!DatabaseFeatures.is_postgresql_10c             C   s   | j jdkS )Ni°­ )r   r   )r   r	   r	   r
   Úis_postgresql_11Z   s    z!DatabaseFeatures.is_postgresql_11c             C   s   | j jdkS )NiÀÔ )r   r   )r   r	   r	   r
   Úis_postgresql_12^   s    z!DatabaseFeatures.is_postgresql_12c             C   s   | j jdkS )NiÐû )r   r   )r   r	   r	   r
   Úis_postgresql_13b   s    z!DatabaseFeatures.is_postgresql_13r   r   r   )<Ú__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has_select_for_no_key_updateZcan_release_savepointsZsupports_tablespacesZsupports_transactionsZ!can_introspect_materialized_viewsZ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&supports_deferrable_unique_constraintsZhas_json_operatorsZ-json_key_contains_list_matching_requires_listZdjango_test_skipsr   r   r   r   r   r   r   ÚpropertyÚoperatorÚ
attrgetterZhas_brin_autosummarizeZhas_websearch_to_tsqueryZsupports_table_partitionsZsupports_covering_indexesZsupports_covering_gist_indexesZ%supports_non_deterministic_collationsZ&supports_alternate_collation_providersÚ__classcell__r	   r	   )r   r
   r      sh   
	r   )r   Z	django.dbr   Z django.db.backends.base.featuresr   Zdjango.utils.functionalr   r   r	   r	   r	   r
   Ú<module>   s   