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/models/sql/__pycache__/ |
Upload File : |
o ��Ih� � @ s d Z ddlZddlZddlZddlZddlZddlZddlmZm Z ddl mZmZ ddl mZmZmZ ddlmZ ddlmZmZ ddlmZmZmZ dd lmZ dd lmZ ddlmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% ddl&m'Z' dd l(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1m2Z2m3Z3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddgZIeFd�ZJeFd�ZKdd� ZLdd� ZMe dd �ZNG d!d� d�ZOG d"d� de�ZPd,d$d%�ZQd&d'� ZRd(d)� ZSG d*d+� d+�ZTdS )-aW Create SQL statements for QuerySets. The code in here encapsulates all of the SQL construction so that QuerySets themselves do not have to (and could be backed by things other than SQL databases). The abstraction barrier only works one way: this module has to know all about the internals of models in order to get the information it needs. � N)�Counter� namedtuple)�Iterator�Mapping)�chain�count�product)�ascii_uppercase)�FieldDoesNotExist� FieldError)�DEFAULT_DB_ALIAS�NotSupportedError�connections)�Count)� LOOKUP_SEP)�BaseExpression�Col�Exists�F�OuterRef�Ref�ResolvedOuterRef)�Field)�MultiColSource)�Lookup)�Q�check_rel_lookup_compatibility�refs_expression)�INNER�LOUTER� ORDER_DIR� ORDER_PATTERN�SINGLE)� BaseTable�Empty�Join� MultiJoin)�AND�OR� ExtraWhere�NothingNode� WhereNode)�RemovedInDjango40Warning)�cached_property)�_lazy_re_compile)�Node�Query�RawQueryz['`\"\]\[;\s]|--|/\*|\*/z[\w\-]+c C s t t�dd� | �� D ���S )Nc s s* � | ]}|j r |j|jfn|jfV qd S �N)�concrete�name�attname��.0�f� r9 �</usr/lib/python3/dist-packages/django/db/models/sql/query.py� <genexpr>; s � � �z,get_field_names_from_opts.<locals>.<genexpr>)�setr � from_iterable� get_fields)�optsr9 r9 r: �get_field_names_from_opts: s �r@ c c s2 � | j D ]}t|t�rt|�E d H q|V qd S r2 )�children� isinstancer/ �get_children_from_q)�q�childr9 r9 r: rC A s � �rC �JoinInfo)�final_field�targetsr? �joins�path�transform_functionc @ s^ e Zd ZdZddd�Zdd� Zdd� Zd d � Zdd� Zd d� Z e dd� �Zdd� Zdd� Z dS )r1 zA single raw SQL query.r9 c C s4 || _ || _|| _d | _d\| _| _i | _i | _d S )N�r N)�params�sql�using�cursor�low_mark� high_mark�extra_select�annotation_select)�selfrN rO rM r9 r9 r: �__init__R s zRawQuery.__init__c C s | � |�S r2 ��clone�rU rO r9 r9 r: r ^ s zRawQuery.chainc C s t | j|| jd�S )N)rM )r1 rN rM rY r9 r9 r: rX a � zRawQuery.clonec s6 | j d u r | �� t| j jj� � fdd�| j jD �S )Nc s g | ]}� |d ��qS �r r9 )r7 �column_meta�� converterr9 r: � <listcomp>h s �z(RawQuery.get_columns.<locals>.<listcomp>)rP �_execute_queryr rO � introspection�identifier_converter�description�rU r9 r] r: �get_columnsd s �zRawQuery.get_columnsc C s6 | � � t| j jjst| j�}t|�S | j}t|�S r2 )r` r rO �features�can_use_chunked_reads�listrP �iter)rU �resultr9 r9 r: �__iter__k s �zRawQuery.__iter__c C s d| j j| f S )Nz<%s: %s>)� __class__�__name__rd r9 r9 r: �__repr__w s zRawQuery.__repr__c C s"