Ë
    î%9j™>  ã                   ó@  — 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jH                  «      d„ «       Z% eejL                  «      d„ «       Z'd„ Z(d„ Z)d„ Z* eejV                  «      d„ «       Z, eejZ                  «      d„ «       Z. e«       d„ «       Z/ eej`                  «      d„ «       Z1 eejH                  «      d„ «       Z2 e«       d„ «       Z3d „ Z4d!„ Z5d"„ d#„ d$d%d%d fd&„Z6y$)(é    )Úsql)Útokens)ÚSQLParseError)ÚrecurseÚimtéd   i'  c                 óp  — t         �|t         kD  rt        dt         › d�«      ‚t        �/t        | j                  «      t        kD  rt        dt        › d�«      ‚g }d}t        | «      }t        |«      D ]³  \  }}||z
  }|j                  rŒ|j                  rt        ||«      st        |||dz   «       ŒA |j                  |j                  Ž r|j                  |«       Œl |j                  |j                  Ž sŒ†	 |j                  «       }	|}
| j#                  ||	|
«       ||
|	z
  z  }Œµ y# t         $ r Y ŒÂw xY w)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              úT/var/www/html/truck-me/venv/lib/python3.12/site-packages/sqlparse/engine/grouping.pyr   r      sH  € äÐ%¨%Ô2DÒ*DÜØ/Ô0BÐ/CÀ2ÐFó
ð 	
ô
 Ð&Üˆu�|‰|ÓÔ2Ò2ÜØ1Ô2EÐ1FÀbÐIó
ð 	
ð €EØ€KÜ�e“€Jä 
Ó+ò 0‰
ˆˆUØ�[Ñ ˆà×Òð à�>Š>¤*¨U°CÔ"8ô ˜E 3¨°©	Ô2Øàˆ5�;‰;˜Ÿ
™
Ñ#Ø�L‰L˜ÕàˆU�[‰[˜#Ÿ+™+Ò&ðØ Ÿ9™9›;�ð
 ˆIØ×Ñ˜s H¨iÔ8Ø˜9 xÑ/Ñ/‰Kñ90øô, ò ñ ðús   Ã9D)Ä)	D5Ä4D5c                 ó8   — t        | t        j                  «       y ©N)r   r   ÚSquareBrackets©r   s    r)   Úgroup_bracketsr.   L   s   € Ü�Eœ3×-Ñ-Õ.ó    c                 ó8   — t        | t        j                  «       y r+   )r   r   ÚParenthesisr-   s    r)   Úgroup_parenthesisr2   P   s   € Ü�Eœ3Ÿ?™?Õ+r/   c                 ó8   — t        | t        j                  «       y r+   )r   r   ÚCaser-   s    r)   Ú
group_caser5   T   s   € Ü�Eœ3Ÿ8™8Õ$r/   c                 ó8   — t        | t        j                  «       y r+   )r   r   ÚIfr-   s    r)   Úgroup_ifr8   X   s   € Ü�Eœ3Ÿ6™6Õ"r/   c                 ó8   — t        | t        j                  «       y r+   )r   r   ÚForr-   s    r)   Ú	group_forr;   \   s   € Ü�Eœ3Ÿ7™7Õ#r/   c                 ó8   — t        | t        j                  «       y r+   )r   r   ÚBeginr-   s    r)   Úgroup_beginr>   `   s   € Ü�Eœ3Ÿ9™9Õ%r/   c                 óZ   — d„ }d„ }d„ }|x}}t        | t        j                  ||||«       y )Nc                 óB   — | j                  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   s3   € ò0ò!òð $Ð#€J�Ü
ˆ5”#—.‘. %¨°ZÀÕFr/   c                 óX   — d„ }d„ }d„ }d„ }t        | t        j                  ||||«       y )Nc                 óP   — | j                   t        j                  j                  k(  S r+   )ÚttyperB   ÚKeywordÚTZCastrD   s    r)   r   zgroup_tzcasts.<locals>.matchs   s   € Ø�{‰{œaŸi™i×.Ñ.Ñ.Ð.r/   c                 ó
   — | d uS r+   rF   rD   s    r)   rS   z!group_tzcasts.<locals>.valid_prevv   rH   r/   c                 ó¼   — | d uxrW | j                   xsI | j                  t        j                  d«      xs'  | j                  t        j
                  j                  Ž S ©NÚAS)r   r   rB   rY   r   ÚTypedLiteralr   rD   s    r)   rT   z!group_tzcasts.<locals>.valid_nexty   sS   € Ø˜DÐ ò 
