
    `?iJ                     f    d dl Z 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                       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ej(                  dk\  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dddd	Z%d
hZ&dZ'dZ(dZ)e*d        Z+e* fd       Z,e-d        Z.e*d        Z/ e- e0jb                  d            Z2 e- e0jb                  d            Z3e*d        Z4 e- e0jb                  d            Z5 e- e0jb                  d            Z6 xZ7S )DatabaseFeatures)      FTr   )r   #      )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                   j                         r|j                  ddhdhd	       n|j                  d
hdhd       t        j                  dk  r|j                  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     u/home/cursorai/projects/django-cronjob-utils/venv/lib/python3.12/site-packages/django/db/backends/sqlite3/features.pydjango_test_skipsz"DatabaseFeatures.django_test_skips=   s    <GF	G Q@/
6 ??**,LL22+H&" LL7'H) '''1LLC!     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&   r2   z)DatabaseFeatures.introspected_field_types   s+    
g.
'.%0)
 	
r(   c                 h    | j                   j                   j                  t        j                        S )a@  
        SQLite has a variable limit per query. The limit can be changed using
        the SQLITE_MAX_VARIABLE_NUMBER compile-time option (which defaults to
        999 in versions < 3.32.0 or 32766 in newer versions) or lowered per
        connection at run-time with setlimit(SQLITE_LIMIT_VARIABLE_NUMBER, N).
        )r    getlimitsqlite3SQLITE_LIMIT_VARIABLE_NUMBERr$   s    r&   max_query_paramsz!DatabaseFeatures.max_query_params   s%     ))2273W3WXXr(   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   sz    __##% ''(=(=>NN#@A ? & 	 ?>#  &%	 & 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#   r8   s    r&   can_return_columns_from_insertz/DatabaseFeatures.can_return_columns_from_insert   s    ++w66r(   rA   )8__name__
__module____qualname__minimum_database_version#test_db_allows_multiple_connectionssupports_unspecified_pksupports_timezones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"supports_aggregate_order_by_clause-supports_aggregate_distinct_multiple_argumentsupports_any_value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_charfieldr   r'   r2   propertyr9   r?   operator
attrgettercan_introspect_json_fieldhas_json_object_functionrA    can_return_rows_from_bulk_insertcan_return_rows_from_update__classcell__)r3   s   @r&   r
   r
      s   &*/'"   $$(!"#( ! $"*">">*"L',$"&*.'#'+$)1)E)E)S&491#(  $,0)(,%)-&	O 	D%!
 'K#).&#' F FP 
 
 Y Y   !))<)<)<=R)S T'(;(;(;<Q(RS7 7 (0<=($ #+<=#r(   r
   )rk   r6   	django.dbr    django.db.backends.base.featuresr   django.db.utilsr   django.utils.functionalr   baser   r
    r(   r&   <module>rx      s)      ! A , 3 e+ er(   