
    ih                     f    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	e          ZdS )
    N)transaction)BaseDatabaseFeatures)OperationalError)cached_property   )Databasec                       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             Z*e) fd            Z+e)d             Z, e- e.j/        d                    Z0 e- e.j/        d                    Z1e)d             Z2 e- e.j/        d                    Z3 xZ4S )DatabaseFeatures)      FTi  r   )r   #      nocasebinary)cicsnon_defaultvirtualz9expressions.tests.FTimeDeltaTests.test_mixed_comparisons1z"INSERT INTO {} ("null") VALUES (1)c                    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     r|                    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_dropsHschema.tests.SchemaTests.test_alter_field_default_doesnt_perform_queriesKschema.tests.SchemaTests.test_rename_column_renames_deferred_sql_references>   Idb_functions.math.test_round.RoundTests.test_null_with_negative_precisionJdb_functions.math.test_round.RoundTests.test_float_with_negative_precisionLdb_functions.math.test_round.RoundTests.test_decimal_with_negative_precisionLdb_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skipss     Z/var/www/histauto/venv/lib/python3.11/site-packages/django/db/backends/sqlite3/features.pydjango_test_skipsz"DatabaseFeatures.django_test_skips;   s   <GF F F	G 	G 	G Q@/
 
6 ?**,, 	LL22+H&    " LL7'H)    ''11LLC!       c                 <    i t                      j        dddddS )N	AutoFieldBigIntegerField	CharField)BigAutoFieldDurationFieldGenericIPAddressFieldSmallAutoField)superintrospected_field_types)r#   	__class__s    r%   r1   z)DatabaseFeatures.introspected_field_types   s7    
gg.
'.%0)
 
 
 	
r'   c                 :   | j                                         5 }	 t          j        | j         j                  5  |                    d           d d d            n# 1 swxY w Y   n# t          $ r Y d d d            dS w xY wd d d            n# 1 swxY w Y   dS )NzSELECT JSON('{"a": "b"}')FT)r   cursorr   atomicaliasexecuter   )r#   r4   s     r%   supports_json_fieldz$DatabaseFeatures.supports_json_field   sJ   _##%% 	 '(=>> B BNN#@AAAB B B B B B B B B B B B B B B#   	 	 	 	 	 	 	 			 	 	 	 	 	 	 	 	 	 	 	 	 	 	 tsW   BA(AA(A 	 A(#A 	$A('B(
B2B BBBBr8   c                 "    t           j        dk    S )N)r   r   )r   r"   )r#   s    r%   can_return_columns_from_insertz/DatabaseFeatures.can_return_columns_from_insert   s    +w66r'   r:   )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&   r1   r8   propertyoperator
attrgettercan_introspect_json_fieldhas_json_object_functionr:    can_return_rows_from_bulk_insert__classcell__)r2   s   @r%   r
   r
      s       &*/'"   $$(!"#( ! $"*">*"L',$"&*.'#'+$#(  $,0)(,%)-&	 O 	D%!
 'K#).&#' "F F _FP 
 
 
 
 _
   _ !))<)<=R)S)S T T'x(;(;<Q(R(RSS7 7 _7 (0x<==( ($$$$$r'   r
   )rc   	django.dbr    django.db.backends.base.featuresr   django.db.utilsr   django.utils.functionalr   baser   r
    r'   r%   <module>ro      s     ! ! ! ! ! ! A A A A A A , , , , , , 3 3 3 3 3 3      V V V V V+ V V V V Vr'   