§
    HŠtj‰Œ  ã                  ób  — d dl mZ 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
mZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZ d dlmZmZmZmZ  G d	„ d
e¦  «        Z  G d„ de¦  «        Z! G d„ de
¦  «        Z" G d„ de¦  «        Z# G d„ de¦  «        Z$ G d„ de¦  «        Z% G d„ d¦  «        Z& G d„ de
¦  «        Z' G d„ de¦  «        Z( G d„ de¦  «        Z) G d„ de¦  «        Z* G d„ d e
¦  «        Z+ G d!„ d"¦  «        Z, G d#„ d$e¦  «        Z- G d%„ d&e¦  «        Z. G d'„ d(e-¦  «        Z/ G d)„ d*e¦  «        Z0 G d+„ d,e¦  «        Z1 G d-„ d.e¦  «        Z2 G d/„ d0e¦  «        Z3 G d1„ d2e¦  «        Z4 G d3„ d4e-¦  «        Z5 G d5„ d6e¦  «        Z6 G d7„ d8e¦  «        Z7 G d9„ d:e¦  «        Z8 G d;„ d<e¦  «        Z9 G d=„ d>e¦  «        Z: G d?„ d@e¦  «        Z; G dA„ dBe¦  «        Z< G dC„ dDe¦  «        Z= G dE„ dFe¦  «        Z> G dG„ dHe>¦  «        Z? G dI„ dJe¦  «        Z@ G dK„ dLe¦  «        ZAdS )Mé    )ÚannotationsN)Úcopy)ÚAny)ÚDialects)ÚCreateQueryBuilderÚDatabaseÚDropQueryBuilderÚQueryÚQueryBuilderÚ
SelectableÚTable)	ÚArithmeticExpressionÚ	CriterionÚEmptyCriterionÚFieldÚFunctionÚNullCriterionÚStarÚTermÚValueWrapper)ÚQueryExceptionÚbuilderÚformat_alias_sqlÚformat_quotesc                  óZ   — e Zd ZdZedd„¦   «         Zedd
„¦   «         Zedd„¦   «         ZdS )ÚSnowflakeQueryz7
    Defines a query class for use with Snowflake.
    Úkwargsr   ÚreturnÚSnowflakeQueryBuilderc                ó   — t          di |¤ŽS ©N© )r   ©Úclsr   s     úM/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pypika/dialects.pyÚ_builderzSnowflakeQuery._builder%   s   € å$Ð.Ð. vÐ.Ð.Ð.ó    Útableústr | TableÚSnowflakeCreateQueryBuilderc                óD   — t          ¦   «                              |¦  «        S ©N)r*   Úcreate_table©r$   r(   s     r%   r-   zSnowflakeQuery.create_table)   s   € å*Ñ,Ô,×9Ò9¸%Ñ@Ô@Ð@r'   ÚSnowflakeDropQueryBuilderc                óD   — t          ¦   «                              |¦  «        S r,   )r/   Ú
