§
    ¡”j™>  ã                   óä  — d dl mZ d dl mZ d dlmZ d dlmZmZ dZ	dZ
ej        ej        j        ej        j        fZej        ej        j        ej        j        fZej        ej        j        fZd'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ej$        ¦  «        d„ ¦   «         Z% eej&        ¦  «        d„ ¦   «         Z'd„ Z(d„ Z)d„ Z* eej+        ¦  «        d„ ¦   «         Z, eej-        ¦  «        d„ ¦   «         Z. e¦   «         d„ ¦   «         Z/ eej0        ¦  «        d„ ¦   «         Z1 eej$        ¦  «        d„ ¦   «         Z2 e¦   «         d„ ¦   «         Z3d „ Z4d!„ Z5d"„ d#„ d$d%d%d fd&„Z6d$S )(é    )Úsql)Útokens)ÚSQLParseError)ÚrecurseÚimtéd   i'  c                 óŠ  — t           �#|t           k    rt          dt           › d�¦  «        ‚t          �5t          | j        ¦  «        t          k    rt          dt          › d�¦  «        ‚g }d}t          | ¦  «        }t          |¦  «        D ]¹\  }}||z
  }|j        rŒ|j        r%t          ||¦  «        st          |||dz   ¦  «         Œ> |j        |j        Ž r|                     |¦  «         Œc |j        |j        Ž rG	 |                     ¦   «         }	n# t           $ r Y Œ”w xY w|}
|                      ||	|
¦  «         ||
|	z
  z  }ŒºdS )z*Groups Tokens that have beginning and end.Nú!Maximum grouping depth exceeded (ú).ú#Maximum number of tokens exceeded (r   é   )ÚMAX_GROUPING_DEPTHr   ÚMAX_GROUPING_TOKENSÚlenr   ÚlistÚ	enumerateÚis_whitespaceÚis_groupÚ
isinstanceÚ_group_matchingÚmatchÚM_OPENÚappendÚM_CLOSEÚpopÚ
IndexErrorÚgroup_tokens)ÚtlistÚclsÚdepthÚopensÚtidx_offsetÚ
token_listÚidxÚtokenÚtidxÚopen_idxÚ	close_idxs              úg/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/sqlparse/engine/grouping.pyr   r      sŸ  € åÐ%¨%Õ2DÒ*DÐ*DÝØFÕ0BÐFÐFÐFñ
ô 
ð 	
õ
 Ð&ÝˆuŒ|ÑÔÕ2Ò2Ð2ÝØIÕ2EÐIÐIÐIñ
ô 
ð 	
ð €EØ€KÝ�e‘”€Jå 
Ñ+Ô+ð 0ð 0‰
ˆˆUØ�[Ñ ˆàÔð 	ð àŒ>ð 	¥*¨U°CÑ"8Ô"8ð 	õ ˜E 3¨°©	Ñ2Ô2Ð2Øàˆ5Œ;˜œ
Ð#ð 	0Ø�LŠL˜ÑÔÐÐàˆUŒ[˜#œ+Ð&ð 		0ðØ Ÿ9š9™;œ;��øÝð ð ð ð �ðøøøð ˆIØ×Ò˜s H¨iÑ8Ô8Ð8Ø˜9 xÑ/Ñ/ˆKøð90ð 0s   Ã<DÄ
DÄDc                 ó:   — t          | t          j        ¦  «         d S ©N)r   r   ÚSquareBrackets©r   s    r)   Úgroup_bracketsr.   L   s   € Ý�E�3Ô-Ñ.Ô.Ð.Ð.Ð.ó    c                 ó:   — t          | t          j        ¦  «         d S r+   )r   r   ÚParenthesisr-   s    r)   Úgroup_parenthesisr2   P   s   € Ý�E�3œ?Ñ+Ô+Ð+Ð+Ð+r/   c                 ó:   — t          | t          j        ¦  «         d S r+   )r   r   ÚCaser-   s    r)   Ú
group_caser5   T   s   € Ý�E�3œ8Ñ$Ô$Ð$Ð$Ð$r/   c                 ó:   — t          | t          j        ¦  «         d S r+   )r   r   ÚIfr-   s    r)   Úgroup_ifr8   X   s   € Ý�E�3œ6Ñ"Ô"Ð"Ð"Ð"r/   c                 ó:   — t          | t          j        ¦  «         d S r+   )r   r   ÚForr-   s    r)   Ú	group_forr;   \   s   € Ý�E�3œ7Ñ#Ô#Ð#Ð#Ð#r/   c                 ó:   — t          | t          j        ¦  «         d S r+   )r   r   ÚBeginr-   s    r)   Úgroup_beginr>   `   s   € Ý�E�3œ9Ñ%Ô%Ð%Ð%Ð%r/   c                 ó\   — d„ }d„ }d„ }|x}}t          | t          j        ||||¦  «         d S )Nc                 óB   — |                       t          j        d¦  «        S )Nz::©r   ÚTÚPunctuation©r%   s    r)   r   zgroup_typecasts.<locals>.matche   s   € Ø�{Š{�1œ=¨$Ñ/Ô/Ð/r/   c                 ó
   — | d uS r+   © rD   s    r)   Úvalidzgroup_typecasts.<locals>.validh   ó   € Ø˜DÐ Ð r/   c                 ó
   — ||fS r+   rF   ©r   Úpidxr&   Únidxs       r)   Úpostzgroup_typecasts.<locals>.postk   ó   € Ø�TˆzÐr/   ©Ú_groupr   Ú
