o
    ^"<f                     @   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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dd	d	d
Z0ddhddhdhdhdZ1ddhZ2e3 fddZ4e3dd Z5e3dd Z6  Z7S )DatabaseFeaturesFTz
 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_ciz4db_functions.text.test_sha224.SHA224Tests.test_basicz8db_functions.text.test_sha224.SHA224Tests.test_transformzCexpressions.tests.ExpressionOperatorTests.test_lefthand_bitwise_xorzHexpressions.tests.ExpressionOperatorTests.test_lefthand_bitwise_xor_nullzHexpressions_window.tests.WindowFunctionTests.test_row_number_no_orderingz?model_fields.test_jsonfield.TestQuerying.test_usage_in_subquery)zOracle doesn't support SHA224.z#Oracle doesn't support bitwise XOR.z9Oracle requires ORDER BY in row_number, ANSI:SQL doesn't.z3Raises ORA-00600: internal error code on Oracle 18.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__ Y/var/www/html/kck/venv/lib/python3.10/site-packages/django/db/backends/oracle/features.pyr   a   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_charfieldm   s   
$z0DatabaseFeatures.supports_collation_on_charfieldc                 C   s   | j jdkS )N)   )r    oracle_versionr   r   r   r   has_json_object_functionx   s   z)DatabaseFeatures.has_json_object_function)8__name__
__module____qualname__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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supports_combined_alters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has_case_insensitive_like(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%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django_test_skipsdjango_test_expected_failuresr   r   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    