o
    ˜¨ÊhÌ  ã                   @   s<   d dl mZmZ d dlmZ d dlmZ G dd„ deƒZdS )é    )ÚDatabaseErrorÚInterfaceError)ÚBaseDatabaseFeatures)Úcached_propertyc                	       s(  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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Z0dd	d
d
dœZ1dZ2ddhddhddhh d£dhdhdhdhdœZ3ddhZ4e5‡ fdd„ƒZ6e5dd„ ƒZ7‡  Z8S )ÚDatabaseFeatures)é   FTz
 FROM DUALz|
        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;
    iÿÿ  Ú	BINARY_CIÚBINARYÚ
SWEDISH_CI)ÚciÚcsÚnon_defaultÚ
swedish_ciz$CURRENT_TIMESTAMP AT TIME ZONE 'UTC'z4db_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_1000zadb_functions.datetime.test_extract_trunc.DateFunctionTests.test_extract_second_func_no_fractionalzmdb_functions.datetime.test_extract_trunc.DateFunctionWithTimeZoneTests.test_extract_second_func_no_fractional>   ú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?model_fields.test_jsonfield.TestQuerying.test_usage_in_subqueryzMmigrations.test_operations.OperationTests.test_alter_field_pk_fk_db_collationzQqueries.test_qs_combinators.QuerySetSetOperationTests.test_union_in_with_ordering)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 extracts seconds including fractional seconds (#33517).z#Oracle doesn't support bitwise XOR.z9Oracle requires ORDER BY in row_number, ANSI:SQL doesn't.z&Raises ORA-00600: internal error code.zGOracle doesn't support changing collations on indexed columns (#33671).zUOracle raises an error when a subquery contains unnecessary ORDER BY clause (#32786).zFannotations.tests.NonAggregateAnnotationTestCase.test_custom_functionsz^annotations.tests.NonAggregateAnnotationTestCase.test_custom_functions_can_ref_other_functionsc                    s   i t ƒ j¥dddddddœ¥S )NÚ	CharFieldÚBigIntegerFieldÚIntegerFieldÚDateTimeField)ÚGenericIPAddressFieldÚPositiveBigIntegerFieldÚPositiveIntegerFieldÚPositiveSmallIntegerFieldÚSmallIntegerFieldÚ	TimeField)ÚsuperÚintrospected_field_types)Úself©Ú	__class__© úT/var/www/html/env/lib/python3.10/site-packages/django/db/backends/oracle/features.pyr   }   s   ÿùz)DatabaseFeatures.introspected_field_typesc                 C   s†   | j  ¡ �4}z| d¡ W n" ty/ } z|jd jdkr*W Y d }~W d   ƒ dS ‚ d }~ww 	 W d   ƒ dS 1 s<w   Y  d S )Nz,SELECT CAST('a' AS VARCHAR2(4001)) FROM dualr   iŽ  FT)Ú
connectionÚcursorÚexecuter   ÚargsÚcode)r   r$   Úer!   r!   r"   Úsupports_collation_on_charfield‰   s   
û€ý$ùz0DatabaseFeatures.supports_collation_on_charfield)9Ú__name__Ú
__module__Ú__qualname__Úminimum_database_versionÚallows_group_by_lobÚ!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_tablespacesÚsupports_sequence_resetÚ!can_introspect_materialized_viewsÚatomic_transactionsÚnulls_order_largestÚrequires_literal_defaultsr   Úclosed_cursor_error_classÚbare_select_suffixÚ%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Úsupports_callproc_kwargsÚsupports_over_clauseÚ#supports_frame_range_fixed_distanceÚsupports_ignore_conflictsÚmax_query_paramsÚsupports_partial_indexesÚcan_rename_indexÚ%supports_slicing_ordering_in_compoundÚ*allows_multiple_constraints_on_same_fieldsÚ&supports_boolean_expr_in_select_clauseÚ!supports_primitives_in_json_fieldÚsupports_json_field_containsÚsupports_collation_on_textfieldÚtest_collationsÚtest_now_utc_templateÚdjango_test_skipsÚdjango_test_expected_failuresr   r   r)   Ú__classcell__r!   r!   r   r"   r      sœ    üþýýÿÿÿÿÝ*ýr   N)Ú	django.dbr   r   Ú django.db.backends.base.featuresr   Údjango.utils.functionalr   r   r!   r!   r!   r"   Ú<module>   s    