Identifier©r   r   rG   rM   Ú
valid_prevÚ
valid_nexts         r)   Úgroup_typecastsrU   d   s[   € ð0ð 0ð 0ð!ð !ð !ðð ð ð $Ð#€J�Ý
ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr/   c                 óZ   — d„ }d„ }d„ }d„ }t          | t          j        ||||¦  «         d S )Nc                 ó6   — | j         t          j        j        k    S r+   )ÚttyperB   ÚKeywordÚTZCastrD   s    r)   r   zgroup_tzcasts.<locals>.matchs   s   € ØŒ{�aœiÔ.Ò.Ð.r/   c                 ó
   — | d uS r+   rF   rD   s    r)   rS   z!group_tzcasts.<locals>.valid_prevv   rH   r/   c                 óŠ   — | d uo?| j         p8|                      t          j        d¦  «        p | j        t          j        j        Ž S ©NÚAS)r   r   rB   rY   r   ÚTypedLiteralr   rD   s    r)   rT   z!group_tzcasts.<locals>.valid_nexty   sI   € Ø˜DÐ ð 
ØÔð 6Ø�{Š{�1œ9 dÑ+Ô+ð6àˆuŒ{�CÔ,Ô4Ð5ð	
r/   c                 ó
   — ||fS r+   rF   rJ   s       r)   rM   zgroup_tzcasts.<locals>.post€   rN   r/   rO   ©r   r   rS   rT   rM   s        r)   Úgroup_tzcastsrb   r   s`   € ð/ð /ð /ð!ð !ð !ð
ð 
ð 
ðð ð õ ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr/   c           	      óª   — d„ }d„ }d„ }d„ }d„ }d„ }t          | t          j        ||||d¬¦  «         t          | t          j        ||||d	¬¦  «         d S )
Nc                 óB   — t          | t          j        j        ¬¦  «        S )N©Úm)r   r   r_   r   rD   s    r)   r   z"group_typed_literal.<locals>.matchŒ   s   € Ý�5�CÔ,Ô3Ð4Ñ4Ô4Ð4r/   c                 ó6   — t          | t          j        ¦  «        S r+   )r   r   r_   rD   s    r)   Úmatch_to_extendz,group_typed_literal.<locals>.match_to_extend�   s   € Ý˜%¥Ô!1Ñ2Ô2Ð2r/   c                 ó
   — | d uS r+   rF   rD   s    r)   rS   z'group_typed_literal.<locals>.valid_prev’   rH   r/   c                 ó<   — | d uo | j         t          j        j        Ž S r+   )r   r   r_   r   rD   s    r)   rT   z'group_typed_literal.<locals>.valid_next•   s!   € Ø˜DÐ ÐK [ U¤[µ#Ô2BÔ2JÐ%KÐKr/   c                 ó<   — | d uo | j         t          j        j        Ž S r+   )r   r   r_   ÚM_EXTENDrD   s    r)   Úvalid_finalz(group_typed_literal.<locals>.valid_final˜   s!   € Ø˜DÐ ÐL [ U¤[µ#Ô2BÔ2KÐ%LÐLr/   c                 ó
   — ||fS r+   rF   rJ   s       r)   rM   z!group_typed_literal.<locals>.post›   rN   r/   F©ÚextendT)rP   r   r_   )r   r   rh   rS   rT   rm   rM   s          r)   Úgroup_typed_literalrq   †   sÀ   € ð5ð 5ð 5ð3ð 3ð 3ð!ð !ð !ðLð Lð LðMð Mð Mðð ð õ ˆ5•#Ô" E¨:°zØ˜ðñ ô ð å
ˆ5•#Ô" O°ZÀØ˜ðñ ô ð ð ð r/   c                 óZ   — d„ }d„ }d„ }d„ }t          | t          j        ||||¦  «         d S )Nc                 ó–   — t           j        dft           j        dft           j        dffD ]\  }}|                      ||¦  «        r dS ŒdS )Nú.z->z->>TF)rB   rC   ÚOperatorr   )r%   rX   Úvalues      r)   r   zgroup_period.<locals>.match¥   s^   € Ýœm¨SÐ1Ýœj¨$Ð/Ýœj¨%Ð0ð2ð 	ð 	‰LˆE�5ð �{Š{˜5 %Ñ(Ô(ð Ø�t�tðàˆur/   c                 ó�   — t           j        t           j        f}t          j        t          j        j        f}t          | ||¬¦  «        S ©N©ÚiÚt)r   r,   rQ   rB   ÚNameÚStringÚSymbolr   ©r%   ÚsqlclsÚttypess      r)   rS   z group_period.<locals>.valid_prev­   s6   € ÝÔ#¥S¤^Ð3ˆÝ”�œœÐ(ˆÝ�5˜F fÐ-Ñ-Ô-Ð-r/   c                 ó   — dS ©NTrF   rD   s    r)   rT   z group_period.<locals>.valid_next²   s   € àˆtr/   c                 óò   — t           j        t           j        f}t          j        t          j        j        t          j        t          j        j        f}|�| |         nd }t          |||¬¦  «        }|r||fn||fS rx   )
r   r,   ÚFunctionrB   r|   r}   r~   ÚWildcardÚSingler   )r   rK   r&   rL   r€   r�   Únext_rT   s           r)   rM   zgroup_period.<locals>.post¶   sh   € åÔ#¥S¤\Ð1ˆÝ”�œœ­!¬*µa´h´oÐEˆØ#Ð/��d”�°TˆÝ˜ &¨FÐ3Ñ3Ô3ˆ
à)Ð;��dˆ|ˆ|°°d¨|Ð;r/   rO   ra   s        r)   Úgroup_periodr‰   ¤   s`   € ðð ð ð.ð .ð .ð
ð ð ð<ð <ð <õ ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr/   c                 óZ   — d„ }d„ }d„ }d„ }t          | t          j        ||||¦  «         d S )Nc                 ó&   — | j         o
| j        dk    S r]   )Ú
is_keywordÚ
normalizedrD   s    r)   r   zgroup_as.<locals>.matchÃ   s   € ØÔÐ< EÔ$4¸Ò$<Ð<r/   c                 ó(   — | j         dk    p| j         S )NÚNULL)r�   rŒ   rD   s    r)   rS   zgroup_as.<locals>.valid_prevÆ   s   € ØÔ 6Ò)ÐA°Ô1AÐ-AÐAr/   c                 ót   — t           j        t           j        t           j        f}t	          | |¬¦  «         o| d uS ©N©r{   )rB   ÚDMLÚDDLÚCTEr   )r%   r�   s     r)   rT   zgroup_as.<locals>.valid_nextÉ   s4   € Ý”�œ�qœuÐ$ˆÝ�u Ð'Ñ'Ô'Ð'Ð=¨E¸Ð,=Ð=r/   c                 ó
   — ||fS r+   rF   rJ   s       r)   rM   zgroup_as.<locals>.postÍ   rN   r/   rO   ra   s        r)   Úgroup_asr—   Â   sc   € ð=ð =ð =ðBð Bð Bð>ð >ð >ðð ð õ ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr/   c                 ó\   — d„ }d„ }d„ }|x}}t          | t          j        ||||¦  «         d S )Nc                 óB   — |                       t          j        d¦  «        S )Nz:=)r   rB   Ú
