Ë
    ¹ûàgR!  ã                   óN   — d dl mZmZ d dlmZ d dlmZ d dlmZ  G d„ de«      Z	y)é    )ÚDatabaseErrorÚInterfaceError)ÚBaseDatabaseFeatures)Úis_oracledb)Ú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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Z+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5d	d
hZ6dZ7e8d„ «       Z9e8ˆ fd„«       Z:e8d„ «       Z;e8d„ «       Z<e8d„ «       Z=e8d„ «       Z>e8d„ «       Z?e8d„ «       Z@e8d„ «       ZAe8d„ «       ZBˆ xZCS )ÚDatabaseFeatures)é   FTz|
        CREATE PROCEDURE "TEST_PROCEDURE" AS
            V_I INTEGER;
        BEGIN
            V_I := 1;
        END;
    zŒ
        CREATE PROCEDURE "TEST_PROCEDURE" (P_I INTEGER) AS
            V_I INTEGER;
        BEGIN
            V_I := P_I;
        END;
    z¿
        CREATE TABLE test_table_composite_pk (
            column_1 NUMBER(11) NOT NULL,
            column_2 NUMBER(11) NOT NULL,
            PRIMARY KEY (column_1, column_2)
        )
    iÿÿ  z$CURRENT_TIMESTAMP AT TIME ZONE 'UTC'zFannotations.tests.NonAggregateAnnotationTestCase.test_custom_functionsz^annotations.tests.NonAggregateAnnotationTestCase.test_custom_functions_can_ref_other_functionsz1INSERT INTO {} VALUES (DEFAULT, DEFAULT, DEFAULT)c                 óð   — ddhddhh d£ddhdhd	hd
hdœ}| j                   j                  dk  r|j                  ddhi«       t        r-| j                   j                  dk\  r|j                  ddhi«       |S )Nz4db_functions.text.test_sha224.SHA224Tests.test_basicz8db_functions.text.test_sha224.SHA224Tests.test_transformzVdb_functions.datetime.test_extract_trunc.DateFunctionTests.test_trunc_week_before_1000zbdb_functions.datetime.test_extract_trunc.DateFunctionWithTimeZoneTests.test_trunc_week_before_1000>   úCexpressions.tests.ExpressionOperatorTests.test_lefthand_bitwise_xorúHexpressions.tests.ExpressionOperatorTests.test_lefthand_bitwise_xor_nullúNexpressions.tests.ExpressionOperatorTests.test_lefthand_bitwise_xor_right_nullzHexpressions_window.tests.WindowFunctionTests.test_row_number_no_orderingz:prefetch_related.tests.PrefetchLimitTests.test_empty_orderzMmigrations.test_operations.OperationTests.test_alter_field_pk_fk_db_collationzIgeneric_relations_regress.tests.GenericRelationTests.test_textlink_filterz?lookup.tests.LookupQueryingTests.test_aggregate_combined_lookup)zOracle doesn't support SHA224.zwOracle doesn't correctly calculate ISO 8601 week numbering before 1583 (the Gregorian calendar was introduced in 1582).z#Oracle doesn't support bitwise XOR.z9Oracle requires ORDER BY in row_number, ANSI:SQL doesn't.zGOracle doesn't support changing collations on indexed columns (#33671).z1Oracle doesn't support comparing NCLOB to NUMBER.z1Oracle doesn't support casting filters to NUMBER.©é   z6Raises ORA-00600 on Oracle < 23c: internal error code.z?model_fields.test_jsonfield.TestQuerying.test_usage_in_subquery)é   é   r   zhpython-oracledb 2.1.2+ no longer hides 'ORA-1403: no data found' exceptions raised in database triggers.zLbackends.oracle.tests.TransactionalTests.test_hidden_no_data_found_exception)Ú
connectionÚoracle_versionÚupdater   Úoracledb_version)ÚselfÚskipss     ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/db/backends/oracle/features.pyÚdjango_test_skipsz"DatabaseFeatures.django_test_skips_   sÐ   € ð GØJð/ð.ðLðFò4ð.àLðJð6ðXð
'ðBð
 RðBñA#
ˆðH �?‰?×)Ñ)¨EÒ1Ø�L‰LàLð1ðOðôõ ˜4Ÿ?™?×;Ñ;¸yÒHØ�L‰Lð>ð>ð@ðôð ˆó    c                 ó.   •— i t         ‰| �  ¥dddddddœ¥S )NÚ	CharFieldÚBigIntegerFieldÚIntegerFieldÚDateTimeField)ÚGenericIPAddressFieldÚPositiveBigIntegerFieldÚPositiveIntegerFieldÚPositiveSmallIntegerFieldÚSmallIntegerFieldÚ	TimeField)ÚsuperÚintrospected_field_types)r   Ú	__class__s    €r   r(   z)DatabaseFeatures.introspected_field_typesš   s1   ø€ ð
Ü‰gÑ.ð
à%0Ø'8Ø$2Ø)7Ø!/Ø(ò
ð 	
r   c                 ó2   — dddd| j                   rddœS d dœS )NÚ	BINARY_CIÚBINARYÚ
SWEDISH_CI)ÚciÚcsÚnon_defaultÚ
swedish_ciÚvirtual)Úsupports_collation_on_charfield©r   s    r   Útest_collationsz DatabaseFeatures.test_collations¦   s6   € ð ØØ'Ø&Ø'+×'KÒ'K�|ñ
ð 	
ð
 RVñ
