https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/django/db/backends/sqlite3/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/django/db/backends/sqlite3/__pycache__/operations.cpython-310.pyc
o

3�aV:�@s�ddlZddlZddlZddlmZddlmZddlmZddl	m
Z
ddlmZm
Z
mZddlmZddlmZdd	lmZdd
lmZmZmZddlmZGdd
�d
e�ZdS)�N)�	lru_cache)�chain)�settings)�
FieldError)�
DatabaseError�NotSupportedError�models)�BaseDatabaseOperations)�Col)�timezone)�
parse_date�parse_datetime�
parse_time)�cached_propertycs`eZdZdZddd�ZdZdd�Zdd�Zd	d
�Zdd�Z	dPdd�Z
dPdd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zed*d+��Zd,d,d-�d.d/�Zd0d1�Zd2d3�Zd4d5�Z�fd6d7�Zd8d9�Zd:d;�Z d<d=�Z!d>d?�Z"d@dA�Z#dBdC�Z$dDdE�Z%�fdFdG�Z&dHdI�Z'dJdK�Z(dLdM�Z)dQ�fdNdO�	Z*�Z+S)R�DatabaseOperations�text�TEXT)�	DateField�
DateTimeFieldzEXPLAIN QUERY PLANcCs6t|�dkrdSt|�dkr|jjjt|�St|�S)z�
        SQLite has a compile-time default (SQLITE_LIMIT_VARIABLE_NUMBER) of
        999 variables per query.

        If there's only a single field to insert, the limit is 500
        (SQLITE_MAX_COMPOUND_SELECT).
        �i�)�len�
connection�features�max_query_params)�self�fields�objs�r�G/usr/lib/python3/dist-packages/django/db/backends/sqlite3/operations.py�bulk_batch_sizes
z"DatabaseOperations.bulk_batch_sizec
Cs�tjtjtjf}tjtjtjtjf}t||�r8|�	�D]}z|j
}Wnttfy-Yqwt||�r7t
d��qt|tj�rL|jrNt|j�dkrPt
d��dSdSdS)Nz{You cannot use Sum, Avg, StdDev, and Variance aggregations on date/time fields in sqlite3 since date/time is saved as text.rzTSQLite doesn't support DISTINCT on aggregate functions accepting multiple arguments.)rrr�	TimeField�Sum�Avg�Variance�StdDev�
isinstance�get_source_expressions�output_field�AttributeErrorrr�	Aggregate�distinctr�source_expressions)r�
expression�
bad_fields�bad_aggregates�exprr'rrr�check_expression_support(s0

�
��
����z+DatabaseOperations.check_expression_supportcC�d|��|fS)z�
        Support EXTRACT with a user-defined function django_date_extract()
        that's registered in connect(). Use single quotes because this is a
        string and could otherwise cause a collision with a field name.
        zdjango_date_extract('%s', %s)��lower�r�lookup_type�
field_namerrr�date_extract_sqlDsz#DatabaseOperations.date_extract_sqlcCs|S)z>Do nothing since formatting is handled in the custom function.r)r�sqlrrr�format_for_duration_arithmeticL�z1DatabaseOperations.format_for_duration_arithmeticNcC�d|��|g|�|��RS)Nz#django_date_trunc('%s', %s, %s, %s)�r3�_convert_tznames_to_sql�rr5r6�tznamerrr�date_trunc_sqlP���z!DatabaseOperations.date_trunc_sqlcCr;)Nz#django_time_trunc('%s', %s, %s, %s)r<r>rrr�time_trunc_sqlWrAz!DatabaseOperations.time_trunc_sqlcCs"|rtjrd|d|jjfSdS)N�'%s')�NULLrD)r�USE_TZr�
timezone_name)rr?rrrr=^s
z*DatabaseOperations._convert_tznames_to_sqlcC�d|g|�|��RS)Nz%django_datetime_cast_date(%s, %s, %s)�r=�rr6r?rrr�datetime_cast_date_sqlc�
��z)DatabaseOperations.datetime_cast_date_sqlcCrG)Nz%django_datetime_cast_time(%s, %s, %s)rHrIrrr�datetime_cast_time_sqlhrKz)DatabaseOperations.datetime_cast_time_sqlcCr;)Nz)django_datetime_extract('%s', %s, %s, %s)r<r>rrr�datetime_extract_sqlm�
��z'DatabaseOperations.datetime_extract_sqlcCr;)Nz'django_datetime_trunc('%s', %s, %s, %s)r<r>rrr�datetime_trunc_sqlrrNz%DatabaseOperations.datetime_trunc_sqlcCr1)Nzdjango_time_extract('%s', %s)r2r4rrr�time_extract_sqlwsz#DatabaseOperations.time_extract_sqlcC�dS)NrDr�rrrr�pk_default_valuez�z#DatabaseOperations.pk_default_valuecCs�d}t|�|kr&d}tdt|�|�D]}||||�}||�|�7}q|Sdd�dgt|��}|jj��}z
|�||���W|��S|��w)zV
        Only for last_executed_query! Don't use this to execute SQL queries!
        i�rrzSELECT �, zQUOTE(?))	r�range�%_quote_params_for_last_executed_query�joinr�cursor�execute�fetchone�close)r�params�
BATCH_SIZE�results�index�chunkr8rYrrrrW}s	z8DatabaseOperations._quote_params_for_last_executed_querycCsT|r(t|ttf�r|�|�}||St|���}|�|�}tt||��}||S|S�N)r%�list�tuplerW�values�dict�zip)rrYr8r]rerrr�last_executed_query�s
�
z&DatabaseOperations.last_executed_querycCs |�d�r|�d�r|Sd|S)N�"z"%s")�
startswith�endswith)r�namerrr�
quote_name�szDatabaseOperations.quote_namecCrQ)N���rrRrrr�no_limit_value�rTz!DatabaseOperations.no_limit_valuecCsZd}|ddf}|j���}|�||�}dd�|��D�Wd�S1s&wYdS)Nz�
        WITH tables AS (
            SELECT %s name
            UNION
            SELECT sqlite_master.name
            FROM sqlite_master
            JOIN tables ON (sql REGEXP %s || tables.name || %s)
        ) SELECT name FROM tables;
        z(?i)\s+references\s+("|\')?z("|\')?\s*\(cSsg|]}|d�qS)rr��.0�rowrrr�
<listcomp>��z9DatabaseOperations.__references_graph.<locals>.<listcomp>)rrYrZ�fetchall)r�
table_name�queryr]rYr_rrr�__references_graph�s
�$�z%DatabaseOperations.__references_graphcCstdd�|j�S)Ni)�maxsize)r�%_DatabaseOperations__references_graphrRrrr�_references_graph�sz$DatabaseOperations._references_graphF)�reset_sequences�
allow_cascadecs`|r|rtt��fdd�|D���}��fdd�|D�}|r.dd�|D�}|����|��|S)Nc3s�|]}��|�VqdSrb)r{�rq�tablerRrr�	<genexpr>�s�z/DatabaseOperations.sql_flush.<locals>.<genexpr>c
s2g|]}d��d���d�����|��f�qS)z	%s %s %s;�DELETE�FROM)�SQL_KEYWORD�	SQL_FIELDrmr~�r�stylerrrs�s�
�z0DatabaseOperations.sql_flush.<locals>.<listcomp>cSsg|]}d|i�qS)rrr~rrrrs�rt)�setr�
from_iterable�extend�sequence_reset_by_name_sql)rr��tablesr|r}r8�	sequencesrr�r�	sql_flush�s�zDatabaseOperations.sql_flushcCsn|sgSd|�d�|�|�d��|�d�|�|�d��|�d�|�|�d��|�d�d	�d
d�|D��fgS)Nz%s %s %s %s = 0 %s %s %s (%s);�UPDATE�sqlite_sequence�SET�seq�WHERErl�INrUcSsg|]}d|d�qS)rCrr)rq�
sequence_inforrrrs�s�zADatabaseOperations.sequence_reset_by_name_sql.<locals>.<listcomp>)r��	SQL_TABLErmr�rX)rr�r�rrrr��s
���z-DatabaseOperations.sequence_reset_by_name_sqlcCsR|durdSt|d�r
|St�|�r%tjr!t�||jj�}t|�Std��t|�S)N�resolve_expressionzNSQLite backend does not support timezone-aware datetimes when USE_TZ is False.)	�hasattrr�is_awarerrE�
make_naiver�
ValueError�str�r�valuerrr�adapt_datetimefield_value�s