AssignmentrD   s    r)   r   zgroup_assignment.<locals>.matchÔ   s   € Ø�{Š{�1œ<¨Ñ.Ô.Ð.r/   c                 ó2   — | d uo| j         t          j        fvS r+   )rX   rB   rY   rD   s    r)   rG   zgroup_assignment.<locals>.valid×   s   € Ø˜DÐ ÐD U¤[½¼¸Ð%DÐDr/   c                 ób   — t           j        df}|                      ||¬¦  «        \  }}|p|}||fS )Nú;©rf   r$   )rB   rC   Útoken_next_by)r   rK   r&   rL   Úm_semicolonÚsnidxÚ_s          r)   rM   zgroup_assignment.<locals>.postÚ   s=   € Ý”m SÐ(ˆØ×&Ò&¨¸$Ð&Ñ?Ô?‰ˆˆqØˆ}˜ˆØ�TˆzÐr/   )rP   r   rš   rR   s         r)   Úgroup_assignmentr£   Ó   s^   € ð/ð /ð /ðEð Eð Eðð ð ð $Ð#€J�Ý
ˆ5•#”. %¨°ZÀÑFÔFÐFÐFÐFr/   c           	      ó
  ‡‡— t           j        t           j        t           j        t           j        t           j        fŠt          t          z   t          z   Šd„ }ˆˆfd„}d„ }|x}}t          | t           j
        ||||d¬¦  «         d S )Nc                 ó6   — | j         t          j        j        k    S r+   )rX   rB   ru   Ú