drop_tabler.   s     r%   r1   zSnowflakeQuery.drop_table-   s   € å(Ñ*Ô*×5Ò5°eÑ<Ô<Ð<r'   N)r   r   r   r   )r(   r)   r   r*   )r(   r)   r   r/   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úclassmethodr&   r-   r1   r"   r'   r%   r   r       s‚   € € € € € ðð ð ð/ð /ð /ñ „[ð/ð ðAð Að Añ „[ðAð ð=ð =ð =ñ „[ð=ð =ð =r'   r   c                  ó0   ‡ — e Zd ZdZdZdZeZd	ˆ fd„Zˆ xZ	S )
r   Nú"Ú r   r   r   ÚNonec                óR   •—  t          ¦   «         j        ddt          j        i|¤Ž d S ©NÚdialectr"   ©ÚsuperÚ__init__r   Ú	SNOWFLAKE©Úselfr   Ú	__class__s     €r%   r@   zSnowflakeQueryBuilder.__init__8   s.   ø€ Ø�‰ŒÔÐ>Ð>¥Ô!3Ð>°vÐ>Ð>Ð>Ð>Ð>r'   ©r   r   r   r:   )
r2   r3   r4   Ú
QUOTE_CHARÚALIAS_QUOTE_CHARÚQUERY_ALIAS_QUOTE_CHARr   Ú	QUERY_CLSr@   Ú__classcell__©rD   s   @r%   r   r   2   sS   ø€ € € € € Ø€JØÐØÐØ€Ið?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?r'   r   c                  ó(   ‡ — e Zd ZdZeZdˆ fd„Zˆ xZS )r*   Nr   r:   c                ó`   •— t          ¦   «                              t          j        ¬¦  «         d S ©N©r=   r>   ©rC   rD   s    €r%   r@   z$SnowflakeCreateQueryBuilder.__init__@   ó'   ø€ Ý‰Œ×Ò¥Ô!3ÐÑ4Ô4Ð4Ð4Ð4r'   ©r   r:   ©r2   r3   r4   rF   r   rI   r@   rJ   rK   s   @r%   r*   r*   <   óG   ø€ € € € € Ø€JØ€Ið5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5ð 5r'   r*   c                  ó(   ‡ — e Zd ZdZeZdˆ fd„Zˆ xZS )r/   Nr   r:   c                ó`   •— t          ¦   «                              t          j        ¬¦  «         d S rN   r>   rP   s    €r%   r@   z"SnowflakeDropQueryBuilder.__init__H   rQ   r'   rR   rS   rK   s   @r%   r/   r/   D   rT   r'   r/   c                  ór   — e Zd ZdZedd„¦   «         Zedd
„¦   «         Zedd„¦   «         Zedd„¦   «         ZdS )Ú
MySQLQueryz3
    Defines a query class for use with MySQL.
    r   r   r   ÚMySQLQueryBuilderc                ó   — t          di |¤ŽS r!   )rY   r#   s     r%   r&   zMySQLQuery._builderQ   ó   € å Ð*Ð* 6Ð*Ð*Ð*r'   ÚfpÚstrÚMySQLLoadQueryBuilderc                óD   — t          ¦   «                              |¦  «        S r,   )r^   Úload©r$   r\   s     r%   r`   zMySQLQuery.loadU   s   € å$Ñ&Ô&×+Ò+¨BÑ/Ô/Ð/r'   r(   r)   ÚMySQLCreateQueryBuilderc                óD   — t          ¦   «                              |¦  «        S r,   )rb   r-   r.   s     r%   r-   zMySQLQuery.create_tableY   s   € å&Ñ(Ô(×5Ò5°eÑ<Ô<Ð<r'   ÚMySQLDropQueryBuilderc                óD   — t          ¦   «                              |¦  «        S r,   )rd   r1   r.   s     r%   r1   zMySQLQuery.drop_table]   s   € å$Ñ&Ô&×1Ò1°%Ñ8Ô8Ð8r'   N)r   r   r   rY   )r\   r]   r   r^   )r(   r)   r   rb   )r(   r)   r   rd   )	r2   r3   r4   r5   r6   r&   r`   r-   r1   r"   r'   r%   rX   rX   L   sž   € € € € € ðð ð ð+ð +ð +ñ „[ð+ð ð0ð 0ð 0ñ „[ð0ð ð=ð =ð =ñ „[ð=ð ð9ð 9ð 9ñ „[ð9ð 9ð 9r'   rX   c                  óÂ   ‡ — e Zd ZdZeZdˆ fd„Zdˆ fd„Zeddd„¦   «         Z	ed d„¦   «         Z
ed!d„¦   «         Zd"ˆ fd„Zd#d„Zd"d„Zd#d„Zed$d„¦   «         Zd"d„Zˆ xZS )%rY   ú`r   r   r   r:   c                ó¾   •—  t          ¦   «         j        ddt          j        i|¤Ž g | _        d| _        g | _        d| _        d| _        t          ¦   «         | _
        d S ©Nr=   Fr"   )r?   r@   r   ÚMYSQLÚ_duplicate_updatesÚ_ignore_duplicatesÚ
_modifiersÚ_for_update_nowaitÚ_for_update_skip_lockedÚsetÚ_for_update_ofrB   s     €r%   r@   zMySQLQueryBuilder.__init__f   s`   ø€ Ø�‰ŒÔÐ:Ð:¥¤Ð:°6Ð:Ð:Ð:Ø"$ˆÔØ"'ˆÔØˆŒà"'ˆÔØ',ˆÔ$Ý!™eœeˆÔÐÐr'   c                ó¬   •— t          ¦   «                              ¦   «         }t          | j        ¦  «        |_        t          | j        ¦  «        |_        |S r,   )r?   Ú__copy__r   rk   rl   ©rC   ÚnewonerD   s     €r%   rs   zMySQLQueryBuilder.__copy__p   sC   ø€ Ý‘”×!Ò!Ñ#Ô#ˆÝ$(¨Ô)@Ñ$AÔ$AˆÔ!Ý$(¨Ô)@Ñ$AÔ$AˆÔ!Øˆr'   Fr"   ÚnowaitÚboolÚskip_lockedÚofútuple[str, ...]c                óX   — d| _         || _        || _        t          |¦  «        | _        d S ©NT©Ú_for_updatero   rn   rp   rq   ©rC   rv   rx   ry   s       r%   Ú
for_updatezMySQLQueryBuilder.for_updatev   ó.   € àˆÔØ'2ˆÔ$Ø"(ˆÔÝ! "™gœgˆÔÐÐr'   ÚfieldúField | strÚvaluec                óÐ   — | j         rt          d¦  «        ‚t          |t          ¦  «        st          |¦  «        n|}| j                             |t          |¦  «        f¦  «         d S )Nú"Can not have two conflict handlers)rl   r   Ú
isinstancer   rk   Úappendr   )rC   r‚   r„   s      r%   Úon_duplicate_key_updatez)MySQLQueryBuilder.on_duplicate_key_update}   se   € àÔ"ð 	GÝ Ð!EÑFÔFÐFå$.¨uµeÑ$<Ô$<ÐG•�e‘”�À%ˆØÔ×&Ò&¨­|¸EÑ/BÔ/BÐ'CÑDÔDÐDÐDÐDr'   c                ó@   — | j         rt          d¦  «        ‚d| _        d S )Nr†   T)rk   r   rl   ©rC   s    r%   Úon_duplicate_key_ignorez)MySQLQueryBuilder.on_duplicate_key_ignore…   s+   € àÔ"ð 	GÝ Ð!EÑFÔFÐFà"&ˆÔÐÐr'   r]   c                óÔ   •— |                       |¦  «          t          ¦   «         j        di |¤Ž}|r6| j        r| | j        di |¤Žz  }n| j        r||                      ¦   «         z  }|S r!   )Ú_set_kwargs_defaultsr?   Úget_sqlrk   Ú_on_duplicate_key_update_sqlrl   Ú_on_duplicate_key_ignore_sql)rC   r   ÚquerystringrD   s      €r%   r�   zMySQLQueryBuilder.get_sqlŒ   s�   ø€ Ø×!Ò! &Ñ)Ô)Ð)Ø%•e‘g”g”oÐ/Ð/¨Ð/Ð/ˆØð 	CØÔ&ð CØÐ@˜tÔ@ÐJÐJÀ6ÐJÐJÑJ��ØÔ(ð CØ˜t×@Ò@ÑBÔBÑB�ØÐr'   c                ó¸   ‡— | j         rOd}| j        r,|dd                     ˆfd„| j        D ¦   «         ¦  «        › �z  }| j        r|dz  }n| j        r|dz  }nd}|S )Nú FOR UPDATEú OF ú, c                óD   •— g | ]} t          |¦  «        j        d i ‰¤Ž‘ŒS ©r"   ©r   r�   ©Ú.0Úitemr   s     €r%   ú
<listcomp>z5MySQLQueryBuilder._for_update_sql.<locals>.<listcomp>š   ó4   ø€ Ð/nÐ/nÐ/nÐRVÐ0Cµ°d±´Ô0CÐ0MÐ0MÀfÐ0MÐ0MÐ/nÐ/nÐ/nr'   ú NOWAITú SKIP LOCKEDr9   ©r~   rq   Újoinrn   ro   ©rC   r   r€   s    ` r%   Ú_for_update_sqlz!MySQLQueryBuilder._for_update_sql–   ó�   ø€ ØÔð 		Ø&ˆJØÔ"ð rØÐq T§Y¢YÐ/nÐ/nÐ/nÐ/nÐZ^ÔZmÐ/nÑ/nÔ/nÑ%oÔ%oÐqÐqÑq�
ØÔ&ð -Ø˜iÑ'�
�
ØÔ-ð -Ø˜nÑ,�
øàˆJàÐr'   c                óx   ‡— d                      d                     ˆfd„| j        D ¦   «         ¦  «        ¬¦  «        S )Nz" ON DUPLICATE KEY UPDATE {updates}ú,c           	   3  óx   •K  — | ]4\  }}d                        |j        di ‰¤Ž |j        di ‰¤Ž¬¦  «        V — Œ5dS )ú{field}={value}©r‚   r„   Nr"   )Úformatr�   ©r›   r‚   r„   r   s      €r%   ú	<genexpr>zAMySQLQueryBuilder._on_duplicate_key_update_sql.<locals>.<genexpr>¦   ss   øè è € ð ð á �E˜5ð "×(Ò(¨}¨u¬}Ð/FÐ/F¸vÐ/FÐ/FÈmÈeÌmÐNeÐNeÐ^dÐNeÐNeÐ(ÑfÔfðð ð ð ð ð r'   ©Úupdates)r«   r¢   rk   ©rC   r   s    `r%   r�   z.MySQLQueryBuilder._on_duplicate_key_update_sql¤   sZ   ø€ Ø3×:Ò:Ø—H’Hð ð ð ð à$(Ô$;ðñ ô ñ ô ð ;ñ 
ô 
ð 	
r'   c                ó   — dS )Nz ON DUPLICATE KEY IGNOREr"   r‹   s    r%   r‘   z.MySQLQueryBuilder._on_duplicate_key_ignore_sql¬   s   € Ø)Ð)r'   c                ó:   — | j                              |¦  «         dS )zÊ
        Adds a modifier such as SQL_CALC_FOUND_ROWS to the query.
        https://dev.mysql.com/doc/refman/5.7/en/select.html

        :param value: The modifier value e.g. SQL_CALC_FOUND_ROWS
        N)rm   rˆ   )rC   r„   s     r%   ÚmodifierzMySQLQueryBuilder.modifier¯   s    € ð 	Œ×Ò˜uÑ%Ô%Ð%Ð%Ð%r'   c                óö   ‡— d                      | j        rdnd| j        r-d                      d                     | j        ¦  «        ¦  «        ndd                     ˆfd„| j        D ¦   «         ¦  «        ¬¦  «        S )	z�
        Overridden function to generate the SELECT part of the SQL statement,
        with the addition of the a modifier if present.
        z#SELECT {distinct}{modifier}{select}ú	DISTINCT r9   z{} ú r§   c              3  ó8   •K  — | ]} |j         dd d dœ‰¤ŽV — ŒdS ©T)Ú
with_aliasÚsubqueryNr"   ©r�   ©r›   Útermr   s     €r%   r­   z0MySQLQueryBuilder._select_sql.<locals>.<genexpr>Á   ó=   øè è € ÐmÐmÐW[˜L˜DœLÐR°DÀ4ÐRÐRÈ6ÐRÐRÐmÐmÐmÐmÐmÐmr'   )Údistinctr³   Úselect)r«   Ú	_distinctrm   r¢   Ú_selectsr°   s    `r%   Ú_select_sqlzMySQLQueryBuilder._select_sql¹   s‚   ø€ ð
 5×;Ò;Ø$(¤NÐ:�[�[¸Ø@DÄÐW�U—\’\ #§(¢(¨4¬?Ñ";Ô";Ñ<Ô<Ð<ÐUWØ—8’8ÐmÐmÐmÐmÐ_cÔ_lÐmÑmÔmÑmÔmð <ñ 
ô 
ð 	
r'   rE   )r   rY   ©FFr"   )rv   rw   rx   rw   ry   rz   r   r:   )r‚   rƒ   r„   r   r   r:   rR   ©r   r   r   r]   ©r   r]   )r„   r]   r   r:   )r2   r3   r4   rF   rX   rI   r@   rs   r   r€   r‰   rŒ   r�   r¤   r�   r‘   r³   rÃ   rJ   rK   s   @r%   rY   rY   b   s\  ø€ € € € € Ø€JØ€Ið$ð $ð $ð $ð $ð $ðð ð ð ð ð ð ð&ð &ð &ð &ñ „Wð&ð ðEð Eð Eñ „WðEð ð'ð 'ð 'ñ „Wð'ðð ð ð ð ð ðð ð ð ð
ð 
ð 
ð 
ð*ð *ð *ð *ð ð&ð &ð &ñ „Wð&ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
r'   rY   c                  ór   — e Zd ZeZdd„Zedd„¦   «         Zedd	„¦   «         Zdd„Z	dd„Z
dd„Zdd„Zdd„ZdS )r^   r   r:   c                ó"   — d | _         d | _        d S r,   )Ú
_load_fileÚ_into_tabler‹   s    r%   r@   zMySQLLoadQueryBuilder.__init__È   s   € ØˆŒØˆÔÐÐr'   r\   r]   c                ó   — || _         d S r,   )rÉ   ©rC   r\   s     r%   r`   zMySQLLoadQueryBuilder.loadÌ   ó   € àˆŒˆˆr'   r(   r)   c                ó\   — t          |t          ¦  «        r|nt          |¦  «        | _        d S r,   )r‡   r   rÊ   ©rC   r(   s     r%   ÚintozMySQLLoadQueryBuilder.intoÐ   ó)   € å$.¨uµeÑ$<Ô$<ÐN˜5˜5Å%ÈÁ,Ä,ˆÔÐÐr'   Úargsr   r   c                ó†   — d}| j         r7| j        r0| | j        di |¤Žz  }| | j        di |¤Žz  }| | j        di |¤Žz  }|S ©Nr9   r"   )rÉ   rÊ   Ú_load_file_sqlÚ_into_table_sqlÚ_options_sql©rC   rÒ   r   r’   s       r%   r�   zMySQLLoadQueryBuilder.get_sqlÔ   s{   € ØˆØŒ?ð 	7˜tÔ/ð 	7ØÐ.˜4Ô.Ð8Ð8°Ð8Ð8Ñ8ˆKØÐ/˜4Ô/Ð9Ð9°&Ð9Ð9Ñ9ˆKØÐ,˜4Ô,Ð6Ð6¨vÐ6Ð6Ñ6ˆKàÐr'   c                ó6   — d                      | j        ¦  «        S )NzLOAD DATA LOCAL INFILE '{}')r«   rÉ   r°   s     r%   rÕ   z$MySQLLoadQueryBuilder._load_file_sqlÝ   s   € Ø,×3Ò3°D´OÑDÔDÐDr'   c                óL   — d                       | j        j        di |¤Ž¦  «        S )Nz INTO TABLE `{}`r"   )r«   rÊ   r�   r°   s     r%   rÖ   z%MySQLLoadQueryBuilder._into_table_sqlà   s-   € Ø!×(Ò(Ð)A¨Ô)9Ô)AÐ)KÐ)KÀFÐ)KÐ)KÑLÔLÐLr'   c                ó   — dS )Nz FIELDS TERMINATED BY ','r"   r°   s     r%   r×   z"MySQLLoadQueryBuilder._options_sqlã   s   € Ø*Ð*r'   c                ó*   — |                       ¦   «         S r,   r»   r‹   s    r%   Ú__str__zMySQLLoadQueryBuilder.__str__æ   ó   € Ø�|Š|‰~Œ~Ðr'   NrR   ©r\   r]   r   r:   ©r(   r)   r   r:   ©rÒ   r   r   r   r   r]   rÅ   rÆ   )r2   r3   r4   rX   rI   r@   r   r`   rÐ   r�   rÕ   rÖ   r×   rÝ   r"   r'   r%   r^   r^   Å   sÝ   € € € € € Ø€Ið ð  ð  ð  ð ðð ð ñ „Wðð ðOð Oð Oñ „WðOðð ð ð ðEð Eð Eð EðMð Mð Mð Mð+ð +ð +ð +ðð ð ð ð ð r'   r^   c                  ó   — e Zd ZdZdS )rb   rg   N©r2   r3   r4   rF   r"   r'   r%   rb   rb   ê   ó   € € € € € Ø€J€J€Jr'   rb   c                  ó   — e Zd ZdZdS )rd   rg   Nrã   r"   r'   r%   rd   rd   î   rä   r'   rd   c                  óZ   — e Zd ZdZedd„¦   «         Zedd„¦   «         Zedd„¦   «         ZdS )ÚVerticaQueryz5
    Defines a query class for use with Vertica.
    r   ÚVerticaQueryBuilderc                ó   — t          di |¤ŽS r!   )rè   r#   s     r%   r&   zVerticaQuery._builder÷   ó   € å"Ð,Ð, VÐ,Ð,Ð,r'   r\   r]   ÚVerticaCopyQueryBuilderc                óD   — t          ¦   «                              |¦  «        S r,   )rë   Ú	from_filera   s     r%   rí   zVerticaQuery.from_fileû   s   € å&Ñ(Ô(×2Ò2°2Ñ6Ô6Ð6r'   r(   r)   ÚVerticaCreateQueryBuilderc                óD   — t          ¦   «                              |¦  «        S r,   )rî   r-   r.   s     r%   r-   zVerticaQuery.create_tableÿ   s   € å(Ñ*Ô*×7Ò7¸Ñ>Ô>Ð>r'   N)r   rè   )r\   r]   r   rë   )r(   r)   r   rî   )r2   r3   r4   r5   r6   r&   rí   r-   r"   r'   r%   rç   rç   ò   s~   € € € € € ðð ð ð-ð -ð -ñ „[ð-ð ð7ð 7ð 7ñ „[ð7ð ð?ð ?ð ?ñ „[ð?ð ?ð ?r'   rç   c                  óH   ‡ — e Zd ZeZdˆ fd„Zedd„¦   «         Zdˆ fd
„Zˆ xZ	S )rè   r   r   r   r:   c                ó`   •—  t          ¦   «         j        ddt          j        i|¤Ž d | _        d S r<   )r?   r@   r   ÚVERTICAÚ_hintrB   s     €r%   r@   zVerticaQueryBuilder.__init__  s3   ø€ Ø�‰ŒÔÐ<Ð<¥Ô!1Ð<°VÐ<Ð<Ð<ØˆŒ
ˆ
ˆ
r'   Úlabelr]   c                ó   — || _         d S r,   )ró   )rC   rô   s     r%   ÚhintzVerticaQueryBuilder.hint  s   € àˆŒ
ˆ
ˆ
r'   rÒ   c                óÊ   •—  t          ¦   «         j        |i |¤Ž}| j        �Ad                     |d d…         d                     | j        ¬¦  «        |dd …         g¦  «        }|S )Nr9   é   z/*+label({hint})*/)rö   é   )r?   r�   ró   r¢   r«   )rC   rÒ   r   ÚsqlrD   s       €r%   r�   zVerticaQueryBuilder.get_sql  sk   ø€ Ø�e‰gŒgŒo˜tÐ. vÐ.Ð.ˆàŒ:Ð!Ø—'’'˜3˜r ˜rœ7Ð$8×$?Ò$?ÀTÄZÐ$?Ñ$PÔ$PÐRUÐVWÐVXÐVXÔRYÐZÑ[Ô[ˆCàˆ
r'   rE   )rô   r]   r   r:   rá   )
r2   r3   r4   rç   rI   r@   r   rö   r�   rJ   rK   s   @r%   rè   rè     s€   ø€ € € € € Ø€Iðð ð ð ð ð ð ðð ð ñ „Wððð ð ð ð ð ð ð ð ð r'   rè   c                  óx   ‡ — e Zd ZeZdˆ fd„Zedd„¦   «         Zedd„¦   «         Zdd	„Z	dˆ fd
„Z
dd„Zdd„Zˆ xZS )rî   r   r:   c                ó|   •— t          ¦   «                              t          j        ¬¦  «         d| _        d| _        d S )NrO   F)r?   r@   r   rò   Ú_localÚ_preserve_rowsrP   s    €r%   r@   z"VerticaCreateQueryBuilder.__init__  s6   ø€ Ý‰Œ×Ò¥Ô!1ÐÑ2Ô2Ð2ØˆŒØ#ˆÔÐÐr'   c                ó@   — | j         st          d¦  «        ‚d| _        d S ©Nz)'Query' object has no attribute temporaryT)Ú
_temporaryÚAttributeErrorrý   r‹   s    r%   ÚlocalzVerticaCreateQueryBuilder.local   s'   € àŒð 	NÝ Ð!LÑMÔMÐMàˆŒˆˆr'   c                ó@   — | j         st          d¦  «        ‚d| _        d S r   )r  r  rþ   r‹   s    r%   Úpreserve_rowsz'VerticaCreateQueryBuilder.preserve_rows'  s*   € àŒð 	NÝ Ð!LÑMÔMÐMà"ˆÔÐÐr'   r   r   r]   c           	     óv   — d                      | j        rdnd| j        rdnd | j        j        di |¤Ž¬¦  «        S )Nz&CREATE {local}{temporary}TABLE {table}zLOCAL r9   z
TEMPORARY )r  Ú	temporaryr(   r"   )r«   rý   r  Ú_create_tabler�   r°   s     r%   Ú_create_table_sqlz+VerticaCreateQueryBuilder._create_table_sql.  sT   € Ø7×>Ò>Ø"œkÐ1�(�(¨rØ&*¤oÐ=�l�l¸2Ø,�$Ô$Ô,Ð6Ð6¨vÐ6Ð6ð ?ñ 
ô 
ð 	
r'   c                óh   •—  t          ¦   «         j        di |¤Ž}||                      ¦   «         z  }|S r!   )r?   Ú_table_options_sqlÚ_preserve_rows_sql)rC   r   Útable_optionsrD   s      €r%   r  z,VerticaCreateQueryBuilder._table_options_sql5  s;   ø€ Ø2�™œÔ2Ð<Ð<°VÐ<Ð<ˆØ˜×0Ò0Ñ2Ô2Ñ2ˆØÐr'   c                ót   — d                      |                      ¦   «          | j        j        di |¤Ž¬¦  «        S )Nz{preserve_rows} AS ({query}))r  Úqueryr"   )r«   r  Ú
_as_selectr�   r°   s     r%   Ú_as_select_sqlz(VerticaCreateQueryBuilder._as_select_sql:  sF   € Ø-×4Ò4Ø×1Ò1Ñ3Ô3Ø)�$”/Ô)Ð3Ð3¨FÐ3Ð3ð 5ñ 
ô 
ð 	
r'   c                ó   — | j         rdndS )Nz ON COMMIT PRESERVE ROWSr9   )rþ   r‹   s    r%   r  z,VerticaCreateQueryBuilder._preserve_rows_sql@  s   € Ø-1Ô-@ÐHÐ)Ð)ÀbÐHr'   rR   rÅ   rÆ   )r2   r3   r4   rç   rI   r@   r   r  r  r	  r  r  r  rJ   rK   s   @r%   rî   rî     sä   ø€ € € € € Ø€Ið$ð $ð $ð $ð $ð $ð
 ðð ð ñ „Wðð ð#ð #ð #ñ „Wð#ð
