Ë
    ¦#ijv  ã                   ó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_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Úskipss     ú]/var/www/html/office/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 �?‰?×*Ñ*Ô,Ø�L‰Lð2ð2ð+ðHð&ñõð" �L‰Lð7ð'ðHð)ñôô ×'Ñ'¨'Ò1Ø�L‰Lðð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                 óœ   — | j                   j                  «        | 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    Úensure_connectionÚgetlimitÚsqlite3ÚSQLITE_LIMIT_VARIABLE_NUMBER©r$   s    r&   Úmax_query_paramsz!DatabaseFeatures.max_query_params�   s5   € ð 	�‰×)Ñ)Ô+Ø�‰×)Ñ)×2Ñ2´7×3WÑ3WÓ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›   sŒ   € à�_‰_×#Ñ#Ó%ð 	¨ðÜ ×'Ñ'¨¯©×(=Ñ(=Ó>ñ BØ—N‘NÐ#@Ô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#   r9   s    r&   Úcan_return_columns_from_insertz/DatabaseFeatures.can_return_columns_from_insert¨   s   € ä×+Ñ+¨wÑ6Ð6r(   rB   )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   Úpropertyr:   r@   ÚoperatorÚ
attrgetterÚcan_introspect_json_fieldÚhas_json_object_functionrB   Ú 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
   )rl   r7   Ú	django.dbr   Ú django.db.backends.base.featuresr   Údjango.db.utilsr   Údjango.utils.functionalr   Úbaser   r
   © r(   r&   ú<module>ry      s)   ðÛ Û å !Ý AÝ ,Ý 3å ôfÐ+õ fr(   