�z,DatabaseOperations.adapt_datetimefield_valuecCs4|durdSt|d�r
|St�|�rtd��t|�S)Nr�z5SQLite backend does not support timezone-aware times.)r�rr�r�r�r�rrr�adapt_timefield_value�s

z(DatabaseOperations.adapt_timefield_valuecs�t��|�}|j��}|dkr|�|j�|S|dkr#|�|j�|S|dkr/|�|j�|S|dkr=|�|�|��|S|dkrI|�|j	�|S|dvrS|�|j
�|S)Nrrr �DecimalField�	UUIDField)�NullBooleanField�BooleanField)�super�get_db_convertersr'�get_internal_type�append�convert_datetimefield_value�convert_datefield_value�convert_timefield_value�get_decimalfield_converter�convert_uuidfield_value�convert_booleanfield_value)rr,�
converters�
internal_type��	__class__rrr�s(
�	����z$DatabaseOperations.get_db_converterscCs@|durt|tj�st|�}tjrt�|�st�||jj�}|Srb)	r%�datetimer
rrErr��
make_awarer�rr�r,rrrrr�sz.DatabaseOperations.convert_datetimefield_valuecC� |durt|tj�st|�}|Srb)r%r��daterr�rrrr�$�z*DatabaseOperations.convert_datefield_valuecCr�rb)r%r��timerr�rrrr�*r�z*DatabaseOperations.convert_timefield_valuecsPtjdd�j�t|t�r t�d��|jj����fdd�}|S�fdd�}|S)N�)�precrcs"|dur�|�j�|jjd�SdS)N)�context)�quantizer'r��r�r,r��create_decimal�quantize_valuerr�	converter7s�z@DatabaseOperations.get_decimalfield_converter.<locals>.convertercs|dur�|�SdSrbrr�)r�rrr�;s�)	�decimal�Context�create_decimal_from_floatr%r
�Decimal�scalebr'�decimal_places)rr,r�rr�rr�0s
�z-DatabaseOperations.get_decimalfield_convertercCs|dur	t�|�}|Srb)�uuid�UUIDr�rrrr�@s
z*DatabaseOperations.convert_uuidfield_valuecCs|dvrt|�S|S)N)rr)�boolr�rrrr�E�z-DatabaseOperations.convert_booleanfield_valuecCsd�dd�|D��S)Nz UNION ALL css�|]
}dd�|�VqdS)z	SELECT %srUN�rXrprrrr�Is
��
�z5DatabaseOperations.bulk_insert_sql.<locals>.<genexpr>r�)rr�placeholder_rowsrrr�bulk_insert_sqlHs
�z"DatabaseOperations.bulk_insert_sqlcs:|dkrdd�|�S|dkrdd�|�St��||�S)N�^z	POWER(%s)�,�#z
BITXOR(%s))rXr��combine_expression)r�	connector�sub_expressionsr�rrr�Ns
z%DatabaseOperations.combine_expressioncCsD|dvr
td|��d|g|}t|�dkrtd��dd�|�S)N)�+�-z$Invalid connector for timedelta: %s.rC�z)Too many params for timedelta operations.zdjango_format_dtdelta(%s)rU)rrr�rX)rr�r��	fn_paramsrrr�combine_duration_expressionWsz.DatabaseOperations.combine_duration_expressioncCrQ)N)NNr)rr�rrr�integer_field_range_r:z&DatabaseOperations.integer_field_rangec	CsF|\}}|\}}g|�|�R}|dkrd||f|fSd||f|fS)Nr zdjango_time_diff(%s, %s)zdjango_timestamp_diff(%s, %s)r)	rr��lhs�rhs�lhs_sql�
lhs_params�rhs_sql�
rhs_paramsr]rrr�subtract_temporalscsz%DatabaseOperations.subtract_temporalscs|rdSt��|�S)NzINSERT OR IGNORE INTO)r��insert_statement)r�ignore_conflictsr�rrr�kr�z#DatabaseOperations.insert_statementrb)F),�__name__�
__module__�__qualname__�"cast_char_field_without_max_length�cast_data_types�explain_prefixrr0r7r9r@rBr=rJrLrMrOrPrSrWrhrmrorzrr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__rrr�rrsV�


	r)r�r�r��	functoolsr�	itertoolsr�django.confr�django.core.exceptionsr�	django.dbrrr�"django.db.backends.base.operationsr	�django.db.models.expressionsr
�django.utilsr�django.utils.dateparserr
r�django.utils.functionalrrrrrr�<module>s

https://t.me/RX1948 - 2025