ð 
ð 
ð 
ðð ð ð ð ð ð

ð 
ð 
ð 
ðIð Ið Ið Ið Ið Ið Ið Ir'   rî   c                  ór   — e Zd ZeZdd„Zedd„¦   «         Zedd	„¦   «         Zdd„Z	dd„Z
dd„Zdd„Zdd„ZdS )rë   r   r:   c                ó"   — d | _         d | _        d S r,   )Ú_copy_tableÚ
_from_filer‹   s    r%   r@   z VerticaCopyQueryBuilder.__init__G  s   € ØˆÔØˆŒˆˆr'   r\   r]   c                ó   — || _         d S r,   )r  rÌ   s     r%   rí   z!VerticaCopyQueryBuilder.from_fileK  rÍ   r'   r(   r)   c                ó\   — t          |t          ¦  «        r|nt          |¦  «        | _        d S r,   )r‡   r   r  rÏ   s     r%   Úcopy_zVerticaCopyQueryBuilder.copy_O  rÑ   r'   rÒ   r   r   c                ó†   — d}| j         r7| j        r0| | j        di |¤Žz  }| | j        di |¤Žz  }| | j        di |¤Žz  }|S rÔ   )r  r  Ú_copy_table_sqlÚ_from_file_sqlr×   rØ   s       r%   r�   zVerticaCopyQueryBuilder.get_sqlS  s{   € ØˆØÔð 	7 ¤ð 	7ØÐ/˜4Ô/Ð9Ð9°&Ð9Ð9Ñ9ˆKØÐ.˜4Ô.Ð8Ð8°Ð8Ð8Ñ8ˆKØÐ,˜4Ô,Ð6Ð6¨vÐ6Ð6Ñ6ˆKàÐr'   c                óL   — d                       | j        j        di |¤Ž¦  «        S )Nz	COPY "{}"r"   )r«   r  r�   r°   s     r%   r  z'VerticaCopyQueryBuilder._copy_table_sql\  s-   € Ø×!Ò!Ð": $Ô"2Ô":Ð"DÐ"D¸VÐ"DÐ"DÑEÔEÐEr'   c                ó6   — d                      | j        ¦  «        S )Nz FROM LOCAL '{}')r«   r  r°   s     r%   r  z&VerticaCopyQueryBuilder._from_file_sql_  s   € Ø!×(Ò(¨¬Ñ9Ô9Ð9r'   c                ó   — dS )Nz  PARSER fcsvparser(header=false)r"   r°   s     r%   r×   z$VerticaCopyQueryBuilder._options_sqlb  s   € Ø1Ð1r'   c                ó*   — |                       ¦   «         S r,   r»   r‹   s    r%   rÝ   zVerticaCopyQueryBuilder.__str__e  rÞ   r'   NrR   rß   rà   rá   rÅ   rÆ   )r2   r3   r4   rç   rI   r@   r   rí   r  r�   r  r  r×   rÝ   r"   r'   r%   rë   rë   D  sÙ   € € € € € Ø€Iðð ð ð ð ðð ð ñ „Wðð ðOð Oð Oñ „WðOðð ð ð ðFð Fð Fð Fð:ð :ð :ð :ð2ð 2ð 2ð 2ðð ð ð ð ð r'   rë   c                  ó6   — e Zd Zd
d„Zd
d„Zedd„¦   «         Zd	S )Ú"FetchNextAndOffsetRowsQueryBuilderr   r]   c                ó8   — d                      | j        ¬¦  «        S )Nz FETCH NEXT {limit} ROWS ONLY)Úlimit)r«   Ú_limitr‹   s    r%   Ú
_limit_sqlz-FetchNextAndOffsetRowsQueryBuilder._limit_sqlj  s   € Ø.×5Ò5¸D¼KÐ5ÑHÔHÐHr'   c                ó<   — d                      | j        pd¬¦  «        S )Nz OFFSET {offset} ROWSr   )Úoffset)r«   Ú_offsetr‹   s    r%   Ú_offset_sqlz.FetchNextAndOffsetRowsQueryBuilder._offset_sqlm  s    € Ø&×-Ò-°T´\Ð5FÀQÐ-ÑGÔGÐGr'   r$  Úintr:   c                óH   — t          j        dt          ¦  «         || _        d S )Nz:`fetch_next` is deprecated - please use the `limit` method)ÚwarningsÚwarnÚDeprecationWarningr%  )rC   r$  s     r%   Ú
fetch_nextz-FetchNextAndOffsetRowsQueryBuilder.fetch_nextp  s!   € åŒÐRÕTfÑgÔgÐgØˆŒˆˆr'   NrÆ   )r$  r+  r   r:   )r2   r3   r4   r&  r*  r   r0  r"   r'   r%   r"  r"  i  sd   € € € € € ðIð Ið Ið IðHð Hð Hð Hð ðð ð ñ „Wðð ð r'   r"  c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	ÚOracleQueryz4
    Defines a query class for use with Oracle.
    r   r   r   ÚOracleQueryBuilderc                ó   — t          di |¤ŽS r!   )r3  r#   s     r%   r&   zOracleQuery._builder{  s   € å!Ð+Ð+ FÐ+Ð+Ð+r'   N)r   r   r   r3  ©r2   r3   r4   r5   r6   r&   r"   r'   r%   r2  r2  v  s>   € € € € € ðð ð ð,ð ,ð ,ñ „[ð,ð ,ð ,r'   r2  c                  ó<   ‡ — e Zd ZdZeZdˆ fd„Zdˆ fd	„Zdd„Zˆ xZ	S )r3  Nr   r   r   r:   c                óR   •—  t          ¦   «         j        ddt          j        i|¤Ž d S r<   )r?   r@   r   ÚORACLErB   s     €r%   r@   zOracleQueryBuilder.__init__„  s-   ø€ Ø�‰ŒÔÐ;Ð;¥¤Ð;°FÐ;Ð;Ð;Ð;Ð;r'   rÒ   r]   c                ó@   •— d|d<    t          ¦   «         j        |i |¤ŽS ©NFÚgroupby_alias©r?   r�   ©rC   rÒ   r   rD   s      €r%   r�   zOracleQueryBuilder.get_sql‡  ó*   ø€ ð #(ˆˆÑØ�u‰wŒwŒ Ð/¨Ð/Ð/Ð/r'   r’   c                ó~   — | j         r||                      ¦   «         z  }| j        �||                      ¦   «         z  }|S r,   )r)  r*  r%  r&  ©rC   r’   r   s      r%   Ú_apply_paginationz$OracleQueryBuilder._apply_pagination�  sD   € àŒ<ð 	.Ø˜4×+Ò+Ñ-Ô-Ñ-ˆKàŒ;Ð"Ø˜4Ÿ?š?Ñ,Ô,Ñ,ˆKàÐr'   rE   rá   ©r’   r]   r   r]   )
r2   r3   r4   rF   r2  rI   r@   r�   rA  rJ   rK   s   @r%   r3  r3  €  sy   ø€ € € € € Ø€JØ€Ið<ð <ð <ð <ð <ð <ð0ð 0ð 0ð 0ð 0ð 0ðð ð ð ð ð ð ð r'   r3  c                  ó*   — e Zd ZdZedd„¦   «         ZdS )ÚPostgreSQLQueryz8
    Defines a query class for use with PostgreSQL.
    r   ÚPostgreSQLQueryBuilderc                ó   — t          di |¤ŽS r!   )rE  r#   s     r%   r&   zPostgreSQLQuery._builder�  s   € å%Ð/Ð/¨Ð/Ð/Ð/r'   N©r   rE  r5  r"   r'   r%   rD  rD  ˜  s>   € € € € € ðð ð ð0ð 0ð 0ñ „[ð0ð 0ð 0r'   rD  c                  óf  ‡ — e Zd ZdZeZd8ˆ fd„Zd9ˆ fd„Zed:d
„¦   «         Z	ed;d<d„¦   «         Z
ed=d„¦   «         Zed>d„¦   «         Zed?d@d„¦   «         ZedAˆ fd„¦   «         ZedBd"„¦   «         ZdCˆ fd$„ZdDd'„ZdCd(„ZdEd)„ZdCd*„ZedFd,„¦   «         ZdGd.„Zd>d/„ZdHd0„ZdHd1„ZdId3„ZdCd4„ZdJdKˆ fd7„Zˆ xZS )LrE  r8   r   r   r   r:   c                ó  •—  t          ¦   «         j        ddt          j        i|¤Ž g | _        d| _        d| _        g | _        d| _        g | _	        d | _
        d | _        g | _        d| _        d| _        t          ¦   «         | _        d S ri   )r?   r@   r   Ú