ð 	
r   c                 ó  — d| j                   z   }| j                  j                  «       5 }	 |j                  |«       	 d d d «       y# t        $ r/}|j
                  d   j                  dk(  rY d }~d d d «       y‚ d }~ww xY w# 1 sw Y   y xY w)Nz"SELECT CAST('a' AS VARCHAR2(4001))r   iŽ  FT)Úbare_select_suffixr   ÚcursorÚexecuter   ÚargsÚcode)r   Úsqlr8   Úes       r   r3   z0DatabaseFeatures.supports_collation_on_charfield°   sŒ   € à2°T×5LÑ5LÑLˆØ�_‰_×#Ñ#Ó%ð 	¨ðØ—‘˜sÔ#ð
 ÷	ð 	øô !ò Ø—6‘6˜!‘9—>‘> SÒ(Û ÷	ð 	ð ûðú÷	ð 	ús9   ªB¬A½BÁ	A?ÁA:Á,BÁ9A:Á:A?Á?BÂBc                 ó4   — | j                   j                  dk\  S ©N)é   ©r   r   r4   s    r   Ú!supports_primitives_in_json_fieldz2DatabaseFeatures.supports_primitives_in_json_field¼   ó   € à�‰×-Ñ-°Ñ6Ð6r   c                 ó4   — | j                   j                  dk\  S r?   rA   r4   s    r   Úsupports_frame_exclusionz)DatabaseFeatures.supports_frame_exclusionÀ   rC   r   c                 ó4   — | j                   j                  dk\  S ©Nr   rA   r4   s    r   Ú&supports_boolean_expr_in_select_clausez7DatabaseFeatures.supports_boolean_expr_in_select_clauseÄ   rC   r   c                 ó4   — | j                   j                  dk\  S rG   rA   r4   s    r   Úsupports_comparing_boolean_exprz0DatabaseFeatures.supports_comparing_boolean_exprÈ   rC   r   c                 ó4   — | j                   j                  dk\  S rG   rA   r4   s    r   Ú(supports_aggregation_over_interval_typesz9DatabaseFeatures.supports_aggregation_over_interval_typesÌ   rC   r   c                 ó<   — | j                   j                  dk\  rdS dS )Nr   Ú z
 FROM DUALrA   r4   s    r   r7   z#DatabaseFeatures.bare_select_suffixÐ   s   € à—_‘_×3Ñ3°uÒ<ˆrÐNÀ,ÐNr   )DÚ__name__Ú
__module__Ú__qualname__Úminimum_database_versionÚallows_group_by_lobÚallows_group_by_select_indexÚ!interprets_empty_strings_as_nullsÚhas_select_for_updateÚhas_select_for_update_nowaitÚ!has_select_for_update_skip_lockedÚhas_select_for_update_ofÚselect_for_update_of_columnÚcan_return_columns_from_insertÚsupports_subqueries_in_group_byÚ*ignores_unnecessary_order_by_in_subqueriesÚsupports_transactionsÚsupports_timezonesÚhas_native_duration_fieldÚcan_defer_constraint_checksÚ.supports_partially_nullable_unique_constraintsÚ&supports_deferrable_unique_constraintsÚtruncates_namesÚsupports_commentsÚsupports_tablespacesÚsupports_sequence_resetÚ!can_introspect_materialized_viewsÚatomic_transactionsÚnulls_order_largestÚrequires_literal_defaultsÚ'supports_default_keyword_in_bulk_insertr   Úclosed_cursor_error_classÚ%supports_select_for_update_with_limitÚsupports_temporal_subtractionÚignores_table_name_caseÚsupports_index_on_text_fieldÚ(create_test_procedure_without_params_sqlÚ(create_test_procedure_with_int_param_sqlÚ,create_test_table_with_composite_primary_keyÚsupports_callproc_kwargsÚsupports_over_clauseÚ#supports_frame_range_fixed_distanceÚsupports_ignore_conflictsÚmax_query_paramsÚsupports_partial_indexesÚ!supports_stored_generated_columnsÚ"supports_virtual_generated_columnsÚcan_rename_indexÚ%supports_slicing_ordering_in_compoundÚ#requires_compound_order_by_subqueryÚ*allows_multiple_constraints_on_same_fieldsÚsupports_json_field_containsÚsupports_collation_on_textfieldÚtest_now_utc_templateÚdjango_test_expected_failuresÚinsert_test_table_with_defaultsr   r   r(   r5   r3   rB   rE   rH   rJ   rL   r7   Ú__classcell__)r)   s   @r   r	   r	      s&  ø„ Ø$Ðð  Ðð $)Ð Ø(,Ð%Ø ÐØ#'Ð Ø(,Ð%Ø#ÐØ"&ÐØ%)Ð"Ø&+Ð#Ø16Ð.Ø ÐØÐØ $ÐØ"&ÐØ5:Ð2Ø-1Ð*Ø€OØÐØÐØ#ÐØ(,Ð%ØÐØÐØ $ÐØ.3Ð+Ø .Ðð -2Ð)Ø$(Ð!ð #ÐØ#(Ð ð0Ð,ð0Ð,ð4Ð0ð  $ÐØÐØ*.Ð'Ø %ÐØ ÐØ$ÐØ(-Ð%Ø)-Ð&ØÐØ,0Ð)Ø*.Ð'Ø16Ð.Ø#(Ð Ø&+Ð#ØBÐð 	Qð	8ð%Ð!ð 	<ð $ð ñ8ó ð8ðt ó	
ó ð	
ð ñ
ó ð
ð ñ	ó ð	ð ñ7ó ð7ð ñ7ó ð7ð ñ7ó ð7ð ñ7ó ð7ð ñ7ó ð7ð ñOó ôOr   r	   N)
Ú	django.dbr   r   Ú django.db.backends.base.featuresr   Ú&django.db.backends.oracle.oracledb_anyr   Údjango.utils.functionalr   r	   © r   r   ú<module>rŒ      s"   ðß 3Ý AÝ >Ý 3ôKOÐ+õ KOr   