o Ih1@s@ddlZddlmZddlmZddlmZGdddeZdS)N)InterfaceError)BaseDatabaseFeatures)cached_propertycs`eZdZdZdZdZdZdZdZdZ dZ dZ dZ dZ dZdZdZdZdZdZdZdZdZdZeZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$hdZ%dZ&dZ'dZ(ddhiZ)e*dd Z+e*fd d Z,e*d d Z-e*ddZ.e*ddZ/e*ddZ0e1e23dZ4e1e23dZ5e1e23dZ6e1e23dZ7e1e23dZ8e1e23dZ9e1e23dZ: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;>XMLJSONTEXTYAMLzopclasses are PostgreSQL only.zQindexes.tests.SchemaIndexesNotPostgreSQLTests.test_create_index_ignores_opclassescCs|jrdddSiS)Nzsv-x-icu) non_default swedish_ci)is_postgresql_10selfrH/usr/lib/python3/dist-packages/django/db/backends/postgresql/features.pytest_collationsCs z DatabaseFeatures.test_collationscsitjddddS)NBigIntegerField IntegerFieldSmallIntegerField)PositiveBigIntegerFieldPositiveIntegerFieldPositiveSmallIntegerField)superintrospected_field_typesr  __class__rrrMsz)DatabaseFeatures.introspected_field_typescC |jjdkS)Ni connection pg_versionr rrrr V z!DatabaseFeatures.is_postgresql_10cCr)Nirr rrris_postgresql_11Zr z!DatabaseFeatures.is_postgresql_11cCr)Nirr rrris_postgresql_12^r z!DatabaseFeatures.is_postgresql_12cCr)Nirr rrris_postgresql_13br z!DatabaseFeatures.is_postgresql_13r r!r")<__name__ __module__ __qualname__allows_group_by_selected_pkscan_return_columns_from_insert can_return_rows_from_bulk_inserthas_real_datatypehas_native_uuid_fieldhas_native_duration_fieldhas_native_json_fieldcan_defer_constraint_checkshas_select_for_updatehas_select_for_update_nowaithas_select_for_update_of!has_select_for_update_skip_lockedhas_select_for_no_key_updatecan_release_savepointssupports_tablespacessupports_transactions!can_introspect_materialized_viewscan_distinct_on_fieldscan_rollback_ddlsupports_combined_altersnulls_order_largestrclosed_cursor_error_classhas_case_insensitive_likegreatest_least_ignores_nullscan_clone_databasessupports_temporal_subtraction%supports_slicing_ordering_in_compound(create_test_procedure_without_params_sql(create_test_procedure_with_int_param_sqlrequires_casted_case_in_updatessupports_over_clause4only_supports_unbounded_with_preceding_and_following supports_aggregate_filter_clausesupported_explain_formats&supports_deferrable_unique_constraintshas_json_operators-json_key_contains_list_matching_requires_listdjango_test_skipsrrrr r!r"r#propertyoperator attrgetterhas_brin_autosummarizehas_websearch_to_tsquerysupports_table_partitionssupports_covering_indexessupports_covering_gist_indexes%supports_non_deterministic_collations&supports_alternate_collation_providers __classcell__rrrrrsz      r)rN django.dbr django.db.backends.base.featuresrdjango.utils.functionalrrrrrrs