Ø×Ñò 6Ø�{‰{œ1Ÿ9™9 dÓ+ò6àˆu�{‰{œC×,Ñ,×4Ñ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ÀÕFr/   c           	      ó¨   — d„ }d„ }d„ }d„ }d„ }d„ }t        | t        j                  ||||d¬«       t        | t        j                  ||||d	¬«       y )
Nc                 óL   — 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Ñ3Ô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Ñ!1Ó2Ð2r/   c                 ó
   — | d uS r+   rF   rD   s    r)   rS   z'group_typed_literal.<locals>.valid_prev’   rH   r/   c                 ó\   — | d uxr'  | 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Ñ2B×2JÑ2JÐ%KÐKr/   c                 ó\   — | d uxr'  | 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Ñ2B×2KÑ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ò3ò!òLòMòô ˆ5”#×"Ñ" E¨:°zØ˜õä
ˆ5”#×"Ñ" O°ZÀØ˜ör/   c                 óX   — d„ }d„ }d„ }d„ }t        | t        j                  ||||«       y )Nc                 ó¦   — t         j                  dft         j                  dft         j                  dffD ]  \  }}| j                  ||«      sŒ y y)Nú.z->z->>TF)rB   rC   ÚOperatorr   )r%   rX   Úvalues      r)   r   zgroup_period.<locals>.match¥   sS   € ÜŸm™m¨SÐ1ÜŸj™j¨$Ð/ÜŸj™j¨%Ð0ð2ò 	‰LˆE�5ð �{‰{˜5 %Õ(Ùð		ð
 r/   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­   s;   € Ü×#Ñ#¤S§^¡^Ð3ˆÜ—‘œŸ™Ÿ™Ð(ˆÜ�5˜F fÔ-Ð-r/   c                  ó   — y©NTrF   rD   s    r)   rT   z group_period.<locals>.valid_next²   s   € àr/   c                 ó(  — t         j                  t         j                  f}t        j                  t        j
                  j                  t        j                  t        j
                  j                  f}|�| |   nd }t        |||¬«      }|r||fS ||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¶   so   € ä×#Ñ#¤S§\¡\Ð1ˆÜ—‘œŸ™Ÿ™¬!¯*©*´a·h±h·o±oÐEˆØ#Ð/��d’°TˆÜ˜ &¨FÔ3ˆ