ComparisonrD   s    r)   r   zgroup_comparison.<locals>.matché   s   € ØŒ{�aœjÔ3Ò3Ð3r/   c                 ó\   •— t          | ‰‰¬¦  «        rdS | r| j        r| j        dk    rdS dS )N)r{   rz   Tr�   F)r   rŒ   r�   r   s    €€r)   rG   zgroup_comparison.<locals>.validì   sH   ø€ Ýˆu˜ &Ð)Ñ)Ô)ð 	Ø�4Øð 	�uÔ'ð 	¨EÔ,<ÀÒ,FÐ,FØ�4à�5r/   c                 ó
   — ||fS r+   rF   rJ   s       r)   rM   zgroup_comparison.<locals>.postô   rN   r/   Fro   )r   r1   r…   rQ   Ú	Operationr_   ÚT_NUMERICALÚT_STRINGÚT_NAMErP   r¦   ©r   r   rG   rM   rS   rT   r€   r�   s         @@r)   Úgroup_comparisonr®   ä   s«   øø€ ÝŒo�sœ|­S¬^ÝŒm�SÔ-ð/€Få�8Ñ#¥fÑ,€Fð4ð 4ð 4ðð ð ð ð ð ðð ð ð $Ð#€J�Ý
ˆ5•#”. %Ø�z 4°ð7ñ 7ô 7ð 7ð 7ð 7r/   c                 óô   — t           j        j        t           j        f}|                      |¬¦  «        \  }}|r?|                      t          j        ||¦  «         |                      ||¬¦  «        \  }}|°=d S d S )Nr’   ©r{   r$   )rB   r}   r~   r|   rŸ   r   r   rQ   )r   r�   r&   r%   s       r)   Úgroup_identifierr±   ü   sˆ   € åŒhŒo�qœvÐ&€Fà×%Ò%¨Ð%Ñ/Ô/�K€Dˆ%Ø
ð >Ø×Ò�3œ>¨4°Ñ6Ô6Ð6Ø×)Ò)¨F¸Ð)Ñ=Ô=‰ˆˆeð ð >ð >ð >ð >ð >r/   c                 ór  — |                       t          j        j        ¬¦  «        \  }}|rŒ|                      |¦  «        \  }}t          |t          j        t          j        ¬¦  «        r!|  	                    t          j        ||¦  «         |                       t          j        j        |¬¦  «        \  }}|°Šd S d S )Nre   ry   rž   )
rŸ   r   ÚOverr   Ú
token_nextr   r1   rB   r|   r   )r   r&   r%   rL   rˆ   s        r)   Ú
group_overrµ     s¸   € à×%Ò%­¬¬Ð%Ñ8Ô8�K€Dˆ%Ø
ð GØ×&Ò& tÑ,Ô,‰ˆˆeÝˆu�œ­1¬6Ð2Ñ2Ô2ð 	5Ø×Ò�sœx¨¨tÑ4Ô4Ð4Ø×)Ò)­C¬H¬OÀÐ)ÑFÔF‰ˆˆeð	 ð Gð Gð Gð Gð Gr/   c           
      óê   ‡‡— t           j        t           j        t           j        fŠt          j        t          j        j        fŠd„ }ˆˆfd„}d„ }d„ }t          | t           j        ||||dd¬¦  «         d S )Nc                 ó6   — t          | t          j        ¦  «        S r+   )r   r   r,   rD   s    r)   r   zgroup_arrays.<locals>.match  s   € Ý˜%¥Ô!3Ñ4Ô4Ð4r/   c                 ó(   •— t          | ‰‰¬¦  «        S rx   ©r   r   s    €€r)   rS   z group_arrays.<locals>.valid_prev  s   ø€ Ý�5˜F fÐ-Ñ-Ô-Ð-r/   c                 ó   — dS rƒ   rF   rD   s    r)   rT   z group_arrays.<locals>.valid_next  s   € Øˆtr/   c                 ó
   — ||fS r+   rF   rJ   s       r)   rM   zgroup_arrays.<locals>.post  rN   r/   TF)rp   r   )	r   r,   rQ   r…   rB   r|   r}   r~   rP   )r   r   rS   rT   rM   r€   r�   s        @@r)   Úgroup_arraysr¼     s®   øø€ ÝÔ¥¤µ´Ð=€FÝŒV•Q”X”_Ð$€Fð5ð 5ð 5ð.ð .ð .ð .ð .ð .ðð ð ðð ð õ ˆ5•#”. %Ø�z 4°¸eðEñ Eô Eð Eð Eð Er/   c           	      ó   ‡‡— t           t          z   t          z   Št          j        t          j        t          j        t          j        t          j        t          j	        fŠd„ }ˆˆfd„}d„ }|x}}t          | t          j        ||||d¬¦  «         d S )Nc                 óP   — t          | t          j        t          j        f¬¦  «        S r‘   )r   rB   ru   r†   rD   s    r)   r   zgroup_operator.<locals>.match)  s   € Ý�5�QœZ­¬Ð4Ð5Ñ5Ô5Ð5r/   c                 ól   •— t          | ‰‰¬¦  «        p!| o|                      t          j        d¦  «        S )Nry   )ÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMP)r   r   rB   rY   r   s    €€r)   rG   zgroup_operator.<locals>.valid,  sD   ø€ Ý�5˜F fÐ-Ñ-Ô-ð HØð G˜%Ÿ+š+Ý”	ØEñGô Gð	Hr/   c                 ó8   — t           j        | |         _        ||fS r+   )rB   ru   rX   rJ   s       r)   rM   zgroup_operator.<locals>.post2  s   € ÝœJˆˆdŒÔØ�TˆzÐr/   Fro   )rª   r«   r¬   r   r,   r1   r…   rQ   r©   r_   rP   r­   s         @@r)   Úgroup_operatorrÄ   $  s¶   øø€ Ý�8Ñ#¥fÑ,€FÝÔ ¥#¤/µ3´<ÝŒn�cœm­SÔ-=ð?€Fð6ð 6ð 6ðHð Hð Hð Hð Hð Hðð ð ð $Ð#€J�Ý
