
    h                     F    d dl Z d dlmZ d dlmZ d dlmZ  G d de      Zy)    N)InterfaceError)BaseDatabaseFeatures)cached_propertyc                      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Z&h dZ'dZ(dZ)dZ*dZ+e,d        Z-e,d        Z.e,d        Z/e,d	        Z0 e1 e2jf                  d
            Z4 e1 e2jf                  d            Z5 e1 e2jf                  d
            Z6 e1 e2jf                  d            Z7 e1 e2jf                  d            Z8y)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;>   XMLJSONTEXTYAMLc                 4    | j                   j                  dk\  S )Nia 
connection
pg_versionselfs    i/var/www/html/ranktracker/api/venv/lib/python3.12/site-packages/django/db/backends/postgresql/features.pyis_postgresql_9_6z"DatabaseFeatures.is_postgresql_9_6@   s    ))U22    c                 4    | j                   j                  dk\  S )Ni r   r   s    r   is_postgresql_10z!DatabaseFeatures.is_postgresql_10D       ))V33r   c                 4    | j                   j                  dk\  S )Ni r   r   s    r   is_postgresql_11z!DatabaseFeatures.is_postgresql_11H   r   r   c                 4    | j                   j                  dk\  S )Ni r   r   s    r   is_postgresql_12z!DatabaseFeatures.is_postgresql_12L   r   r   r   r   r   N)9__name__
__module____qualname__allows_group_by_selected_pkscan_return_columns_from_insert can_return_rows_from_bulk_inserthas_real_datatypehas_native_uuid_fieldhas_native_duration_fieldhas_native_json_fieldcan_defer_constraint_checkshas_select_for_updatehas_select_for_update_nowaithas_select_for_update_of!has_select_for_update_skip_lockedcan_release_savepointssupports_tablespacessupports_transactionscan_introspect_autofieldcan_introspect_ip_address_field!can_introspect_materialized_views"can_introspect_small_integer_fieldcan_distinct_on_fieldscan_rollback_ddlsupports_combined_altersnulls_order_largestr   closed_cursor_error_classhas_case_insensitive_likegreatest_least_ignores_nullscan_clone_databasessupports_temporal_subtraction%supports_slicing_ordering_in_compound(create_test_procedure_without_params_sql(create_test_procedure_with_int_param_sqlrequires_casted_case_in_updatessupports_over_clause4only_supports_unbounded_with_preceding_and_following supports_aggregate_filter_clausesupported_explain_formatsvalidates_explain_options&supports_deferrable_unique_constraintshas_json_operators-json_key_contains_list_matching_requires_listr   r   r   r   r   propertyoperator
attrgetterhas_bloom_indexhas_brin_autosummarizehas_phraseto_tsqueryhas_websearch_to_tsquerysupports_table_partitions r   r   r   r      s   #' %)"'+$  $ "& #' #(,%! #&*#(,%)-&!# . %#' $(!,0)0,0, '+#;?8'+$ ? %-1*4813 3 4 4 4 4 4 4 2x223FGHO%&9h&9&9:L&MN#$7H$7$78K$LM'(;(;(;<N(OP ()<)<)<=O)P Qr   r   )rH   	django.dbr    django.db.backends.base.featuresr   django.utils.functionalr   r   rO   r   r   <module>rS      s"     $ A 3LR+ LRr   