/usr/local/lib/python3.9/site-packages/django/db/backends/postgresql/__pycache__
a Ӱ�hv � @ sP d dl Z d dlmZmZ d dlmZ d dlmZ d dlm Z G dd� de�Z dS )� N)� DataError�InterfaceError)�BaseDatabaseFeatures)�is_psycopg3)�cached_propertyc sN e Zd ZdZdZdZdZdZdZdZ dZ dZdZdZ dZdZdZdZdZdZdZdZdZdZdZdZdZeZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'h d�Z(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dddd �Z0d Z1dhdhd �Z2e3dd� �Z4e3dd� �Z5e3dd� �Z6e3� fdd��Z7e3dd� �Z8e3dd� �Z9e:e;�<d��Z=e:e;�<d��Z>dZ?� Z@S )�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;z� CREATE TABLE test_table_composite_pk ( column_1 INTEGER NOT NULL, column_2 INTEGER NOT NULL, PRIMARY KEY(column_1, column_2) ) > �XML�YAML�JSONZTEXT�Czsv-x-icu)Z deterministicZnon_defaultZ swedish_ciz(STATEMENT_TIMESTAMP() AT TIME ZONE 'UTC'zQindexes.tests.SchemaIndexesNotPostgreSQLTests.test_create_index_ignores_opclassesz2lookup.tests.LookupTests.test_textfield_exact_null)zopclasses are PostgreSQL only.z$PostgreSQL requires casting to text.c C s t � }| jr|�dh� |S )NzOaggregation.tests.AggregateTestCase.test_group_by_nested_expression_with_params)�set�uses_server_side_binding�update)�selfZexpected_failures� r �P/usr/local/lib/python3.9/site-packages/django/db/backends/postgresql/features.py�django_test_expected_failures[ s �� z.DatabaseFeatures.django_test_expected_failuresc C s | j jd }to|�d�du S )N�OPTIONSZserver_side_bindingT)� connectionZ settings_dictr �get)r �optionsr r r r j s z)DatabaseFeatures.uses_server_side_bindingc C s t rtdfS tdfS d S )Nz6PostgreSQL text fields cannot contain NUL (0x00) bytesz6A string literal cannot contain NUL (0x00) characters.)r r � ValueError�r r r r �+prohibits_null_characters_in_text_exceptiono s z<DatabaseFeatures.prohibits_null_characters_in_text_exceptionc s i t � j�dddd��S )NZBigIntegerFieldZIntegerFieldZSmallIntegerField)ZPositiveBigIntegerFieldZPositiveIntegerFieldZPositiveSmallIntegerField)�super�introspected_field_typesr �� __class__r r r v s ��z)DatabaseFeatures.introspected_field_typesc C s | j jdkS )Ni� �r Z pg_versionr r r r �is_postgresql_13 s z!DatabaseFeatures.is_postgresql_13c C s | j jdkS )Ni�" r r r r r �is_postgresql_14� s z!DatabaseFeatures.is_postgresql_14r! )A�__name__� __module__�__qualname__Zminimum_database_versionZallows_group_by_selected_pksZcan_return_columns_from_insertZ can_return_rows_from_bulk_insertZhas_real_datatypeZhas_native_uuid_fieldZhas_native_duration_fieldZhas_native_json_fieldZcan_defer_constraint_checksZhas_select_for_updateZhas_select_for_update_nowaitZhas_select_for_update_ofZ!has_select_for_update_skip_lockedZhas_select_for_no_key_updateZcan_release_savepointsZsupports_commentsZsupports_tablespacesZsupports_transactionsZ!can_introspect_materialized_viewsZcan_distinct_on_fieldsZcan_rollback_ddlZ+schema_editor_uses_clientside_param_bindingZsupports_combined_altersZnulls_order_largestr Zclosed_cursor_error_classZgreatest_least_ignores_nullsZcan_clone_databasesZsupports_temporal_subtractionZ%supports_slicing_ordering_in_compoundZ(create_test_procedure_without_params_sqlZ(create_test_procedure_with_int_param_sqlZ,create_test_table_with_composite_primary_keyZrequires_casted_case_in_updatesZsupports_over_clauseZ4only_supports_unbounded_with_preceding_and_followingZ supports_aggregate_filter_clauseZsupported_explain_formatsZ&supports_deferrable_unique_constraintsZhas_json_operatorsZ-json_key_contains_list_matching_requires_listZsupports_update_conflictsZ%supports_update_conflicts_with_targetZsupports_covering_indexesZcan_rename_indexZtest_collationsZtest_now_utc_templateZdjango_test_skipsr r r r r r r! �property�operator� attrgetterZhas_bit_xorZ supports_covering_spgist_indexesZsupports_unlimited_charfield� __classcell__r r r r r s� ���� r )r&