ˆ5•#”- Ø�z 4°ð7ñ 7ô 7ð 7ð 7ð 7r/   c           	      óˆ  ‡‡‡— t           j        dfŠt          j        t          j        t          j        t          j        t          j        t          j        fŠt          t          z   t          z   t           j        t           j        t           j        fz   Šd„ }ˆˆˆfd„}d„ }|x}}t          | t          j        ||||d¬¦  «         d S )N)ÚnullÚrolec                 óB   — |                       t          j        d¦  «        S )Nú,rA   rD   s    r)   r   z$group_identifier_list.<locals>.matchB  s   € Ø�{Š{�1œ=¨#Ñ.Ô.Ð.r/   c                 ó*   •— t          | ‰‰‰¬¦  «        S )N)rz   rf   r{   r¹   )r%   Úm_roler€   r�   s    €€€r)   rG   z$group_identifier_list.<locals>.validE  s   ø€ Ý�5˜F f°Ð7Ñ7Ô7Ð7r/   c                 ó
   — ||fS r+   rF   rJ   s       r)   rM   z#group_identifier_list.<locals>.postH  rN   r/   Tro   )rB   rY   r   r…   r4   rQ   r¦   ÚIdentifierListr©   rª   r«   r¬   ÚCommentr†   rP   )	r   r   rG   rM   rS   rT   rË   r€   r�   s	         @@@r)   Úgroup_identifier_listrÏ   ;  sØ   øøø€ ÝŒYÐ(Ð(€FÝŒl�CœH¥c¤nµc´nÝÔ ¥#¤-ð1€Få�HÑ$¥vÑ-Ý”�AœI¥q¤zÐ2ñ3€Fð/ð /ð /ð8ð 8ð 8ð 8ð 8ð 8ð 8ðð ð ð $Ð#€J�Ý