á)��dˆ|Ð;°°d¨|Ð;r/   rO   ra   s        r)   Úgroup_periodr‰   ¤   s.   € òò.ò
ò<ô ˆ5”#—.‘. %¨°ZÀÕFr/   c                 óX   — d„ }d„ }d„ }d„ }t        | t        j                  ||||«       y )Nc                 ó<   — | j                   xr | j                  dk(  S r]   )Ú
is_keywordÚ
normalizedrD   s    r)   r   zgroup_as.<locals>.matchÃ   s   € Ø×ÑÒ< E×$4Ñ$4¸Ñ$<Ð<r/   c                 ó>   — | j                   dk(  xs | j                   S )NÚNULL)r�   rŒ   rD   s    r)   rS   zgroup_as.<locals>.valid_prevÆ   s!   € Ø×Ñ 6Ñ)ÒA°×1AÑ1AÐ-AÐAr/   c                 óˆ   — t         j                  t         j                  t         j                  f}t	        | |¬«       xr | d uS ©N©r{   )rB   ÚDMLÚDDLÚCTEr   )r%   r�   s     r)   rT   zgroup_as.<locals>.valid_nextÉ   s4   € Ü—‘œŸ™œqŸu™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—   Â   s/   € ò=òBò>òô ˆ5”#—.‘. %¨°ZÀÕFr/   c                 óZ   — d„ }d„ }d„ }|x}}t        | t        j                  ||||«       y )Nc                 óB   — | j                  t        j                  d«      S )Nz:=)r   rB   Ú
AssignmentrD   s    r)   r   zgroup_assignment.<locals>.matchÔ   s   € Ø�{‰{œ1Ÿ<™<¨Ó.Ð.r/   c                 óH   — | d uxr | 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                 óf   — t         j                  df}| j                  ||¬«      \  }}|xs |}||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‘m SÐ(ˆØ×&Ñ&¨¸$Ð&Ó?‰ˆˆqØŠ}˜ˆØ�TˆzÐr/   )rP   r   rš   rR   s         r)   Úgroup_assignmentr£   Ó   s4   € ò/òEòð $Ð#€J�Ü
ˆ5”#—.‘. %¨°ZÀÕ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¬«       y )Nc                 óP   — | j                   t        j                  j                  k(  S r+   )rX   rB   ru   Ú
ComparisonrD   s    r)   r   zgroup_comparison.<locals>.matché   s   € Ø�{‰{œaŸj™j×3Ñ3Ñ3Ð3r/   c                 ó`   •— t        | ‰‰¬«      ry| r| j                  r| j                  dk(  ryy)N)r{   rz   Tr�   F)r   rŒ   r�   r   s    €€r)   rG   zgroup_comparison.<locals>.validì   s0   ø€ Üˆu˜ &Õ)ØÙ�u×'Ò'¨E×,<Ñ,<ÀÒ,FØàr/   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®   ä   sq   ù€ Ü�o‰oœsŸ|™|¬S¯^©^Ü�m‰mœS×-Ñ-ð/€Fäœ8Ñ#¤fÑ,€Fò4õòð $Ð#€J�Ü
ˆ5”#—.‘. %Ø�z 4°ö7r/   c                 óü   — t         j                  j                  t         j                  f}| j	                  |¬«      \  }}|r;| j                  t        j                  ||«       | j	                  ||¬«      \  }}|rŒ:y y )Nr’   ©r{   r$   )rB   r}   r~   r|   rŸ   r   r   rQ   )r   r�   r&   r%   s       r)   Úgroup_identifierr±   ü   sf   € ä�h‰h�o‰oœqŸv™vÐ&€Fà×%Ñ%¨Ð%Ó/�K€Dˆ%Ù
Ø×Ñœ3Ÿ>™>¨4°Ô6Ø×)Ñ)¨F¸Ð)Ó=‰ˆˆeô r/   c                 ó„  — | j                  t        j                  j                  ¬«      \  }}|r‘| j	                  |«      \  }}t        |t        j                  t        j                  ¬«      r!| j                  t        j                  ||«       | j                  t        j                  j                  |¬«      \  }}|rŒ�y y )Nre   ry   rž   )
rŸ   r   ÚOverr   Ú
token_nextr   r1   rB   r|   r   )r   r&   r%   rL   rˆ   s        r)   Ú
group_overrµ     sˆ   € à×%Ñ%¬¯©¯©Ð%Ó8�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜˆuœŸ™¬1¯6©6Õ2Ø×ÑœsŸx™x¨¨tÔ4Ø×)Ñ)¬C¯H©H¯O©OÀÐ)ÓF‰ˆˆeô	 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¬«       y )Nc                 ó6   — t        | t        j                  «      S r+   )r   r   r,   rD   s    r)   r   zgroup_arrays.<locals>.match  s   € Ü˜%¤×!3Ñ!3Ó4Ð4r/   c                 ó    •— t        | ‰‰¬«      S rx   ©r   r   s    €€r)   rS   z group_arrays.<locals>.valid_prev  s   ø€ Ü�5˜F fÔ-Ð-r/   c                  ó   — yrƒ   rF   rD   s    r)   rT   z group_arrays.<locals>.valid_next  s   € Ør/   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¼     sg   ù€ Ü×Ñ¤§¡´·±Ð=€FÜ�V‰V”Q—X‘X—_‘_Ð$€Fò5õ.òòô ˆ5”#—.‘. %Ø�z 4°¸eöEr/   c           	      óH  ‡‡— 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¬«       y )Nc                 óX   — 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™Z¬¯©Ð4Ô5Ð5r/   c                 ól   •— t        | ‰‰¬«      xs$ | xr  | j                  t        j                  d«      S )Nry   )ÚCURRENT_DATEÚCURRENT_TIMEÚCURRENT_TIMESTAMP)r   r   rB   rY   r   s    €€r)   rG   zgroup_operator.<locals>.valid,  s:   ø€ Ü�5˜F fÔ-ò HØò G˜%Ÿ+™+Ü—	‘	ØEóGð	Hr/   c                 ó:   — t         j                  | |   _        ||fS r+   )rB   ru   rX   rJ   s       r)   rM   zgroup_operator.<locals>.post2  s   € ÜŸJ™Jˆˆd‰ÔØ�TˆzÐr/   Fro   )rª   r«   r¬   r   r,   r1   r…   rQ   r©   r_   rP   r­   s         @@r)   Úgroup_operatorrÄ   $  sz   ù€ Üœ8Ñ#¤fÑ,€FÜ× Ñ ¤#§/¡/´3·<±<Ü�n‰nœcŸm™m¬S×-=Ñ-=ð?€Fò6õHòð $Ð#€J�Ü
ˆ5”#—-‘- Ø�z 4°ö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¬«       y )N)ÚnullÚrolec                 óB   — | j                  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Ð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‰YÐ(Ð(€FÜ�l‰lœCŸH™H¤c§n¡n´c·n±nÜ× Ñ ¤#§-¡-ð1€FäœHÑ$¤vÑ-Ü—‘œAŸI™I¤q§z¡zÐ2ñ3€Fò/ö8òð $Ð#€J�Ü
ˆ5”#×$Ñ$ eØ�z 4°ö6r/   c                 ó>  — | j                  t        j                  ¬«      \  }}|rx| j                  d„ |¬«      \  }}|�7| j	                  |d¬«      \  }}| j                  t        j                  ||«       | j                  t        j                  |¬«      \  }}|rŒwy y )Nr’   c                 óT   — t        | t        j                  ¬«      xs | 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�K€Dˆ%Ù
Ø×,Ñ,Ù<À$ð -ó H‰	ˆˆcàˆ?Ø×(Ñ(¨°uÐ(Ó=‰IˆD�#Ø×ÑœsŸ{™{¨D°$Ô7à×)Ñ)¬A¯I©I¸4Ð)Ó@‰ˆˆeô r/   c                 óÎ  — | j                  t        j                  j                  ¬«      \  }}|r¶| j                  t        j                  j                  |¬«      \  }}|€| j
                  d   }n| j                  |dz
     }| j                  |«      }| j                  t        j                  ||«       | j                  t        j                  j                  |¬«      \  }}|rŒµy y )Nre   rž   éÿÿÿÿr   )	rŸ   r   ÚWherer   r   Ú_groupable_tokensr   Útoken_indexr   rØ   s        r)   Úgroup_whererá   ]  sÀ   € à×%Ñ%¬¯	©	×(8Ñ(8Ð%Ó9�K€Dˆ%Ù
Ø×'Ñ'¬#¯)©)×*;Ñ*;ÀÐ'ÓF‰	ˆˆcàˆ;Ø×)Ñ)¨"Ñ-‰Cà—,‘,˜t a™xÑ(ˆCð × Ñ  Ó%ˆØ×Ñœ3Ÿ9™9 d¨DÔ1Ø×)Ñ)¬C¯I©I×,<Ñ,<À$Ð)ÓG‰ˆˆeô r/   c                 óü  — t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  f}| j                  |t        j                  ¬«      \  }}|rz| j                  |«      \  }}t        |t         j                  «      r#| j                  t         j                  ||d¬«       | j                  |t        j                  |¬«      \  }}|rŒyy y )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©h¼¿¹Ü�}‰}œcŸn™nð.€Gð ×%Ñ%¨´1·8±8Ð%Ó<�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜ�eœSŸ^™^Ô,Ø×ÑœsŸ~™~¨t°TÀ$ÐÔGØ×)Ñ)¨G´q·x±xÀTÐ)ÓJ‰ˆˆeô	 r/   c                 ó‚  — d}d}d}| j                   D ]R  }|j                  j                  «       dk(  rd}|j                  j                  «       dk(  rd}|j                  dk(  sŒQd}ŒT |r|r|sy | j                  t        j
                  ¬«      \  }}|r¬| j                  |«      \  }}t        |t        j                  «      rV| j                  |«      \  }	}
|
rt        |
t        j                  «      r|	}n|}| j                  t        j                  ||«       | j                  t        j
                  |¬«      \  }}|rŒ«y y )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ð   {  s  € à€JØ€IØ€FØ—\‘\ò ˆ	Ø�?‰?× Ñ Ó" hÒ.ØˆJØ�?‰?× Ñ Ó" gÒ-ØˆIØ�?‰?˜dÓ"Ø‰Fðñ ‘i©Øà×%Ñ%¬¯©Ð%Ó/�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜ�eœSŸ_™_Ô-Ø"×-Ñ-¨dÓ3‰NˆH�dÙœ
 4¬¯©Ô2Ø‘à�Ø×ÑœsŸ|™|¨T°4Ô8Ø×)Ñ)¬A¯F©F¸Ð)Ó=‰ˆˆeô r/   c                 óˆ  — | j                  t        j                  j                  ¬«      \  }}|r“| j	                  |«      \  }}t        |t        j                  t        j                  ¬«      r#| j                  t        j                  ||«       |}| j                  t        j                  j                  |¬«      \  }}|rŒ’yy)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�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜˆuœŸ™¬!¯(©(Õ3Ø×ÑœsŸ~™~¨t°TÔ:ØˆDØ×)Ñ)¬A¯I©I¯O©OÀÐ)ÓF‰ˆˆeô r/   c                 óD  — | j                  t        j                  ¬«      \  }}|r{| j                  |«      \  }}t	        |t        j
                  «      r%| j                  t        j
                  ||d¬«       |}| j                  t        j                  |¬«      \  }}|rŒzy y )N)rz   Tro   )rz   r$   )rŸ   r   rÎ   r×   r   Ú	TokenListr   ró   s        r)   Úalign_commentsrø   £  s„   € à×%Ñ%¬¯©Ð%Ó4�K€Dˆ%Ù
Ø×&Ñ& tÓ,‰ˆˆeÜ�eœSŸ]™]Ô+Ø×ÑœsŸ}™}¨d°DÀÐÔFØˆDØ×)Ñ)¬C¯K©K¸TÐ)ÓB‰ˆˆeô r/   c                 ó  — | j                  t        j                  df¬«      \  }}|}d}|r3t        |t        j
                  «      r|}| j                  |«      \  }}|rŒ3|dk7  r$| j                  t        j                  ||d¬«       y y )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ð r/   c                 ó  — 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  º  sq   € äô 	ÜÜÜÜÜäÜÜÜÜÜÜÜÜÜÜÜÜÜÜäÜÜð;ò ˆñ> 	ˆT�
ð?ð@ €Kr/   c                  ó   — yrƒ   rF   r’   s    r)   rÔ   rÔ   ß  ó   � r/   c                  ó   — yrƒ   rF   r’   s    r)   rÔ   rÔ   à  r  r/   NTc	                 óP  — t         �|t         kD  rt        dt         › d�«      ‚t        �/t        | j                  «      t        kD  rt        dt        › d�«      ‚d}	d\  }
}t        | «      }t        |«      D ]¯  \  }}||	z
  }|dk  rŒ|j                  rŒ|r.|j                  r"t        ||«      st        |||||||d|dz   «	        ||«      rV| j                  |«      \  }}|r@ ||«      r8 ||«      r0 || |
||«      \  }}| j                  ||||¬	«      }|	||z
  z  }	||}}
Œ¬||}}
Œ± y)
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   Þ  sd  € ô Ð%¨%Ô2DÒ*DÜØ/Ô0BÐ/CÀ2ÐFó
ð 	
ô
 Ð&Üˆu�|‰|ÓÔ2Ò2ÜØ1Ô2EÐ1FÀbÐIó
ð 	
ð €KØ�K€Dˆ%Ü�e“€Jä 
Ó+ò "‰
ˆˆUØ�[Ñ ˆØ�!Š8Øà×ÒØá�u—~’~¬j¸ÀÔ.DÜ�5˜#˜u j°*Ø˜  u¨q¡yô2ñ �Œ<Ø×*Ñ*¨4Ó0‰KˆD�%Ù™ EÔ*©z¸%Ô/@Ù#'¨¨t°T¸4Ó#@Ñ �˜&Ø×(Ñ(¨¨h¸ÀvÐ(Ó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     sä  ðõ Ý  Ý -ß 'ð Ð ð
 Ð à�x‰x˜Ÿ™×)Ñ)¨1¯8©8¯>©>Ð:€Ø�H‰H�a—h‘h—o‘o q§x¡x§¡Ð7€Ø
�&‰&�!—&‘&×$Ñ$Ð	%€ó.0òb/ò,ò%ò#ò$ò&òGòGò(ò<Gò<Gò"Gò"7ñ0 	ˆ�‰Óñ>ó ð>ñ 	ˆ�‰ÓñGó ðGòEò(7ò.6ñ* 	ˆ�‰Óñ	Aó ð	Añ 	ˆ�‰ÓñHó ðHñ  	ƒñ	Kó ð	Kñ 	ˆ�‰Óñ>ó ð>ñ6 	ˆ�‰ÓñGó ðGñ 	ƒñCó ðCò	Hò!ñJ %Ù$ØØØØô/"r/   