POSTGRESQLÚ_returnsÚ_return_starÚ_on_conflictÚ_on_conflict_fieldsÚ_on_conflict_do_nothingÚ_on_conflict_do_updatesÚ_on_conflict_wheresÚ_on_conflict_do_update_wheresÚ_distinct_onrn   ro   rp   rq   rB   s     €r%   r@   zPostgreSQLQueryBuilder.__init__¦  s‘   ø€ Ø�‰ŒÔÐ?Ð?¥Ô!4Ð?¸Ð?Ð?Ð?ØˆŒØ!ˆÔà!ˆÔØ#%ˆÔ Ø',ˆÔ$Ø')ˆÔ$Ø#'ˆÔ Ø-1ˆÔ*àˆÔà"'ˆÔØ',ˆÔ$Ý!™eœeˆÔÐÐr'   c                ó¬   •— t          ¦   «                              ¦   «         }t          | j        ¦  «        |_        t          | j        ¦  «        |_        |S r,   )r?   rs   r   rK  rP  rt   s     €r%   rs   zPostgreSQLQueryBuilder.__copy__¸  sA   ø€ Ý‘”×!Ò!Ñ#Ô#ˆÝ˜tœ}Ñ-Ô-ˆŒÝ)-¨dÔ.JÑ)KÔ)KˆÔ&Øˆr'   Úfieldsú
str | Termc                óè   — |D ]n}t          |t          ¦  «        r(| j                             t	          |¦  «        ¦  «         Œ?t          |t
          ¦  «        r| j                             |¦  «         Œod S r,   ©r‡   r]   rS  rˆ   r   r   ©rC   rU  r‚   s      r%   Údistinct_onz"PostgreSQLQueryBuilder.distinct_on¾  ów   € àð 	0ð 	0ˆEÝ˜%¥Ñ%Ô%ð 0ØÔ!×(Ò(­¨u©¬Ñ6Ô6Ð6Ð6Ý˜E¥4Ñ(Ô(ð 0ØÔ!×(Ò(¨Ñ/Ô/Ð/øð		0ð 	0r'   Fr"   rv   rw   rx   ry   rz   r   c                óX   — d| _         || _        || _        t          |¦  «        | _        d S r|   r}   r   s       r%   r€   z!PostgreSQLQueryBuilder.for_updateÆ  r�   r'   Útarget_fieldsc                ó.  — | j         st          d¦  «        ‚d| _        |D ]t}t          |t          ¦  «        r.| j                             |                      |¦  «        ¦  «         ŒEt          |t          ¦  «        r| j                             |¦  «         Œud S )Nz(On conflict only applies to insert queryT)	Ú_insert_tabler   rM  r‡   r]   rN  rˆ   Ú_conflict_field_strr   )rC   r]  Útarget_fields      r%   Úon_conflictz"PostgreSQLQueryBuilder.on_conflictÍ  s¢   € àÔ!ð 	MÝ Ð!KÑLÔLÐLà ˆÔà)ð 	>ð 	>ˆLÝ˜,­Ñ,Ô,ð >ØÔ(×/Ò/°×0HÒ0HÈÑ0VÔ0VÑWÔWÐWÐWÝ˜L­$Ñ/Ô/ð >ØÔ(×/Ò/°Ñ=Ô=Ð=øð		>ð 	>r'   c                ób   — t          | j        ¦  «        dk    rt          d¦  «        ‚d| _        d S )Nr   r†   T)ÚlenrP  r   rO  r‹   s    r%   Ú
do_nothingz!PostgreSQLQueryBuilder.do_nothingÚ  s5   € åˆtÔ+Ñ,Ô,¨qÒ0Ð0Ý Ð!EÑFÔFÐFØ'+ˆÔ$Ð$Ð$r'   NÚupdate_fieldústr | FieldÚupdate_valueú
Any | Nonec                óh  — | j         rt          d¦  «        ‚t          |t          ¦  «        r|                      |¦  «        }n't          |t
          ¦  «        r|}nt          d¦  «        ‚|�+| j                             |t          |¦  «        f¦  «         d S | j                             |d f¦  «         d S )Nr†   zUnsupported update_field)	rO  r   r‡   r]   r`  r   rP  rˆ   r   )rC   rf  rh  r‚   s       r%   Ú	do_updatez PostgreSQLQueryBuilder.do_updateà  s½   € àÔ'ð 	GÝ Ð!EÑFÔFÐFå�l¥CÑ(Ô(ð 	=Ø×,Ò,¨\Ñ:Ô:ˆEˆEÝ˜¥eÑ,Ô,ð 	=Ø ˆEˆEå Ð!;Ñ<Ô<Ð<àÐ#ØÔ(×/Ò/°½À\Ñ8RÔ8RÐ0SÑTÔTÐTÐTÐTàÔ(×/Ò/°¸°Ñ>Ô>Ð>Ð>Ð>r'   Ú	criterionr   c                ó~  •— | j         s!t          ¦   «                              |¦  «        S t          |t          ¦  «        rd S | j        rt          d¦  «        ‚| j        r)| j        r"| j	        r| xj	        |z  c_	        d S || _	        d S | j        r"| j
        r| xj
        |z  c_
        d S || _
        d S t          d¦  «        ‚)Nz"DO NOTHING doest not support WHEREz(Can not have fieldless ON CONFLICT WHERE)rM  r?   Úwherer‡   r   rO  r   rN  rP  rR  rQ  )rC   rl  rD   s     €r%   rn  zPostgreSQLQueryBuilder.whereñ  sî   ø€ àÔ ð 	,Ý‘7”7—=’= Ñ+Ô+Ð+å�i¥Ñ0Ô0ð 	ØˆFàÔ'ð 	GÝ Ð!EÑFÔFÐFàÔ#ð 	M¨Ô(Dð 	MØÔ1ð ?ØÐ2Ô2°iÑ?Ð2Ô2Ð2Ð2à5>�Ô2Ð2Ð2ØÔ%ð 	MØÔ'ð 5ØÐ(Ô(¨IÑ5Ð(Ô(Ð(Ð(à+4�Ô(Ð(Ð(å Ð!KÑLÔLÐLr'   r(   úSelectable | strc                ó:   — | j                              |¦  «         d S r,   )Ú_usingrˆ   rÏ   s     r%   ÚusingzPostgreSQLQueryBuilder.using	  s   € àŒ×Ò˜5Ñ!Ô!Ð!Ð!Ð!r'   r]   c                óº   •‡— | j         r:d                     d                     ˆfd„| j         D ¦   «         ¦  «        ¬¦  «        S  t          ¦   «         j        di ‰¤ŽS )NúDISTINCT ON({distinct_on}) r§   c              3  ó6   •K  — | ]} |j         dd di‰¤ŽV — ŒdS ©r¹   TNr"   r»   r¼   s     €r%   r­   z7PostgreSQLQueryBuilder._distinct_sql.<locals>.<genexpr>  ó;   øè è € Ð$kÐ$kÐQU \ T¤\Ð%LÐ%L¸TÐ%LÀVÐ%LÐ%LÐ$kÐ$kÐ$kÐ$kÐ$kÐ$kr'   ©rZ  r"   ©rS  r«   r¢   r?   Ú_distinct_sqlrB   s    `€r%   rz  z$PostgreSQLQueryBuilder._distinct_sql  ós   øø€ ØÔð 	Ø0×7Ò7ØŸHšHÐ$kÐ$kÐ$kÐ$kÐY]ÔYjÐ$kÑ$kÔ$kÑkÔkð 8ñ ô ð ð %�u‰wŒwÔ$Ð.Ð. vÐ.Ð.Ð.r'   r½   úField | Nonec                ó@   — | j         rt          || j         ¬¦  «        S d S ©N©r(   )r_  r   ©rC   r½   s     r%   r`  z*PostgreSQLQueryBuilder._conflict_field_str  s-   € ØÔð 	9Ý˜ TÔ%7Ð8Ñ8Ô8Ð8ð	9ð 	9r'   c                óˆ  ‡— | j         s0t          | j        ¦  «        dk    r| j        sdS t	          d¦  «        ‚| j        r| j        st	          d¦  «        ‚d}| j        r1ˆfd„| j        D ¦   «         }|dd                     |¦  «        z   d	z   z  }| j        r+|d
                      | j        j        dddi‰¤Ž¬¦  «        z  }|S )Nr   r9   z"No handler defined for on conflictz,Can not have fieldless on conflict do updatez ON CONFLICTc                ó.   •— g | ]} |j         dd di‰¤Ž‘ŒS )r¹   Tr"   r»   )r›   Úfr   s     €r%   r�   z;PostgreSQLQueryBuilder._on_conflict_sql.<locals>.<listcomp>#  s0   ø€ Ð]Ð]Ð]¸q�i�a”iÐ:Ð:¨4Ð:°6Ð:Ð:Ð]Ð]Ð]r'   z (r–   ú)ú WHERE {where}rº   T©rn  r"   )	rO  rd  rP  rN  r   r¢   rQ  r«   r�   )rC   r   Úconflict_queryrU  s    `  r%   Ú_on_conflict_sqlz'PostgreSQLQueryBuilder._on_conflict_sql  s  ø€ ØÔ+ð 	Gµ°DÔ4PÑ0QÔ0QÐUVÒ0VÐ0VØÔ+ð Ø�rÝ Ð!EÑFÔFÐFàÔ'ð 	Q°Ô0Hð 	QÝ Ð!OÑPÔPÐPà'ˆØÔ#ð 	=Ø]Ð]Ð]Ð]ÀDÔD\Ð]Ñ]Ô]ˆFØ˜d T§Y¢Y¨vÑ%6Ô%6Ñ6¸Ñ<Ñ<ˆNàÔ#ð 	wØÐ.×5Ò5Ð<\¸DÔ<TÔ<\Ð<uÐ<uÐfjÐ<uÐntÐ<uÐ<uÐ5ÑvÔvÑvˆNàÐr'   c                ó¸   ‡— | j         rOd}| j        r,|dd                     ˆfd„| j        D ¦   «         ¦  «        › �z  }| j        r|dz  }n| j        r|dz  }nd}|S )Nr”   r•   r–   c                óD   •— g | ]} t          |¦  «        j        d i ‰¤Ž‘ŒS r˜   r™   rš   s     €r%   r�   z:PostgreSQLQueryBuilder._for_update_sql.<locals>.<listcomp>/  rž   r'   rŸ   r    r9   r¡   r£   s    ` r%   r¤   z&PostgreSQLQueryBuilder._for_update_sql+  r¥   r'   c                ó,  — | j         rdS t          | j        ¦  «        dk    ròg }| j        D ]Š\  }}|rC|                     d                      |j        di |¤Ž |j        dddi|¤Ž¬¦  «        ¦  «         ŒJ|                     d                      |j        di |¤Ž |j        di |¤Ž¬¦  «        ¦  «         Œ‹d                     d	                     |¦  «        ¬