ˆ5•#Ô$ eØ�z 4°ð6ñ 6ô 6ð 6ð 6ð 6r/   c                 óP  — |                       t          j        ¬¦  «        \  }}|r€|                      d„ |¬¦  «        \  }}|�;|                      |d¬¦  «        \  }}|                      t          j        ||¦  «         |                       t          j        |¬¦  «        \  }}|°~d S d S )Nr’   c                 óF   — t          | t          j        ¬¦  «        p| j        S r‘   )r   rB   rÎ   Ú
is_newline)Útks    r)   ú<lambda>z group_comments.<locals>.<lambda>U  s   € •s˜2¥¤Ð+Ñ+Ô+Ð<¨r¬}€ r/   )r$   F)Úskip_wsr°   )rŸ   rB   rÎ   Útoken_not_matchingÚ
token_prevr   r   ©r   r&   r%   ÚeidxÚends        r)   Úgroup_commentsrÛ   P  sË   € à×%Ò%­¬	Ð%Ñ2Ô2�K€Dˆ%Ø
ð AØ×,Ò,Ø<Ð<À$ð -ñ Hô H‰	ˆˆcàˆ?Ø×(Ò(¨°uÐ(Ñ=Ô=‰IˆD�#Ø×Ò�sœ{¨D°$Ñ7Ô7Ð7à×)Ò)­A¬I¸4Ð)Ñ@Ô@‰ˆˆeð ð Að Að Að Að Ar/   c                 ó²  — |                       t          j        j        ¬¦  «        \  }}|r¬|                       t          j        j        |¬¦  «        \  }}|€| j        d         }n| j        |dz
           }|                      |¦  «        }|                      t          j        ||¦  «         |                       t          j        j        |¬¦  «        \  }}|°ªd S d S )Nre   rž   éÿÿÿÿr   )	rŸ   r   ÚWherer   r   Ú_groupable_tokensr   Útoken_indexr   rØ   s        r)   Úgroup_whererá   ]  sâ   € à×%Ò%­¬	Ô(8Ð%Ñ9Ô9�K€Dˆ%Ø
ð HØ×'Ò'­#¬)Ô*;ÀÐ'ÑFÔF‰	ˆˆcàˆ;ØÔ)¨"Ô-ˆCˆCà”,˜t a™xÔ(ˆCð × Ò  Ñ%Ô%ˆØ×Ò�3œ9 d¨DÑ1Ô1Ð1Ø×)Ò)­C¬IÔ,<À$Ð)ÑGÔG‰ˆˆeð ð Hð Hð Hð Hð Hr/   c                 óÖ  — t           j        t           j        t           j        t           j        t           j        t           j        f}|                      |t          j	        ¬¦  «        \  }}|r~|  
                    |¦  «        \  }}t          |t           j        ¦  «        r#|                      t           j        ||d¬¦  «         |                      |t          j	        |¬¦  «        \  }}|°|d S d S )Nry   Tro   )rz   r{   r$   )r   r1   r…   r4   rQ   r©   r¦   rŸ   rB   ÚNumberr´   r   r   )r   ÚI_ALIASr&   r%   rL   rˆ   s         r)   Úgroup_aliasedrå   n  sÚ   € åŒ¥¤­c¬h½¼ÝŒ}�cœnð.€Gð ×%Ò%¨µ1´8Ð%Ñ<Ô<�K€Dˆ%Ø
ð KØ×&Ò& tÑ,Ô,‰ˆˆeÝ�e�Sœ^Ñ,Ô,ð 	HØ×Ò�sœ~¨t°TÀ$ÐÑGÔGÐGØ×)Ò)¨Gµq´xÀTÐ)ÑJÔJ‰ˆˆeð	 ð Kð Kð Kð Kð Kr/   c                 ó~  — d}d}d}| j         D ]M}|j                             ¦   «         dk    rd}|j                             ¦   «         dk    rd}|j        dk    rd}ŒN|r|r|sd S |                      t          j        ¬¦  «        \  }}|r´|                      |¦  «        \  }}t          |t          j	        ¦  «        rZ|                      |¦  «        \  }	}
|
rt          |
t          j
        ¦  «        r|	}n|}|                      t          j        ||¦  «         |                      t          j        |¬¦  «        \  }}|°²d S d S )NFÚCREATETÚTABLEr^   r’   r°   )r   rv   ÚupperrŸ   rB   r|   r´   r   r   r1   r³   r   r…   )r   Ú
