U
    €Ha  ã                   @   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ÿÿ  Z	BINARY_CIÚBINARYZ
SWEDISH_CI)ÚciÚcsZnon_defaultZ
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   t ƒ jdddddddœ–S )NZ	CharFieldZBigIntegerFieldZIntegerFieldZDateTimeField)ZGenericIPAddressFieldZPositiveBigIntegerFieldZPositiveIntegerFieldZPositiveSmallIntegerFieldZSmallIntegerFieldZ	TimeField)ÚsuperÚintrospected_field_types©Úself©Ú	__class__© úF/tmp/pip-unpacked-wheel-3jxiddxt/django/db/backends/oracle/features.pyr   a   s    ùz)DatabaseFeatures.introspected_field_typesc                 C   s|   | j  ¡ h}z| d¡ W nH tk
rb } z*|jd jdkrPW Y ¢W 5 Q R £ dS ‚ W 5 d }~X Y nX W 5 Q R £ dS Q R X 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   Zoracle_versionr   r   r   r   Úhas_json_object_functionx   s    z)DatabaseFeatures.has_json_object_function)8Ú__name__Ú
__module__Ú__qualname__Zallows_group_by_lobZ!interprets_empty_strings_as_nullsZhas_select_for_updateZhas_select_for_update_nowaitZ!has_select_for_update_skip_lockedZhas_select_for_update_ofZselect_for_update_of_columnZcan_return_columns_from_insertZsupports_subqueries_in_group_byZsupports_transactionsZsupports_timezonesZhas_native_duration_fieldZcan_defer_constraint_checksZ.supports_partially_nullable_unique_constraintsZ&supports_deferrable_unique_constraintsZtruncates_namesZsupports_tablespacesZsupports_sequence_resetZ!can_introspect_materialized_viewsZatomic_transactionsZsupports_combined_altersZnulls_order_largestZrequires_literal_defaultsr   Zclosed_cursor_error_classZbare_select_suffixZ%supports_select_for_update_with_limitZsupports_temporal_subtractionZignores_table_name_caseZsupports_index_on_text_fieldZhas_case_insensitive_likeZ(create_test_procedure_without_params_sqlZ(create_test_procedure_with_int_param_sqlZsupports_callproc_kwargsZsupports_over_clauseZ#supports_frame_range_fixed_distanceZsupports_ignore_conflictsZmax_query_paramsZsupports_partial_indexesZ%supports_slicing_ordering_in_compoundZ*allows_multiple_constraints_on_same_fieldsZ&supports_boolean_expr_in_select_clauseZ!supports_primitives_in_json_fieldZsupports_json_field_containsZsupports_collation_on_textfieldZtest_collationsZdjango_test_skipsZdjango_test_expected_failuresr   r   r   r   Ú__classcell__r   r   r   r   r      sŠ   ü	þþÿÿôý

r   N)Z	django.dbr   r   Z django.db.backends.base.featuresr   Zdjango.utils.functionalr   r   r   r   r   r   Ú<module>   s   