
    Hwg                     ^    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y)
    N)transaction)BaseDatabaseFeatures)OperationalError)cached_property   )Databasec                   V    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ej*                  dk\  ZdZdZej*                  dk\  Zej*                  dk\  Zej*                  d	k\  Zej*                  d
k\  Zej*                  dk  ZdZdZ ej*                  dk\  Z!e!Z"ddddZ#dhZ$dZ%e&d        Z'e&d        Z(e& fd       Z)e&d        Z* e+ e,jZ                  d            Z. e+ e,jZ                  d            Z/e&d        Z0 e+ e,jZ                  d            Z1 xZ2S )DatabaseFeatures)      FTi  r   )r      r   )r   #      )r      r   )r      r   )r   r   r   )r   r   )r      r   nocasebinary)cicsnon_defaultz9expressions.tests.FTimeDeltaTests.test_mixed_comparisons1z
        CREATE TABLE test_table_composite_pk (
            column_1 INTEGER NOT NULL,
            column_2 INTEGER NOT NULL,
            PRIMARY KEY(column_1, column_2)
        )
    c                     dhh dh dd}t         j                  dk  r|j                  ddhi       | j                  j	                         r|j                  dd	hd
hd       |S |j                  dhdhd       |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_precision)z6SQLite stores values rounded to 15 significant digits.z5SQLite naively remakes the table on field alteration.z6SQLite doesn't support negative precision for ROUND().)r      z*Nondeterministic failure on SQLite < 3.27.zIexpressions_window.tests.WindowFunctionTests.test_subquery_row_range_rankzJservers.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 databasezHFor SQLite in-memory tests, closing the connection destroysthe 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   sqlite_version_infoupdate
connectionis_in_memory_db)selfskipss     Z/var/www/horilla/myenv/lib/python3.12/site-packages/django/db/backends/sqlite3/features.pydjango_test_skipsz"DatabaseFeatures.django_test_skips?   s    <GF	G
0 '''1LL@7C ??**,LL22+H&>  LL7'H)     c                 (    t         j                  dk\  S )N)r      r   r   r"   r&   s    r(   !supports_atomic_references_renamez2DatabaseFeatures.supports_atomic_references_rename   s    ++z99r*   c                 *    i t         |   dddddS )N	AutoFieldBigIntegerField	CharField)BigAutoFieldDurationFieldGenericIPAddressFieldSmallAutoField)superintrospected_field_types)r&   	__class__s    r(   r9   z)DatabaseFeatures.introspected_field_types   s+    
g.
'.%0)
 	
r*   c                 0   | j                   j                         5 }	 t        j                  | j                   j                        5  |j                  d       d d d        d d d        y# 1 sw Y   xY w# t        $ r Y d d d        yw xY w# 1 sw Y   yxY w)NzSELECT JSON('{"a": "b"}')FT)r$   cursorr   atomicaliasexecuter   )r&   r<   s     r(   supports_json_fieldz$DatabaseFeatures.supports_json_field   s    __##% 	 ''(=(=> BNN#@AB	 	B B# 	 			 s@   B)A5A)A5)A2	.A55	B	>BB		BBr@   c                 (    t         j                  dk\  S )N)r   r   r-   r.   s    r(   can_return_columns_from_insertz/DatabaseFeatures.can_return_columns_from_insert   s    ++w66r*   rB   )3__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_rename_columncan_alter_table_drop_column supports_parentheses_in_compoundcan_defer_constraint_checkssupports_over_clause#supports_frame_range_fixed_distance supports_aggregate_filter_clause supports_order_by_nulls_modifier#requires_compound_order_by_subqueryorder_by_nulls_firstsupports_json_field_containssupports_update_conflicts%supports_update_conflicts_with_targettest_collationsdjango_test_expected_failures,create_test_table_with_composite_primary_keyr   r)   r/   r9   r@   propertyoperator
attrgettercan_introspect_json_fieldhas_json_object_functionrB    can_return_rows_from_bulk_insert__classcell__)r:   s   @r(   r
   r
      s   &*/'"   $$(!"#( ! $$,$@$@J$N!"*">">*"L',$"&#77:E*2*F*F**T''/'C'Cz'Q$'/'C'Cz'Q$*2*F*F*P'#(  ( < <
 J,E)O 	D%!
40 B BH : : 
 
   !))<)<)<=R)S T'(;(;(;<Q(RS7 7 (0<=($r*   r
   )rh   	django.dbr    django.db.backends.base.featuresr   django.db.utilsr   django.utils.functionalr   baser   r
    r*   r(   <module>rt      s&     ! A , 3 Z+ Zr*   