has_createÚ	has_tableÚhas_asÚ	tmp_tokenr&   r%   rL   rˆ   Úover_idxÚoverrÙ   s               r)   Úgroup_functionsrð   {  so  € à€JØ€IØ€FØ”\ð ð ˆ	ØŒ?× Ò Ñ"Ô" hÒ.Ð.ØˆJØŒ?× Ò Ñ"Ô" gÒ-Ð-ØˆIØŒ?˜dÒ"Ð"ØˆFøØð �ið ¨ð Øˆà×%Ò%­¬Ð%Ñ/Ô/�K€Dˆ%Ø
ð 	>Ø×&Ò& tÑ,Ô,‰ˆˆeÝ�e�Sœ_Ñ-Ô-ð 	9Ø"×-Ò-¨dÑ3Ô3‰NˆH�dØð �
 4­¬Ñ2Ô2ð Ø��à�Ø×Ò�sœ|¨T°4Ñ8Ô8Ð8Ø×)Ò)­A¬F¸Ð)Ñ=Ô=‰ˆˆeð ð 	>ð 	>ð 	>ð 	>ð 	>r/   c                 óv  — |                       t          j        j        ¬¦  «        \  }}|rŽ|                      |¦  «        \  }}t          |t          j        t          j        ¬¦  «        r#|  	                    t          j        ||¦  «         |}|                       t          j        j        |¬¦  «        \  }}|°ŒdS dS )z,Group together Identifier and Asc/Desc tokenr’   ry   r°   N)
rŸ   rB   rY   ÚOrderr×   r   r   rQ   rã   r   ©r   r&   r%   rK   Úprev_s        r)   Úgroup_orderrõ   —  s¿   € ð ×%Ò%­¬	¬Ð%Ñ8Ô8�K€Dˆ%Ø
ð GØ×&Ò& tÑ,Ô,‰ˆˆeÝˆu�œ­!¬(Ð3Ñ3Ô3ð 	Ø×Ò�sœ~¨t°TÑ:Ô:Ð:ØˆDØ×)Ò)­A¬I¬OÀÐ)ÑFÔF‰ˆˆeð ð Gð Gð Gð Gð Gr/   c                 óN  — |                       t          j        ¬¦  «        \  }}|r|                      |¦  «        \  }}t	          |t          j        ¦  «        r%|                      t          j        ||d¬¦  «         |}|                       t          j        |¬¦  «        \  }}|°}d S d S )N)rz   Tro   )rz   r$   )rŸ   r   rÎ   r×   r   Ú	TokenListr   ró   s        r)   Úalign_commentsrø   £  s·   € à×%Ò%­¬Ð%Ñ4Ô4�K€Dˆ%Ø
ð CØ×&Ò& tÑ,Ô,‰ˆˆeÝ�e�Sœ]Ñ+Ô+ð 	Ø×Ò�sœ}¨d°DÀÐÑFÔFÐFØˆDØ×)Ò)­C¬K¸TÐ)ÑBÔB‰ˆˆeð ð Cð Cð Cð Cð Cr/   c                 ó  — |                       t          j        df¬¦  «        \  }}|}d}|r6t          |t          j        ¦  «        r|}|                      |¦  «        \  }}|°6|dk    r%|                      t          j        ||d¬¦  «         d S d S )NÚVALUESre   rÝ   Tro   )	rŸ   rB   rY   r   r   r1   r´   r   ÚValues)r   r&   r%   Ú	start_idxÚend_idxs        r)   Úgroup_valuesrþ   ®  s¦   € Ø×%Ò%­¬°HÐ(=Ð%Ñ>Ô>�K€Dˆ%Ø€IØ€GØ
ð -Ý�e�Sœ_Ñ-Ô-ð 	ØˆGØ×&Ò& tÑ,Ô,‰ˆˆeð ð -ð �"‚}€}Ø×Ò�3œ: y°'À$ÐÑGÔGÐGÐGÐGð €}r/   c                 óR  — t           t          t          t          t          t
          t          t          t          t          t          t          t          t          t          t          t           t"          t$          t&          t(          t*          t,          t.          t0          fD ]} || ¦  «         Œ| S r+   )rÛ   r.   r2   r5   r8   r;   r>   rµ   rð   rá   r‰   r¼   r±   rõ   rU   rb   rq   rÄ   r®   r—   rå   r£   rø   rÏ   rþ   )ÚstmtÚfuncs     r)   Úgroupr  º  sv   € åõ 	ÝÝÝÝÝåÝÝÝÝÝÝÝÝÝÝÝÝÝÝåÝÝð;ð ð ˆð> 	ˆˆT‰
Œ
ˆ
ˆ
Ø€Kr/   c                 ó   — dS rƒ   rF   r’   s    r)   rÔ   rÔ   ß  ó   €  € r/   c                 ó   — dS rƒ   rF   r’   s    r)   rÔ   rÔ   à  r  r/   NTc	                 ó¢  — t           �#|t           k    rt          dt           › d�¦  «        ‚t          �5t          | j        ¦  «        t          k    rt          dt          › d�¦  «        ‚d}	d\  }
}t          | ¦  «        }t          |¦  «        D ]Â\  }}||	z
  }|dk     rŒ|j        rŒ|r1|j        r*t          ||¦  «        st          |||||||d|dz   ¦	  «	          ||¦  «        rg|                      |¦  «        \  }}|rM ||¦  «        rB ||¦  «        r7 || |