¦  «        }| j        r,|d                      | j        j        ddddœ|¤Ž¬¦  «        z  }|S dS )Nz DO NOTHINGr   r©   Úwith_namespaceTrª   z{field}=EXCLUDED.{value}z DO UPDATE SET {updates}r§   r®   r…  )rº   rŒ  r†  r9   r"   )rO  rd  rP  rˆ   r«   r�   r¢   rR  )rC   r   r¯   r‚   r„   Ú
action_sqls         r%   Ú_on_conflict_action_sqlz.PostgreSQLQueryBuilder._on_conflict_action_sql9  sŒ  € ØÔ'ð 	Ø �=Ý�Ô-Ñ.Ô.°Ò2Ð2ØˆGØ $Ô <ð ð ‘��uØð Ø—N’NØ)×0Ò0Ø"/ %¤-Ð"9Ð"9°&Ð"9Ð"9Ø"/ %¤-Ð"NÐ"N¸tÐ"NÀvÐ"NÐ"Nð 1ñ ô ñô ð ð ð —N’NØ2×9Ò9Ø"/ %¤-Ð"9Ð"9°&Ð"9Ð"9Ø"/ %¤-Ð"9Ð"9°&Ð"9Ð"9ð :ñ ô ñô ð ð ð 4×:Ò:À3Ç8Â8ÈGÑCTÔCTÐ:ÑUÔUˆJàÔ1ð ØÐ.×5Ò5ØD˜$Ô<ÔDÐrÈdÐcgÐrÐrÐkqÐrÐrð 6ñ ô ñ �
ð Ðàˆrr'   Útermsc                ó¨  — |D ]Î}t          |t          ¦  «        r|                      |¦  «         Œ-t          |t          ¦  «        r|                      |¦  «         ŒXt          |t
          t          f¦  «        r,|j        rt          d¦  «        ‚|  	                    |¦  «         Œ |  	                    |  
                    || j        ¦  «        ¦  «         ŒÏd S )Nz0Aggregate functions are not allowed in returning)r‡   r   Ú_return_fieldr]   Ú_return_field_strr   r   Úis_aggregater   Ú_return_otherÚwrap_constantÚ_wrapper_cls)rC   r�  r½   s      r%   Ú	returningz PostgreSQLQueryBuilder.returningW  sè   € àð 
	Pð 
	PˆDÝ˜$¥Ñ&Ô&ð 	PØ×"Ò" 4Ñ(Ô(Ð(Ð(Ý˜D¥#Ñ&Ô&ð PØ×&Ò& tÑ,Ô,Ð,Ð,Ý˜D¥8Õ-AÐ"BÑCÔCð PØÔ$ð ]Ý(Ð)[Ñ\Ô\Ð\Ø×"Ò" 4Ñ(Ô(Ð(Ð(à×"Ò" 4×#5Ò#5°d¸DÔ<MÑ#NÔ#NÑOÔOÐOÐOð
	Pð 
	Pr'   r   c                ó¶  — |                      ¦   «         D ]Ã}t          | j        | j        | j        g¦  «        st          d¦  «        ‚|j        | j        | j        hv }t          t          j	         
                    d„ | j        D ¦   «         ¦  «        ¦  «        }t          | j        ¦  «        |z  }t          |j        |z
  ¦  «        }|s|rt          d¦  «        ‚ŒÄd S )Nú%Returning can't be used in this queryc                ó&   — g | ]}|j         j        ‘ŒS r"   )rl  Útables_)r›   Újs     r%   r�   zCPostgreSQLQueryBuilder._validate_returning_term.<locals>.<listcomp>k  s   € Ð<fÐ<fÐ<fÐUV¸Q¼[Ô=PÐ<fÐ<fÐ<fr'   z"You can't return from other tables)Úfields_Úanyr_  Ú_update_tableÚ_delete_fromr   r(   rp   Ú	itertoolsÚchainÚfrom_iterableÚ_joinsÚ_fromrw   r›  )rC   r½   r‚   Útable_is_insert_or_update_tableÚjoin_tablesÚjoin_and_base_tablesÚtable_not_base_or_joins          r%   Ú_validate_returning_termz/PostgreSQLQueryBuilder._validate_returning_terme  së   € Ø—\’\‘^”^ð 		Kð 		KˆEÝ˜Ô*¨DÔ,>ÀÔ@QÐRÑSÔSð NÝ$Ð%LÑMÔMÐMà.3¬k¸dÔ>PÐRVÔRdÐ=eÐ.eÐ+Ý�iœo×;Ò;Ð<fÐ<fÐZ^ÔZeÐ<fÑ<fÔ<fÑgÔgÑhÔhˆKÝ#& t¤z¡?¤?°[Ñ#@Ð Ý%)¨$¬,Ð9MÑ*MÑ%NÔ%NÐ"Ø2ð KÐ7Mð KÝ$Ð%IÑJÔJÐJøð		Kð 		Kr'   c                ó@   — d„ | j         D ¦   «         | _         d| _        d S )Nc                ó2   — g | ]}t          |d ¦  «        °|‘ŒS r  )Úhasattr)r›   r—  s     r%   r�   z@PostgreSQLQueryBuilder._set_returns_for_star.<locals>.<listcomp>r  s)   € ÐeÐeÐe yÍÐQZÐ\cÑIdÔIdÐe˜ÐeÐeÐer'   T)rK  rL  r‹   s    r%   Ú_set_returns_for_starz,PostgreSQLQueryBuilder._set_returns_for_starq  s'   € ØeÐe°D´MÐeÑeÔeˆŒØ ˆÔÐÐr'   c                óÈ   — | j         rd S |                      |¦  «         t          |t          ¦  «        r|                      ¦   «          | j                             |¦  «         d S r,   )rL  rª  r‡   r   r®  rK  rˆ   r€  s     r%   r‘  z$PostgreSQLQueryBuilder._return_fieldu  sf   € ØÔð 	àˆFà×%Ò% dÑ+Ô+Ð+å�d�DÑ!Ô!ð 	)Ø×&Ò&Ñ(Ô(Ð(àŒ×Ò˜TÑ"Ô"Ð"Ð"Ð"r'   c                óÜ  — |dk    r<|                       ¦   «          | j                             t          ¦   «         ¦  «         d S | j        r+|                      t          || j        ¬¦  «        ¦  «         d S | j        r+|                      t          || j        ¬¦  «        ¦  «         d S | j        r1|                      t          || j	        d         ¬¦  «        ¦  «         d S t          d¦  «        ‚)NÚ*r  r   r™  )r®  rK  rˆ   r   r_  r‘  r   rŸ  r   r¥  r   r€  s     r%   r’  z(PostgreSQLQueryBuilder._return_field_str�  sð   € Ø�3Š;ˆ;Ø×&Ò&Ñ(Ô(Ð(ØŒM× Ò ¥¡¤Ñ(Ô(Ð(ØˆFàÔð 	JØ×Ò�u T°Ô1CÐDÑDÔDÑEÔEÐEÐEÐEØÔð 	JØ×Ò�u T°Ô1CÐDÑDÔDÑEÔEÐEÐEÐEØÔð 	JØ×Ò�u T°´¸A´Ð?Ñ?Ô?Ñ@Ô@Ð@Ð@Ð@å Ð!HÑIÔIÐIr'   Úfunctionc                ód   — |                       |¦  «         | j                             |¦  «         d S r,   )rª  rK  rˆ   )rC   r²  s     r%   r”  z$PostgreSQLQueryBuilder._return_other�  s2   € Ø×%Ò% hÑ/Ô/Ð/ØŒ×Ò˜XÑ&Ô&Ð&Ð&Ð&r'   c                óx   ‡— d                      d                     ˆfd„| j        D ¦   «         ¦  «        ¬¦  «        S )Nz RETURNING {returning}r§   c              3  ó6   •K  — | ]} |j         dd di‰¤ŽV — ŒdS rv  r»   r¼   s     €r%   r­   z8PostgreSQLQueryBuilder._returning_sql.<locals>.<genexpr>–  s:   øè è € ÐaÐaÈ4˜|˜tœ|ÐFÐF°tÐF¸vÐFÐFÐaÐaÐaÐaÐaÐar'   )r—  )r«   r¢   rK  r°   s    `r%   Ú_returning_sqlz%PostgreSQLQueryBuilder._returning_sql”  sH   ø€ Ø'×.Ò.Ø—h’hÐaÐaÐaÐaÐSWÔS`ÐaÑaÔaÑaÔað /ñ 
ô 
ð 	
r'   r¹   rº   c                óø   •— |                       |¦  «          t          ¦   «         j        ||fi |¤Ž}| | j        di |¤Žz  }| | j        di |¤Žz  }| j        r!| j        o| j        |d<   | | j        di |¤Žz  }|S )NrŒ  r"   )	rŽ   r?   r�   rˆ  rŽ  rK  rŸ  Úfrom_r¶  )rC   r¹   rº   r   r’   rD   s        €r%   r�   zPostgreSQLQueryBuilder.get_sql™  sµ   ø€ Ø×!Ò! &Ñ)Ô)Ð)à%•e‘g”g”o j°(ÐEÐE¸fÐEÐEˆàÐ,�tÔ,Ð6Ð6¨vÐ6Ð6Ñ6ˆØÐ3�tÔ3Ð=Ð=°fÐ=Ð=Ñ=ˆàŒ=ð 	9Ø'+Ô'9Ð'H¸d¼jˆFÐ#Ñ$ØÐ.˜4Ô.Ð8Ð8°Ð8Ð8Ñ8ˆKØÐr'   rE   rG  ©rU  rV  r   r:   rÄ   )rv   rw   rx   rw   ry   rz   r   r   )r]  rV  r   r:   rR   r,   )rf  rg  rh  ri  r   r:   )rl  r   r   r:   )r(   ro  r   r:   rÅ   )r½   r]   r   r|  rÆ   ©r�  r   r   r:   )r½   r   r   r:   )r½   rg  r   r:   )r²  r   r   r:   ©FF)r¹   rw   rº   rw   r   r   r   r]   )r2   r3   r4   rG   rD  rI   r@   rs   r   rZ  r€   rb  re  rk  rn  rr  rz  r`  rˆ  r¤   rŽ  r—  rª  r®  r‘  r’  r”  r¶  r�   rJ   rK   s   @r%   rE  rE  ¢  s•  ø€ € € € € ØÐØ€Ið$ð $ð $ð $ð $ð $ð$ð ð ð ð ð ð ð0ð 0ð 0ñ „Wð0ð ð&ð &ð &ð &ñ „Wð&ð ð
>ð 
>ð 
>ñ „Wð
>ð ð,ð ,ð ,ñ „Wð,ð
 ð?ð ?ð ?ð ?ñ „Wð?ð  ðMð Mð Mð Mð Mñ „WðMð. ð"ð "ð "ñ „Wð"ð/ð /ð /ð /ð /ð /ð9ð 9ð 9ð 9ðð ð ð ð&ð ð ð ðð ð ð ð< ðPð Pð Pñ „WðPð
Kð 
Kð 
Kð 
Kð!ð !ð !ð !ð
#ð 
#ð 
#ð 
#ðJð Jð Jð Jð'ð 'ð 'ð 'ð
ð 
ð 
ð 
ð
ð ð ð ð ð ð ð ð ð ð r'   rE  c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	ÚRedshiftQueryz=
    Defines a query class for use with Amazon Redshift.
    r   r   r   ÚRedShiftQueryBuilderc                ó2   — t          ddt          j        i|¤ŽS r<   )r¾  r   ÚREDSHIFTr#   s     r%   r&   zRedshiftQuery._builder¬  s   € å#ÐHÐH­HÔ,=ÐHÀÐHÐHÐHr'   N)r   r   r   r¾  r5  r"   r'   r%   r½  r½  §  sD   € € € € € ðð ð ðIð Ið Iñ „[ðIð Ið Ir'   r½  c                  ó   — e Zd ZeZdS )r¾  N)r2   r3   r4   r½  rI   r"   r'   r%   r¾  r¾  ±  s   € € € € € Ø€I€I€Ir'   r¾  c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	Ú
MSSQLQueryúB
    Defines a query class for use with Microsoft SQL Server.
    r   r   r   ÚMSSQLQueryBuilderc                ó   — t          di |¤ŽS r!   )rÅ  r#   s     r%   r&   zMSSQLQuery._builderº  r[   r'   N)r   r   r   rÅ  r5  r"   r'   r%   rÃ  rÃ  µ  s>   € € € € € ðð ð ð+ð +ð +ñ „[ð+ð +ð +r'   rÃ  c                  ób   ‡ — e Zd ZeZdˆ fd„Zeddd„¦   «         Zdd„Zdˆ fd„Z	dd„Z
dd„Zˆ xZS )rÅ  r   r   r   r:   c                ó|   •—  t          ¦   «         j        ddt          j        i|¤Ž d | _        d| _        d| _        d S ri   )r?   r@   r   ÚMSSQLÚ_topÚ_top_with_tiesÚ_top_percentrB   s     €r%   r@   zMSSQLQueryBuilder.__init__Â  sD   ø€ Ø�‰ŒÔÐ:Ð:¥¤Ð:°6Ð:Ð:Ð:Ø $ˆŒ	Ø$)ˆÔØ"'ˆÔÐÐr'   Fr„   ú	str | intÚpercentrw   Ú	with_tiesc                óâ   — 	 t          |¦  «        | _        n# t          $ r t          d¦  «        ‚w xY w|r+dt          |¦  «        cxk    rdk    sn t          d¦  «        ‚|| _        || _        dS )z�
        Implements support for simple TOP clauses.
        https://docs.microsoft.com/en-us/sql/t-sql/queries/top-transact-sql?view=sql-server-2017
        zTOP value must be an integerr   éd   z?TOP value must be between 0 and 100 when `percent` is specifiedN)r+  rÊ  Ú
