o
    þÞh…  ã                   @   sX   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ ddl	m
Z
 G dd	„ d	eƒZdS )
é    N)Útransaction)ÚBaseDatabaseFeatures)ÚOperationalError)Úcached_propertyé   )ÚDatabasec                       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ejdk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	œZ#d
hZ$dZ%dZ&dZ'dZ(e)dd„ ƒZ*e)‡ fdd„ƒZ+e)dd„ ƒZ,e-e. /d¡ƒZ0e-e. /d¡ƒZ1e)dd„ ƒZ2e-e. /d¡ƒZ3‡  Z4S )ÚDatabaseFeatures)é   é   FTiç  r	   )r	   é#   é   ÚnocaseÚbinary)ÚciÚcsÚnon_defaultÚvirtualz9expressions.tests.FTimeDeltaTests.test_mixed_comparisons1z"INSERT INTO {} ("null") VALUES (1)c                 C   sn   dhh d£h d£dhdœ}| j  ¡ r| ddhdhd	œ¡ n
| d
hdhdœ¡ tjdk r5| ddhi¡ |S )NzZmodel_fields.test_decimalfield.DecimalFieldTests.test_fetch_from_db_without_float_rounding>   ú4schema.tests.SchemaTests.test_unique_and_reverse_m2mú<schema.tests.SchemaTests.test_unique_no_unnecessary_fk_dropsúHschema.tests.SchemaTests.test_alter_field_default_doesnt_perform_queriesúKschema.tests.SchemaTests.test_rename_column_renames_deferred_sql_references>   úIdb_functions.math.test_round.RoundTests.test_null_with_negative_precisionúJdb_functions.math.test_round.RoundTests.test_float_with_negative_precisionúLdb_functions.math.test_round.RoundTests.test_decimal_with_negative_precisionúLdb_functions.math.test_round.RoundTests.test_integer_with_negative_precisionz>backends.base.test_base.ExecuteWrapperTests.test_wrapper_debug)z6SQLite stores values rounded to 15 significant digits.z5SQLite naively remakes the table on field alteration.z6SQLite doesn't support negative precision for ROUND().z/The actual query cannot be determined on SQLitezJservers.test_liveserverthread.LiveServerThreadTest.test_closes_connectionszGservers.tests.LiveServerTestCloseConnectionTest.test_closes_connectionszbtest_utils.tests.AssertNumQueriesUponConnectionTests.test_ignores_connection_configuration_queries)zOthe sqlite backend's close() method is a no-op when using an in-memory databasezIFor SQLite in-memory tests, closing the connection destroys the database.zMservers.tests.LiveServerInMemoryDatabaseLockTest.test_in_memory_database_lockz`backends.sqlite.test_creation.TestDbSignatureTests.test_get_test_db_clone_settings_not_supported)zOOnly connections to in-memory SQLite databases are passed to the server thread.zMmultiprocessing's start method is checked only for in-memory SQLite databases)r	   é/   zESQLite does not parse escaped double quotes in the JSON path notationzQmodel_fields.test_jsonfield.TestQuerying.test_lookups_special_chars_double_quotes)Ú
connectionÚis_in_memory_dbÚupdater   Úsqlite_version_info)ÚselfÚskips© r"   úc/var/www/html/premium_crap/venv/lib/python3.10/site-packages/django/db/backends/sqlite3/features.pyÚdjango_test_skips;   s>   ÿÿé
ýÿ÷ÿÿÿùÿ
ÿþÿ	z"DatabaseFeatures.django_test_skipsc                    s   i t ƒ j¥dddddœ¥S )NÚ	AutoFieldÚBigIntegerFieldÚ	CharField)ÚBigAutoFieldÚDurationFieldÚGenericIPAddressFieldÚSmallAutoField)ÚsuperÚintrospected_field_types©r    ©Ú	__class__r"   r#   r-   „   s   ÿûz)DatabaseFeatures.introspected_field_typesc              	   C   sŽ   | j  ¡ �8}zt | j j¡� | d¡ W d   ƒ n1 sw   Y  W n ty4   Y W d   ƒ dS w W d   ƒ dS 1 s@w   Y  dS )NzSELECT JSON('{"a": "b"}')FT)r   Úcursorr   ÚatomicÚaliasÚexecuter   )r    r1   r"   r"   r#   Úsupports_json_fieldŽ   s   ÿ€û€
üúz$DatabaseFeatures.supports_json_fieldr5   c                 C   s
   t jdkS )N)r	   r   )r   r   r.   r"   r"   r#   Úcan_return_columns_from_insert›   s   
z/DatabaseFeatures.can_return_columns_from_insertr6   )5Ú__name__Ú
__module__Ú__qualname__Úminimum_database_versionÚ#test_db_allows_multiple_connectionsÚsupports_unspecified_pkÚsupports_timezonesÚmax_query_paramsÚsupports_transactionsÚatomic_transactionsÚcan_rollback_ddlÚcan_create_inline_fkÚrequires_literal_defaultsÚcan_clone_databasesÚsupports_temporal_subtractionÚignores_table_name_caseÚsupports_cast_with_precisionÚtime_cast_precisionÚcan_release_savepointsÚhas_case_insensitive_liker   r   Úcan_alter_table_drop_columnÚ supports_parentheses_in_compoundÚcan_defer_constraint_checksÚsupports_over_clauseÚ#supports_frame_range_fixed_distanceÚsupports_frame_exclusionÚ supports_aggregate_filter_clauseÚorder_by_nulls_firstÚsupports_json_field_containsÚsupports_update_conflictsÚ%supports_update_conflicts_with_targetÚ!supports_stored_generated_columnsÚ"supports_virtual_generated_columnsÚtest_collationsÚdjango_test_expected_failuresÚinsert_test_table_with_defaultsÚ"supports_default_keyword_in_insertÚsupports_unlimited_charfieldÚsupports_tuple_lookupsr   r$   r-   r5   ÚpropertyÚoperatorÚ
attrgetterÚcan_introspect_json_fieldÚhas_json_object_functionr6   Ú can_return_rows_from_bulk_insertÚ__classcell__r"   r"   r/   r#   r      sn    
ü	ý
H	
	
ÿr   )r_   Ú	django.dbr   Ú django.db.backends.base.featuresr   Údjango.db.utilsr   Údjango.utils.functionalr   Úbaser   r   r"   r"   r"   r#   Ú<module>   s    