||¦  «        \  }}|                      ||||¬	¦  «        }|	||z
  z  }	||}}
Œ¾||}}
ŒÃdS )
zDGroups together tokens that are joined by a middle token. i.e. x < yNr
   r   r   r   )NNTr   ro   )r   r   r   r   r   r   r   r   r   r   rP   r´   r   )r   r   r   rS   rT   rM   rp   r   r    r"   rK   rô   r#   r$   r%   r&   rL   rˆ   Úfrom_idxÚto_idxÚgrps                        r)   rP   rP   Þ  sÓ  € õ Ð%¨%Õ2DÒ*DÐ*DÝØFÕ0BÐFÐFÐFñ
ô 
ð 	
õ
 Ð&ÝˆuŒ|ÑÔÕ2Ò2Ð2ÝØIÕ2EÐIÐIÐIñ
ô 
ð 	
ð €KØ�K€Dˆ%Ý�e‘”€Jå 
Ñ+Ô+ð "ð "‰
ˆˆUØ�[Ñ ˆØ�!Š8ˆ8ØàÔð 	Øàð 	2�u”~ð 	2­j¸ÀÑ.DÔ.Dð 	2Ý�5˜#˜u j°*Ø˜  u¨q¡yñ2ô 2ð 2ð ˆ5�‰<Œ<ð 	Ø×*Ò*¨4Ñ0Ô0‰KˆD�%Øð ˜˜ EÑ*Ô*ð ¨z¨z¸%Ñ/@Ô/@ð Ø#' 4¨¨t°T¸4Ñ#@Ô#@Ñ �˜&Ø×(Ò(¨¨h¸ÀvÐ(ÑNÔN�à˜v¨Ñ0Ñ0�Ø&¨�e�Øà˜Eˆeˆˆð-"ð "r/   )r   )7Úsqlparser   r   rB   Úsqlparse.exceptionsr   Úsqlparse.utilsr   r   r   r   rã   ÚIntegerÚFloatrª   r}   r‡   r~   r«   r|   ÚPlaceholderr¬   r   r.   r2   r5   r8   r;   r>   rU   rb   rq   r‰   r—   r£   r®   rQ   r±   r³   rµ   r¼   rÄ   rÏ   rÎ   rÛ   rÞ   rá   rå   r…   rð   rõ   rø   rþ   r  rP   rF   r/   r)   ú<module>r     sV  ðð Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'Ð 'ð Ð ð
 Ð àŒx˜œÔ)¨1¬8¬>Ð:€ØŒH�a”h”o q¤x¤Ð7€Ø
Œ&�!”&Ô$Ð	%€ð.0ð .0ð .0ð .0ðb/ð /ð /ð,ð ,ð ,ð%ð %ð %ð#ð #ð #ð$ð $ð $ð&ð &ð &ðGð Gð GðGð Gð Gð(ð ð ð<Gð Gð Gð<Gð Gð Gð"Gð Gð Gð"7ð 7ð 7ð0 	€ˆŒÑÔð>ð >ñ Ôð>ð 	€ˆŒÑÔðGð Gñ ÔðGðEð Eð Eð(7ð 7ð 7ð.6ð 6ð 6ð* 	€ˆŒÑÔð	Að 	Añ Ôð	Að 	€ˆŒÑÔðHð Hñ ÔðHð  	€�„ð	Kð 	Kñ „ð	Kð 	€ˆŒÑÔð>ð >ñ Ôð>ð6 	€ˆŒÑÔðGð Gñ ÔðGð 	€�„ðCð Cñ „ðCð	Hð 	Hð 	Hð!ð !ð !ðJ %�nØ$�nØØØØð/"ð /"ð /"ð /"ð /"ð /"r/   