ValueErrorr   rÌ  rË  )rC   r„   rÎ  rÏ  s       r%   ÚtopzMSSQLQueryBuilder.topÈ  s™   € ð	AÝ˜E™
œ
ˆDŒIˆIøÝð 	Að 	Að 	AÝ Ð!?Ñ@Ô@Ð@ð	Aøøøð ð 	g˜A¥ U¡¤Ð2Ð2Ò2Ð2¨sÒ2Ð2Ð2Ð2Ý Ð!eÑfÔfÐfØ")ˆÔØ$-ˆÔÐÐs   ‚ —1r’   r]   c                óŒ   — | j         €| j        r||                      ¦   «         z  }| j         �||                      ¦   «         z  }|S r,   )r%  r)  r*  r&  r@  s      r%   rA  z#MSSQLQueryBuilder._apply_paginationØ  sI   € àŒ;Ð" d¤lÐ"à˜4×+Ò+Ñ-Ô-Ñ-ˆKàŒ;Ð"Ø˜4Ÿ?š?Ñ,Ô,Ñ,ˆKàÐr'   rÒ   c                ó@   •— d|d<    t          ¦   «         j        |i |¤ŽS r:  r<  r=  s      €r%   r�   zMSSQLQueryBuilder.get_sqlã  r>  r'   c                ó^   — d}| j         r#d| j         › d�}| j        r|› d�}| j        r|› d�}|S )Nr9   zTOP (z) zPERCENT z
WITH TIES )rÊ  rÌ  rË  )rC   Ú_top_statements     r%   Ú_top_sqlzMSSQLQueryBuilder._top_sqlé  s[   € Ø ˆØŒ9ð 	?Ø2 T¤YÐ2Ð2Ð2ˆNØÔ ð =Ø$2Ð!<Ð!<Ð!<�ØÔ"ð ?Ø$2Ð!>Ð!>Ð!>�àÐr'   c                ó²   ‡— d                      |                      ¦   «         | j        rdndd                     ˆfd„| j        D ¦   «         ¦  «        ¬¦  «        S )NzSELECT {distinct}{top}{select}rµ   r9   r§   c              3  ó8   •K  — | ]} |j         dd d dœ‰¤ŽV — ŒdS r¸   r»   r¼   s     €r%   r­   z0MSSQLQueryBuilder._select_sql.<locals>.<genexpr>ø  r¾   r'   )rÓ  r¿   rÀ   )r«   rØ  rÁ   r¢   rÂ   r°   s    `r%   rÃ   zMSSQLQueryBuilder._select_sqlô  sa   ø€ Ø/×6Ò6Ø—’‘”Ø$(¤NÐ:�[�[¸Ø—8’8ÐmÐmÐmÐmÐ_cÔ_lÐmÑmÔmÑmÔmð 7ñ 
ô 
ð 	
r'   rE   r»  )r„   rÍ  rÎ  rw   rÏ  rw   r   r:   rB  rá   rÆ   rÅ   )r2   r3   r4   rÃ  rI   r@   r   rÓ  rA  r�   rØ  rÃ   rJ   rK   s   @r%   rÅ  rÅ  ¿  sÁ   ø€ € € € € Ø€Ið(ð (ð (ð (ð (ð (ð ð.ð .ð .ð .ñ „Wð.ð	ð 	ð 	ð 	ð0ð 0ð 0ð 0ð 0ð 0ð	ð 	ð 	ð 	ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r'   rÅ  c                  óº   — e Zd ZdZedd„¦   «         Zedd
„¦   «         Zedd„¦   «         Zedd„¦   «         Zedd„¦   «         Z	edd„¦   «         Z
edd„¦   «         ZdS )ÚClickHouseQueryz?
    Defines a query class for use with Yandex ClickHouse.
    r   r   r   ÚClickHouseQueryBuilderc                ó6   — t          dt          j        dddœ|¤ŽS )NFT)r=   Úwrap_set_operation_queriesÚ
as_keywordr"   )rÝ  r   Ú
CLICKHOUSEr#   s     r%   r&   zClickHouseQuery._builder  s1   € å%ð 
ÝÔ'ÀEÐVZð
ð 
Ø^dð
ð 
ð 	
r'   ÚdatabaseúDatabase | strÚClickHouseDropQueryBuilderc                óD   — t          ¦   «                              |¦  «        S r,   )rä  Údrop_database)rC   râ  s     r%   ræ  zClickHouseQuery.drop_database  s   € å)Ñ+Ô+×9Ò9¸(ÑCÔCÐCr'   r(   úTable | strc                óD   — t          ¦   «                              |¦  «        S r,   )rä  r1   rÏ   s     r%   r1   zClickHouseQuery.drop_table  ó   € å)Ñ+Ô+×6Ò6°uÑ=Ô=Ð=r'   Ú
dictionaryr]   c                óD   — t          ¦   «                              |¦  «        S r,   )rä  Údrop_dictionary)rC   rê  s     r%   rì  zClickHouseQuery.drop_dictionary  s   € å)Ñ+Ô+×;Ò;¸JÑGÔGÐGr'   Úquotac                óD   — t          ¦   «                              |¦  «        S r,   )rä  Ú
drop_quota)rC   rí  s     r%   rï  zClickHouseQuery.drop_quota  ré  r'   Úuserc                óD   — t          ¦   «                              |¦  «        S r,   )rä  Ú	drop_user)rC   rð  s     r%   rò  zClickHouseQuery.drop_user  ó   € å)Ñ+Ô+×5Ò5°dÑ;Ô;Ð;r'   Úviewc                óD   — t          ¦   «                              |¦  «        S r,   )rä  Ú	drop_view)rC   rô  s     r%   rö  zClickHouseQuery.drop_view  ró  r'   N)r   r   r   rÝ  )râ  rã  r   rä  )r(   rç  r   rä  )rê  r]   r   rä  )rí  r]   r   rä  )rð  r]   r   rä  )rô  r]   r   rä  )r2   r3   r4   r5   r6   r&   ræ  r1   rì  rï  rò  rö  r"   r'   r%   rÜ  rÜ  ü  s  € € € € € ðð ð ð
ð 
ð 
ñ „[ð
ð
 ðDð Dð Dñ „[ðDð ð>ð >ð >ñ „[ð>ð ðHð Hð Hñ „[ðHð ð>ð >ð >ñ „[ð>ð ð<ð <ð <ñ „[ð<ð ð<ð <ð <ñ „[ð<ð <ð <r'   rÜ  c                  ó  ‡ — e Zd ZU eZded<   ded<   d(ˆ fd„Zd)ˆ fd„Zed(d	„¦   «         Z	ed*d+d„¦   «         Z
ed,d„¦   «         Zd,d„Zd-d.d„Zd,d„Zed/d„¦   «         Zd,ˆ fd„Zed0d„¦   «         Zed0d „¦   «         Zd1ˆ fd"„Zd,d#„Zd2ˆ fd'„Zˆ xZS )3rÝ  z
list[Term]rS  z"tuple[int, int, list[Term]] | NoneÚ	_limit_byr   r:   c                ó€   •—  t          ¦   «         j        di |¤Ž d| _        d | _        d | _        g | _        d | _        d S )NFr"   )r?   r@   Ú_finalÚ_sampleÚ_sample_offsetrS  rø  rB   s     €r%   r@   zClickHouseQueryBuilder.__init__&  sI   ø€ Ø�‰ŒÔÐ"Ð"˜6Ð"Ð"Ð"ØˆŒØˆŒØ"ˆÔØˆÔØˆŒˆˆr'   c                óz   •— t          ¦   «                              ¦   «         }t          | j        ¦  «        |_        |S r,   )r?   rs   r   rø  rt   s     €r%   rs   zClickHouseQueryBuilder.__copy__.  s/   ø€ Ý‘”×!Ò!Ñ#Ô#ˆÝ ¤Ñ/Ô/ˆÔØˆr'   c                ó   — d| _         d S r|   )rú  r‹   s    r%   ÚfinalzClickHouseQueryBuilder.final3  s   € àˆŒˆˆr'   NÚsampler+  r(  ú
int | Nonec                ó"   — || _         || _        d S r,   )rû  rü  )rC   r   r(  s      r%   r   zClickHouseQueryBuilder.sample7  s   € àˆŒØ$ˆÔÐÐr'   r   r   r]   c                 ó   — dS )NzALTER TABLEr"   )r   s    r%   Ú_delete_sqlz"ClickHouseQueryBuilder._delete_sql<  s   € àˆ}r'   c                óN   — d                       | j        j        di |¤Ž¬¦  «        S )NzALTER TABLE {table}r  r"   )r«   rŸ  r�   r°   s     r%   Ú_update_sqlz"ClickHouseQueryBuilder._update_sql@  s0   € Ø$×+Ò+Ð2L°$Ô2DÔ2LÐ2VÐ2VÈvÐ2VÐ2VÐ+ÑWÔWÐWr'   FrŒ  rw   c                óŽ  ‡— d                      ˆfd„| j        D ¦   «         ¦  «        }| j        rd|› d�S |g}| j        dur|                     d¦  «         | j        �|                     d| j        › �¦  «         | j        �|                     d| j        › �¦  «         d	                     d                      |¦  «        ¬
¦  «        S )Nr§   c              3  ó8   •K  — | ]} |j         dd d dœ‰¤ŽV — ŒdS )T)rº   r¹   Nr"   r»   )r›   Úclauser   s     €r%   r­   z3ClickHouseQueryBuilder._from_sql.<locals>.<genexpr>D  s=   øè è € ÐpÐpÐ[a˜n˜fœnÐV°dÀtÐVÐVÈvÐVÐVÐpÐpÐpÐpÐpÐpr'   r¶   z DELETEFÚFINALzSAMPLE zOFFSET z FROM {clauses})Úclauses)r¢   r¥  r   rú  rˆ   rû  rü  r«   )rC   rŒ  r   Ú
selectabler  s     `  r%   Ú	_from_sqlz ClickHouseQueryBuilder._from_sqlC  sÞ   ø€ Ø—X’XÐpÐpÐpÐpÐeiÔeoÐpÑpÔpÑpÔpˆ
ØÔð 	+Ø*�zÐ*Ð*Ð*Ð*Ø�,ˆØŒ;˜eÐ#Ð#Ø�NŠN˜7Ñ#Ô#Ð#ØŒ<Ð#Ø�NŠNÐ3 T¤\Ð3Ð3Ñ4Ô4Ð4ØÔÐ*Ø�NŠNÐ: TÔ%8Ð:Ð:Ñ;Ô;Ð;Ø ×'Ò'°·²¸Ñ0AÔ0AÐ'ÑBÔBÐBr'   c                óx   ‡— d                      d                     ˆfd„| j        D ¦   «         ¦  «        ¬¦  «        S )Nz UPDATE {set}r§   c              3  ó–   •K  — | ]C\  }}d                        |j        di t          ‰d¬¦  «        ¤Ž |j        di ‰¤Ž¬¦  «        V — ŒDdS )r©   F)rŒ  rª   Nr"   )r«   r�   Údictr¬   s      €r%   r­   z2ClickHouseQueryBuilder._set_sql.<locals>.<genexpr>R  sŒ   øè è € ð ð ñ !�E˜5ð "×(Ò(Ø'˜%œ-ÐMÐM­$¨vÀeÐ*LÑ*LÔ*LÐMÐMÐUbÐUZÔUbÐUlÐUlÐekÐUlÐUlð )ñ ô ðð ð ð ð ð r'   )rp   )r«   r¢   Ú_updatesr°   s    `r%   Ú_set_sqlzClickHouseQueryBuilder._set_sqlP  s[   ø€ Ø×%Ò%Ø—’ð ð ð ð ð %)¤Mð	ñ ô ñ ô ð &ñ 
ô 
ð 	
r'   rU  rV  c                óè   — |D ]n}t          |t          ¦  «        r(| j                             t	          |¦  «        ¦  «         Œ?t          |t
          ¦  «        r| j                             |¦  «         Œod S r,   rX  rY  s      r%   rZ  z"ClickHouseQueryBuilder.distinct_onZ  r[  r'   c                óº   •‡— | j         r:d                     d                     ˆfd„| j         D ¦   «         ¦  «        ¬¦  «        S  t          ¦   «         j        di ‰¤ŽS )Nrt  r§   c              3  ó6   •K  — | ]} |j         dd di‰¤ŽV — ŒdS rv  r»   r¼   s     €r%   r­   z7ClickHouseQueryBuilder._distinct_sql.<locals>.<genexpr>e  rw  r'   rx  r"   ry  rB   s    `€r%   rz  z$ClickHouseQueryBuilder._distinct_sqlb  r{  r'   Úbyc                ó.   — |dd„ |D ¦   «         f| _         d S )Nr   c                óZ   — g | ](}t          |t          ¦  «        rt          |¦  «        n|‘Œ)S r"   ©r‡   r]   r   ©r›   r‚   s     r%   r�   z3ClickHouseQueryBuilder.limit_by.<locals>.<listcomp>k  s2   € Ð cÐ cÐ cÐW\µ¸EÅ3Ñ1GÔ1GÐ!R¥ u¡¤ ÈUÐ cÐ cÐ cr'   ©rø  )rC   Únr  s      r%   Úlimit_byzClickHouseQueryBuilder.limit_byi  s$   € à˜QÐ cÐ cÐ`bÐ cÑ cÔ cÐdˆŒˆˆr'   c                ó.   — ||d„ |D ¦   «         f| _         d S )Nc                óZ   — g | ](}t          |t          ¦  «        rt          |¦  «        n|‘Œ)S r"   r  r  s     r%   r�   z:ClickHouseQueryBuilder.limit_offset_by.<locals>.<listcomp>o  s3   € Ð%hÐ%hÐ%hÐ\aµjÀÍÑ6LÔ6LÐ&W¥e¨E¡l¤l lÐRWÐ%hÐ%hÐ%hr'   r  )rC   r  r(  r  s       r%   Úlimit_offset_byz&ClickHouseQueryBuilder.limit_offset_bym  s$   € à˜VÐ%hÐ%hÐegÐ%hÑ%hÔ%hÐiˆŒˆˆr'   r’   c                óf   •— | j         r| | j        di |¤Žz  } t          ¦   «         j        |fi |¤ŽS r!   )rø  Ú_limit_by_sqlr?   rA  )rC   r’   r   rD   s      €r%   rA  z(ClickHouseQueryBuilder._apply_paginationq  sL   ø€ ð Œ>ð 	8ØÐ-˜4Ô-Ð7Ð7°Ð7Ð7Ñ7ˆKØ(�u‰wŒwÔ(¨Ð?Ð?¸Ð?Ð?Ð?r'   c                ó’   ‡— | j         \  }}}d                     ˆfd„|D ¦   «         ¦  «        }|dk    rd|› d|› d|› d�S d|› d|› d�S )Nr§   c              3  ó6   •K  — | ]} |j         dd di‰¤ŽV — ŒdS rv  r»   r¼   s     €r%   r­   z7ClickHouseQueryBuilder._limit_by_sql.<locals>.<genexpr>{  s:   øè è € ÐMÐMÀ$�l�d”lÐ=Ð=¨dÐ=°fÐ=Ð=ÐMÐMÐMÐMÐMÐMr'   r   z LIMIT z OFFSET z BY (r„  )rø  r¢   )rC   r   r  r(  r  s    `   r%   r"  z$ClickHouseQueryBuilder._limit_by_sqly  sy   ø€ Øœ.‰ˆˆF�BØ�XŠXÐMÐMÐMÐMÈ"ÐMÑMÔMÑMÔMˆØ�QŠ;ˆ;Ø:˜QÐ:Ð:¨Ð:Ð:°RÐ:Ð:Ð:Ð:à*˜QÐ*Ð* RÐ*Ð*Ð*Ð*r'   Úcurrent_tableúTable | NoneÚ	new_tablec                óÎ   •‡‡— t          ¦   «                              ‰‰¦  «        }| j        r8| j        d         | j        d         ˆˆfd„| j        d         D ¦   «         f|_        |S )Nr   é   c                ó<   •— g | ]}|                      ‰‰¦  «        ‘ŒS r"   )Úreplace_table)r›   Úcolumnr%  r'  s     €€r%   r�   z8ClickHouseQueryBuilder.replace_table.<locals>.<listcomp>‡  s)   ø€ Ð`Ð`Ð`ÀF�×%Ò% m°YÑ?Ô?Ð`Ð`Ð`r'   é   )r?   r+  rø  )rC   r%  r'  ru   rD   s    `` €r%   r+  z$ClickHouseQueryBuilder.replace_table�  so   øøø€ Ý‘”×&Ò& }°iÑ@Ô@ˆØŒ>ð 	à”˜qÔ!Ø”˜qÔ!Ø`Ð`Ð`Ð`Ð`ÈdÌnÐ]^ÔN_Ð`Ñ`Ô`ð ˆFÔð
 ˆr'   rR   )r   rÝ  r,   )r   r+  r(  r  r   r:   rÅ   ©F)rŒ  rw   r   r   r   r]   r¹  )r  rV  r   r:   rB  )r%  r&  r'  r&  r   rÝ  )r2   r3   r4   rÜ  rI   Ú__annotations__r@   rs   r   rÿ  r   Ústaticmethodr  r  r  r  rZ  rz  r  r   rA  r"  r+  rJ   rK   s   @r%   rÝ  rÝ     s  ø€ € € € € € Ø€IàÐÐÑØ1Ð1Ð1Ñ1ðð ð ð ð ð ðð ð ð ð ð ð
 ðð ð ñ „Wðð ð%ð %ð %ð %ñ „Wð%ð ðð ð ñ „\ððXð Xð Xð XðCð Cð Cð Cð Cð
ð 
ð 
ð 
ð ð0ð 0ð 0ñ „Wð0ð/ð /ð /ð /ð /ð /ð ðeð eð eñ „Wðeð ðjð jð jñ „Wðjð@ð @ð @ð @ð @ð @ð+ð +ð +ð +ðð ð ð ð ð ð ð ð ð r'   rÝ  c                  ó~   ‡ — e Zd ZeZˆ fd„Zedˆ fd„¦   «         Zedˆ fd„¦   «         Zedd
„¦   «         Z	dˆ fd„Z
ˆ xZS )rä  c                ón   •— t          ¦   «                              t          j        ¬¦  «         d | _        d S rN   )r?   r@   r   rá  Ú_cluster_namerP   s    €r%   r@   z#ClickHouseDropQueryBuilder.__init__�  s/   ø€ Ý‰Œ×Ò¥Ô!4ÐÑ5Ô5Ð5Ø!ˆÔÐÐr'   rê  r]   r   r:   c                óL   •— t          ¦   «                              d|¦  «         d S )NÚ
DICTIONARY©r?   Ú_set_target)rC   rê  rD   s     €r%   rì  z*ClickHouseDropQueryBuilder.drop_dictionary“  s#   ø€ å‰Œ×Ò˜L¨*Ñ5Ô5Ð5Ð5Ð5r'   rí  c                óL   •— t          ¦   «                              d|¦  «         d S )NÚQUOTAr6  )rC   rí  rD   s     €r%   rï  z%ClickHouseDropQueryBuilder.drop_quota—  s#   ø€ å‰Œ×Ò˜G UÑ+Ô+Ð+Ð+Ð+r'   Úclusterc                ó@   — | j         rt          d¦  «        ‚|| _         d S )Nz5'DropQuery' object already has attribute cluster_name)r3  r  )rC   r:  s     r%   Ú
on_clusterz%ClickHouseDropQueryBuilder.on_cluster›  s+   € àÔð 	ZÝ Ð!XÑYÔYÐYØ$ˆÔÐÐr'   r   r   c                ó¶   •—  t          ¦   «         j        di |¤Ž}| j        dk    r3| j        �,|dt	          | j        t          ¦   «         j        ¦  «        z   z  }|S )Nr5  z ON CLUSTER r"   )r?   r�   Ú_drop_target_kindr3  r   rF   )rC   r   r  rD   s      €r%   r�   z"ClickHouseDropQueryBuilder.get_sql¡  s\   ø€ Ø•‘””Ð)Ð) &Ð)Ð)ˆàÔ! \Ò1Ð1°dÔ6HÐ6TØ�^¥m°DÔ4FÍÉÌÔHZÑ&[Ô&[Ñ[Ñ[ˆEàˆr'   )rê  r]   r   r:   )rí  r]   r   r:   )r:  r]   r   r:   rÅ   )r2   r3   r4   rÜ  rI   r@   r   rì  rï  r<  r�   rJ   rK   s   @r%   rä  rä  Œ  sÏ   ø€ € € € € Ø€Ið"ð "ð "ð "ð "ð ð6ð 6ð 6ð 6ð 6ñ „Wð6ð ð,ð ,ð ,ð ,ð ,ñ „Wð,ð ð%ð %ð %ñ „Wð%ð
ð ð ð ð ð ð ð ð ð r'   rä  c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚSQLLiteValueWrapperr   r   r   r]   c                ó€   •— t          | j        t          ¦  «        r| j        rdndS  t          ¦   «         j        di |¤ŽS )NÚ1Ú0r"   )r‡   r„   rw   r?   Úget_value_sqlrB   s     €r%   rD  z!SQLLiteValueWrapper.get_value_sql«  sE   ø€ Ý�d”j¥$Ñ'Ô'ð 	.Øœ*Ð-�3�3¨#Ð-Ø$�u‰wŒwÔ$Ð.Ð. vÐ.Ð.Ð.r'   rÅ   )r2   r3   r4   rD  rJ   rK   s   @r%   r@  r@  ª  s=   ø€ € € € € ð/ð /ð /ð /ð /ð /ð /ð /ð /ð /r'   r@  c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	ÚSQLLiteQueryrÄ  r   r   r   ÚSQLLiteQueryBuilderc                ó   — t          di |¤ŽS r!   )rG  r#   s     r%   r&   zSQLLiteQuery._builder¶  rê   r'   N)r   r   r   rG  r5  r"   r'   r%   rF  rF  ±  s>   € € € € € ðð ð ð-ð -ð -ñ „[ð-ð -ð -r'   rF  c                  óH   ‡ — e Zd ZeZd
ˆ fd„Zedd„¦   «         Zdˆ fd	„Zˆ xZ	S )rG  r   r   r   r:   c                ól   •—  t          ¦   «         j        dt          j        t          dœ|¤Ž d| _        d S )N)r=   Úwrapper_clsFr"   )r?   r@   r   ÚSQLLITEr@  Ú_insert_or_replacerB   s     €r%   r@   zSQLLiteQueryBuilder.__init__¾  s:   ø€ Ø�‰ŒÔÐ]¥Ô!1Õ?RÐ]Ð]ÐV\Ð]Ð]Ð]Ø"'ˆÔÐÐr'   r�  c                ó6   —  | j         |Ž  d| _        d| _        d S r|   )Ú_apply_termsÚ_replacerM  )rC   r�  s     r%   Úinsert_or_replacez%SQLLiteQueryBuilder.insert_or_replaceÂ  s'   € àˆÔ˜5Ð!Ð!ØˆŒØ"&ˆÔÐÐr'   r]   c                óR   •— | j         rdnd}| t          ¦   «         j        di |¤Žz   S )Nz
INSERT OR r9   r"   )rM  r?   Ú_replace_sql)rC   r   ÚprefixrD   s      €r%   rS  z SQLLiteQueryBuilder._replace_sqlÈ  s7   ø€ Ø!%Ô!8Ð@��¸bˆØÐ,�™œÔ,Ð6Ð6¨vÐ6Ð6Ñ6Ð6r'   rE   rº  rÅ   )
r2   r3   r4   rF  rI   r@   r   rQ  rS  rJ   rK   s   @r%   rG  rG  »  s€   ø€ € € € € Ø€Ið(ð (ð (ð (ð (ð (ð ð'ð 'ð 'ñ „Wð'ð
7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7r'   rG  c                  ót   — e Zd ZdZedd„¦   «         Zedd„¦   «         Zeddd„¦   «         Zedd„¦   «         ZdS )Ú	JiraQueryz2
    Defines a query class for use with Jira.
    r   ÚJiraQueryBuilderc                ó   — t          di |¤ŽS r!   )rW  r#   s     r%   r&   zJiraQuery._builderÒ  s   € åÐ)Ð) &Ð)Ð)Ð)r'   r   c                ó4   —  t          ¦   «         j        |i |¤ŽS r,   )rW  rn  )r$   rÒ   r   s      r%   rn  zJiraQuery.whereÖ  s!   € à'ÕÑ!Ô!Ô'¨Ð8°Ð8Ð8Ð8r'   r9   Ú
table_namer]   Ú	JiraTablec                ó    — ~t          ¦   «         S )z=
        Convenience method for creating a JiraTable
        ©r[  )r$   rZ  Ú_s      r%   r   zJiraQuery.TableÚ  s   € ð
 Ý‰{Œ{Ðr'   Únamesútuple[str, str] | strr   r   úlist[JiraTable]c                óP   — ~d„ t          t          |¦  «        ¦  «        D ¦   «         S )zJ
        Convenience method for creating many JiraTable instances
        c                ó*   — g | ]}t          ¦   «         ‘ŒS r"   r]  )r›   r^  s     r%   r�   z$JiraQuery.Tables.<locals>.<listcomp>è  s   € Ð7Ð7Ð7 •	‘”Ð7Ð7Ð7r'   )Úrangerd  )r$   r_  r   s      r%   ÚTableszJiraQuery.Tablesâ  s)   € ð
 Ø7Ð7¥U­3¨u©:¬:Ñ%6Ô%6Ð7Ñ7Ô7Ð7r'   N)r   rW  )r   r   )r9   )rZ  r]   r   r[  )r_  r`  r   r   r   ra  )	r2   r3   r4   r5   r6   r&   rn  r   re  r"   r'   r%   rV  rV  Í  s£   € € € € € ðð ð ð*ð *ð *ñ „[ð*ð ð9ð 9ð 9ñ „[ð9ð ðð ð ð ñ „[ðð ð8ð 8ð 8ñ „[ð8ð 8ð 8r'   rV  c                  óZ   ‡ — e Zd ZdZdZdZeZdˆ fd„Zddˆ fd„Z	ddd„Z
dd„Zddd„Zˆ xZS )rW  zF
    Defines a main query builder class to produce JQL expression
    r9   r8   r   r:   c                ó°   •—  t          ¦   «         j        ddt          j        i|¤Ž t	          ¦   «         g| _        t          ¦   «         g| _        d| _        d S )Nr=   Tr"   )	r?   r@   r   ÚJIRAr[  r¥  r   rÂ   Ú_select_starrB   s     €r%   r@   zJiraQueryBuilder.__init__ô  sO   ø€ Ø�‰ŒÔÐ9Ð9¥¤Ð9°&Ð9Ð9Ð9Ý‘k”k�]ˆŒ
Ý™œ˜ˆŒØ ˆÔÐÐr'   Fr¹   rw   rº   r]   c                ó^   •—  t          ¦   «         j        ||fi |¤Ž                     ¦   «         S r,   )r?   r�   Ústrip)rC   r¹   rº   r   rD   s       €r%   r�   zJiraQueryBuilder.get_sqlú  s/   ø€ Ø�u‰wŒwŒ˜z¨8Ð>Ð>°vÐ>Ð>×DÒDÑFÔFÐFr'   rŒ  r^  r   c                ó   — dS )z1
        JQL doen't have from statements
        r9   r"   )rC   rŒ  r^  s      r%   r  zJiraQueryBuilder._from_sqlý  ó	   € ð ˆrr'   c                ó   — dS )z3
        JQL doen't have select statements
        r9   r"   )rC   r^  s     r%   rÃ   zJiraQueryBuilder._select_sql  rm  r'   Nr   c                ó,   —  | j         j        d|ddœ|¤ŽS )NT)Ú
quote_charrº   r"   )Ú_wheresr�   )rC   rp  r   s      r%   Ú
_where_sqlzJiraQueryBuilder._where_sql	  s$   € Ø#ˆtŒ|Ô#ÐS¨zÀDÐSÐSÈFÐSÐSÐSr'   rR   r»  )r¹   rw   rº   rw   r   r]   r.  )rŒ  rw   r^  r   r   r]   )r^  r   r   r]   r,   rÅ   )r2   r3   r4   r5   rF   ÚSECONDARY_QUOTE_CHARrV  rI   r@   r�   r  rÃ   rr  rJ   rK   s   @r%   rW  rW  ë  sÒ   ø€ € € € € ðð ð €JØÐØ€Ið!ð !ð !ð !ð !ð !ðGð Gð Gð Gð Gð Gð Gðð ð ð ð ðð ð ð ðTð Tð Tð Tð Tð Tð Tð Tð Tr'   rW  c                  ó   — e Zd Zd
dd„Zd	S )ÚJiraEmptyCriterionFr¹   rw   r   r   r   r]   c                óv   — ~d                       | j        j        di |¤Ž¬¦  «        }t          || j        fi |¤ŽS )Nz{term} is EMPTY©r½   r"   ©r«   r½   r�   r   Úalias©rC   r¹   r   rú   s       r%   r�   zJiraEmptyCriterion.get_sql  sS   € ØØ×&Ò&Ø"�”Ô"Ð,Ð, VÐ,Ð,ð 'ñ 
ô 
ˆõ    T¤ZÐ:Ð:°6Ð:Ð:Ð:r'   Nr.  )r¹   rw   r   r   r   r]   ©r2   r3   r4   r�   r"   r'   r%   ru  ru    ó-   € € € € € ð;ð ;ð ;ð ;ð ;ð ;ð ;r'   ru  c                  ó   — e Zd Zdd	d„ZdS )
ÚJiraNotEmptyCriterionFr¹   rw   r   r]   c                óv   — ~d                       | j        j        di |¤Ž¬¦  «        }t          || j        fi |¤ŽS )Nz{term} is not EMPTYrw  r"   rx  rz  s       r%   r�   zJiraNotEmptyCriterion.get_sql  sS   € ØØ#×*Ò*Ø"�”Ô"Ð,Ð, VÐ,Ð,ð +ñ 
ô 
ˆõ    T¤ZÐ:Ð:°6Ð:Ð:Ð:r'   Nr.  )r¹   rw   r   r]   r{  r"   r'   r%   r~  r~    r|  r'   r~  c                  ó   — e Zd Zdd„Zdd„ZdS )	Ú	JiraFieldr   ru  c                ó    — t          | ¦  «        S r,   )ru  r‹   s    r%   ÚisemptyzJiraField.isempty   s   € Ý! $Ñ'Ô'Ð'r'   r~  c                ó    — t          | ¦  «        S r,   )r~  r‹   s    r%   ÚnotemptyzJiraField.notempty#  s   € Ý$ TÑ*Ô*Ð*r'   N)r   ru  )r   r~  )r2   r3   r4   rƒ  r…  r"   r'   r%   r�  r�    s<   € € € € € ð(ð (ð (ð (ð+ð +ð +ð +ð +ð +r'   r�  c                  ó&   ‡ — e Zd Zˆ fd„Zdd„Zˆ xZS )r[  c                óJ   •— t          ¦   «                              d¦  «         d S )NÚissues)r?   r@   rP   s    €r%   r@   zJiraTable.__init__(  s!   ø€ Ý‰Œ×Ò˜Ñ"Ô"Ð"Ð"Ð"r'   Únamer]   r   r�  c                ó$   — t          || ¬¦  «        S r~  )r�  )rC   r‰  s     r%   r‚   zJiraTable.field+  s   € Ý˜ TÐ*Ñ*Ô*Ð*r'   )r‰  r]   r   r�  )r2   r3   r4   r@   r‚   rJ   rK   s   @r%   r[  r[  '  sL   ø€ € € € € ð#ð #ð #ð #ð #ð+ð +ð +ð +ð +ð +ð +ð +r'   r[  )BÚ
__future__r   r¡  r-  r   Útypingr   Úpypika.enumsr   Úpypika.queriesr   r   r	   r
   r   r   r   Úpypika.termsr   r   r   r   r   r   r   r   r   Úpypika.utilsr   r   r   r   r   r   r*   r/   rX   rY   r^   rb   rd   rç   rè   rî   rë   r"  r2  r3  rD  rE  r½  r¾  rÃ  rÅ  rÜ  rÝ  rä  r@  rF  rG  rV  rW  ru  r~  r�  r[  r"   r'   r%   ú<module>r‘     s-  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð RÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ QÐ Qð=ð =ð =ð =ð =�Uñ =ô =ð =ð$?ð ?ð ?ð ?ð ?˜Lñ ?ô ?ð ?ð5ð 5ð 5ð 5ð 5Ð"4ñ 5ô 5ð 5ð5ð 5ð 5ð 5ð 5Ð 0ñ 5ô 5ð 5ð9ð 9ð 9ð 9ð 9�ñ 9ô 9ð 9ð,`
ð `
ð `
ð `
ð `
˜ñ `
ô `
ð `
ðF"ð "ð "ð "ð "ñ "ô "ð "ðJð ð ð ð Ð0ñ ô ð ðð ð ð ð Ð,ñ ô ð ð?ð ?ð ?ð ?ð ?�5ñ ?ô ?ð ?ð$ð ð ð ð ˜,ñ ô ð ð()Ið )Ið )Ið )Ið )IÐ 2ñ )Iô )Ið )IðX"ð "ð "ð "ð "ñ "ô "ð "ðJ
ð 
ð 
ð 
ð 
¨ñ 
ô 
ð 
ð,ð ,ð ,ð ,ð ,�%ñ ,ô ,ð ,ðð ð ð ð Ð;ñ ô ð ð00ð 0ð 0ð 0ð 0�eñ 0ô 0ð 0ðBð Bð Bð Bð B˜\ñ Bô Bð BðJIð Ið Ið Ið I�Eñ Iô Ið Iðð ð ð ð ˜<ñ ô ð ð+ð +ð +ð +ð +�ñ +ô +ð +ð:
ð :
ð :
ð :
ð :
Ð:ñ :
ô :
ð :
ðz!<ð !<ð !<ð !<ð !<�eñ !<ô !<ð !<ðHið ið ið ið i˜\ñ iô ið iðXð ð ð ð Ð!1ñ ô ð ð</ð /ð /ð /ð /˜,ñ /ô /ð /ð-ð -ð -ð -ð -�5ñ -ô -ð -ð7ð 7ð 7ð 7ð 7˜,ñ 7ô 7ð 7ð$8ð 8ð 8ð 8ð 8�ñ 8ô 8ð 8ð<Tð Tð Tð Tð T�|ñ Tô Tð TðD;ð ;ð ;ð ;ð ;˜ñ ;ô ;ð ;ð;ð ;ð ;ð ;ð ;Ð.ñ ;ô ;ð ;ð+ð +ð +ð +ð +�ñ +ô +ð +ð+ð +ð +ð +ð +�ñ +ô +ð +ð +ð +r'   