Files
pyGoEdge-UserPanel/.venv/Lib/site-packages/sqlparse/engine/__pycache__/grouping.cpython-312.pyc

97 lines
24 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
f<> i
9<00><00>(<00>ddlmZddlmZddlmZmZejejjejjfZ
ejejjejjfZejejj fZd<04>Zd<05>Zd<06>Zd<07>Zd<08>Zd <09>Zd
<EFBFBD>Zd <0B>Zd <0C>Zd <0A>Zd<0E>Zd<0F>Zd<10>Zd<11>Zeej@<00>d<12><00>Z!eejD<00>d<13><00>Z#d<14>Z$d<15>Z%d<16>Z&eejN<00>d<17><00>Z(eejR<00>d<18><00>Z*e<05>d<19><00>Z+eejX<00>d<1A><00>Z-eej@<00>d<1B><00>Z.e<05>d<1C><00>Z/d<1D>Z0d<1E>Z1d<1F>d <20>d!d"d"fd#<23>Z2y!)$<24>)<01>sql)<01>tokens)<02>recurse<73>imtc<00><><00>g}d}tt|<00><00>D]<5D>\}}||z
}|jr<01>|jrt ||<01>s t ||<01><00>=|j |j<00>r|j|<06><00>h|j |j<00>s<01><> |j<00>}|}|j|||<08>|||z
z }<03><>y#t$rY<00><>wxYw)z*Groups Tokens that have beginning and end.rN) <0A> enumerate<74>list<73> is_whitespace<63>is_group<75>
isinstance<EFBFBD>_group_matching<6E>match<63>M_OPEN<45>append<6E>M_CLOSE<53>pop<6F>
IndexError<EFBFBD> group_tokens) <09>tlist<73>cls<6C>opens<6E> tidx_offset<65>idx<64>token<65>tidx<64>open_idx<64> close_idxs <20>GE:\Project\pygoedge\.venv\Lib\site-packages\sqlparse/engine/grouping.pyr r s<><00><00> <0E>E<EFBFBD><13>K<EFBFBD><1F><04>U<EFBFBD> <0B>,<2C>
<EFBFBD><03>U<EFBFBD><12>[<5B> <20><04> <10> <1E> <1E> <15> <10>><3E>><3E>*<2A>U<EFBFBD>C<EFBFBD>"8<> <1C>E<EFBFBD>3<EFBFBD> '<27> <14> <16>5<EFBFBD>;<3B>;<3B><03>
<EFBFBD>
<EFBFBD> #<23> <11>L<EFBFBD>L<EFBFBD><14> <1E> <18>U<EFBFBD>[<5B>[<5B>#<23>+<2B>+<2B> &<26> <19> <20>9<EFBFBD>9<EFBFBD>;<3B><08>
<1D>I<EFBFBD> <11> <1E> <1E>s<EFBFBD>H<EFBFBD>i<EFBFBD> 8<> <17>9<EFBFBD>x<EFBFBD>/<2F> /<2F>K<EFBFBD>9-<2D><>,<1E> <19><19> <19>s<00>C <02> C<05>Cc<00>8<00>t|tj<00>y<00>N)r r<00>SquareBrackets<74>rs r<00>group_bracketsr#4s<00><00><13>E<EFBFBD>3<EFBFBD>-<2D>-<2D>.<2E>c<00>8<00>t|tj<00>yr )r r<00> Parenthesisr"s r<00>group_parenthesisr'8s<00><00><13>E<EFBFBD>3<EFBFBD>?<3F>?<3F>+r$c<00>8<00>t|tj<00>yr )r r<00>Caser"s r<00>
group_caser*<s<00><00><13>E<EFBFBD>3<EFBFBD>8<EFBFBD>8<EFBFBD>$r$c<00>8<00>t|tj<00>yr )r r<00>Ifr"s r<00>group_ifr-@s<00><00><13>E<EFBFBD>3<EFBFBD>6<EFBFBD>6<EFBFBD>"r$c<00>8<00>t|tj<00>yr )r r<00>Forr"s r<00> group_forr0Ds<00><00><13>E<EFBFBD>3<EFBFBD>7<EFBFBD>7<EFBFBD>#r$c<00>8<00>t|tj<00>yr )r r<00>Beginr"s r<00> group_beginr3Hs<00><00><13>E<EFBFBD>3<EFBFBD>9<EFBFBD>9<EFBFBD>%r$c<00>Z<00>d<01>}d<02>}d<03>}|x}}t|tj||||<03>y)Nc<00>B<00>|jtjd<01>S)Nz::<3A>r<00>T<> Punctuation<6F>rs rrzgroup_typecasts.<locals>.matchMs<00><00><14>{<7B>{<7B>1<EFBFBD>=<3D>=<3D>$<24>/<2F>/r$c<00>
<00>|duSr <00>r9s r<00>validzgroup_typecasts.<locals>.validP<00> <00><00><14>D<EFBFBD> <20> r$c<00>
<00>||fSr r;<00>r<00>pidxr<00>nidxs r<00>postzgroup_typecasts.<locals>.postS<00> <00><00><13>T<EFBFBD>z<EFBFBD>r$<00><03>_groupr<00>
Identifier<EFBFBD>rrr<rB<00>
valid_prev<EFBFBD>
valid_nexts r<00>group_typecastsrJLs3<00><00>0<>!<21><1A>$<24>#<23>J<EFBFBD><1A>
<EFBFBD>5<EFBFBD>#<23>.<2E>.<2E>%<25><1A>Z<EFBFBD><14>Fr$c<00>X<00>d<01>}d<02>}d<03>}d<04>}t|tj||||<04>y)Nc<00>P<00>|jtjjk(Sr )<04>ttyper7<00>Keyword<72>TZCastr9s rrzgroup_tzcasts.<locals>.match[s<00><00><14>{<7B>{<7B>a<EFBFBD>i<EFBFBD>i<EFBFBD>.<2E>.<2E>.<2E>.r$c<00>
<00>|duSr r;r9s rrHz!group_tzcasts.<locals>.valid_prev^r=r$c<00><><00>|duxrW|jxsI|jtjd<01>xs'|jtj
j <00>S<00>N<>AS)r
rr7rNr<00> TypedLiteralrr9s rrIz!group_tzcasts.<locals>.valid_nextasS<00><00><14>D<EFBFBD> <20>
<EFBFBD> <11> <1F> <1F> 6<><14>{<7B>{<7B>1<EFBFBD>9<EFBFBD>9<EFBFBD>d<EFBFBD>+<2B> 6<><1A>u<EFBFBD>{<7B>{<7B>C<EFBFBD>,<2C>,<2C>4<>4<>5<>
r$c<00>
<00>||fSr r;r?s rrBzgroup_tzcasts.<locals>.posthrCr$rD<00>rrrHrIrBs r<00> group_tzcastsrWZs.<00><00>/<2F>!<21>
<EFBFBD><1A> <0B>5<EFBFBD>#<23>.<2E>.<2E>%<25><1A>Z<EFBFBD><14>Fr$c <00><><00>d<01>}d<02>}d<03>}d<04>}d<05>}d<06>}t|tj||||d<07><08>t|tj||||d <09><08>y)
Nc<00>L<00>t|tjj<00><01>S)N<><01>m)rrrTrr9s rrz"group_typed_literal.<locals>.matchts<00><00><12>5<EFBFBD>C<EFBFBD>,<2C>,<2C>3<>3<>4<>4r$c<00>6<00>t|tj<00>Sr )r rrTr9s r<00>match_to_extendz,group_typed_literal.<locals>.match_to_extendws<00><00><19>%<25><13>!1<>!1<>2<>2r$c<00>
<00>|duSr r;r9s rrHz'group_typed_literal.<locals>.valid_prevzr=r$c<00>\<00>|duxr'|jtjj<00>Sr )rrrTrr9s rrIz'group_typed_literal.<locals>.valid_next}s)<00><00><14>D<EFBFBD> <20>K<>[<5B>U<EFBFBD>[<5B>[<5B>#<23>2B<32>2B<32>2J<32>2J<32>%K<>Kr$c<00>\<00>|duxr'|jtjj<00>Sr )rrrT<00>M_EXTENDr9s r<00> valid_finalz(group_typed_literal.<locals>.valid_final<61>s)<00><00><14>D<EFBFBD> <20>L<>[<5B>U<EFBFBD>[<5B>[<5B>#<23>2B<32>2B<32>2K<32>2K<32>%L<>Lr$c<00>
<00>||fSr r;r?s rrBz!group_typed_literal.<locals>.post<73>rCr$F<><01>extendT)rErrT)rrr]rHrIrbrBs r<00>group_typed_literalrfns^<00><00> 5<>3<>!<21>L<01>M<01><1A> <0B>5<EFBFBD>#<23>"<22>"<22>E<EFBFBD>:<3A>z<EFBFBD> <0F><05><1F>
<EFBFBD>5<EFBFBD>#<23>"<22>"<22>O<EFBFBD>Z<EFBFBD><1B> <0F><04>r$c<00>X<00>d<01>}d<02>}d<03>}d<04>}t|tj||||<04>y)Nc<00><><00>tjdftjdftjdffD]\}}|j||<02>s<01>yy)N<>.z->z->>TF)r7r8<00>Operatorr)rrM<00>values rrzgroup_period.<locals>.match<63>sN<00><00><1F>m<EFBFBD>m<EFBFBD>S<EFBFBD>1<><1F>j<EFBFBD>j<EFBFBD>$<24>/<2F><1F>j<EFBFBD>j<EFBFBD>%<25>0<>2<>L<EFBFBD>E<EFBFBD>5<EFBFBD><15>{<7B>{<7B>5<EFBFBD>%<25>(<28><1B> 2<>
r$c<00><><00>tjtjf}tjtj
j f}t|||<02><01>S<00>N<><02>i<>t)rr!rFr7<00>Name<6D>String<6E>Symbolr<00>r<00>sqlcls<6C>ttypess rrHz group_period.<locals>.valid_prev<65>s;<00><00><14>#<23>#<23>S<EFBFBD>^<5E>^<5E>3<><06><12><16><16><11><18><18><1F><1F>(<28><06><12>5<EFBFBD>F<EFBFBD>f<EFBFBD>-<2D>-r$c<00><00>y<01>NTr;r9s rrIz group_period.<locals>.valid_next<78>s<00><00>r$c<00>(<00>tjtjf}tjtj
j tjtj
jf}|<03>||nd}t|||<05><01>}|r||fS||fSrm)
rr!<00>Functionr7rqrrrs<00>Wildcard<72>Singler)rr@rrArurv<00>next_rIs rrBzgroup_period.<locals>.post<73>so<00><00><14>#<23>#<23>S<EFBFBD>\<5C>\<5C>1<><06><12><16><16><11><18><18><1F><1F>!<21>*<2A>*<2A>a<EFBFBD>h<EFBFBD>h<EFBFBD>o<EFBFBD>o<EFBFBD>E<><06>#<23>/<2F><05>d<EFBFBD> <0B>T<EFBFBD><05><18><15>&<26>F<EFBFBD>3<>
<EFBFBD>)<29><04>d<EFBFBD>|<7C>;<3B><04>d<EFBFBD>|<7C>;r$rDrVs r<00> group_periodr~<00>s.<00><00><15>.<2E>
<14><<3C> <0B>5<EFBFBD>#<23>.<2E>.<2E>%<25><1A>Z<EFBFBD><14>Fr$c<00>X<00>d<01>}d<02>}d<03>}d<04>}t|tj||||<04>y)Nc<00><<00>|jxr|jdk(SrR)<02>
is_keyword<EFBFBD>
normalizedr9s rrzgroup_as.<locals>.match<63>s<00><00><14><1F><1F><<3C>E<EFBFBD>$4<>$4<><04>$<<3C><r$c<00>><00>|jdk(xs |j S)N<>NULL)r<>r<>r9s rrHzgroup_as.<locals>.valid_prev<65>s!<00><00><14><1F><1F>6<EFBFBD>)<29>A<><15>1A<31>1A<31>-A<>Ar$c<00><><00>tjtjtjf}t ||<01><01> xr|duS<00>N<>rp)r7<00>DML<4D>DDL<44>CTEr)rrvs rrIzgroup_as.<locals>.valid_next<78>s4<00><00><12><15><15><01><05><05>q<EFBFBD>u<EFBFBD>u<EFBFBD>$<24><06><16>u<EFBFBD><06>'<27>'<27>=<3D>E<EFBFBD><14>,=<3D>=r$c<00>
<00>||fSr r;r?s rrBzgroup_as.<locals>.post<73>rCr$rDrVs r<00>group_asr<73><00>s/<00><00>=<3D>B<01>><3E><1A> <0B>5<EFBFBD>#<23>.<2E>.<2E>%<25><1A>Z<EFBFBD><14>Fr$c<00>Z<00>d<01>}d<02>}d<03>}|x}}t|tj||||<03>y)Nc<00>B<00>|jtjd<01>S)Nz:=)rr7<00>
Assignmentr9s rrzgroup_assignment.<locals>.match<63>s<00><00><14>{<7B>{<7B>1<EFBFBD><<3C><<3C><14>.<2E>.r$c<00>H<00>|duxr|jtjfvSr )rMr7rNr9s rr<zgroup_assignment.<locals>.valid<69>s!<00><00><14>D<EFBFBD> <20>D<>U<EFBFBD>[<5B>[<5B><11><19><19> <0C>%D<>Dr$c<00>f<00>tjdf}|j||<03><02>\}}|xs|}||fS)N<>;<3B>r[r)r7r8<00> token_next_by)rr@rrA<00> m_semicolon<6F>snidx<64>_s rrBzgroup_assignment.<locals>.post<73>s<<00><00><17>m<EFBFBD>m<EFBFBD>S<EFBFBD>(<28> <0B><18>&<26>&<26><1B>$<24>&<26>?<3F><08><05>q<EFBFBD><14>}<7D><04><04><13>T<EFBFBD>z<EFBFBD>r$)rErr<>rGs r<00>group_assignmentr<74><00>s4<00><00>/<2F>E<01><1A> $<24>#<23>J<EFBFBD><1A>
<EFBFBD>5<EFBFBD>#<23>.<2E>.<2E>%<25><1A>Z<EFBFBD><14>Fr$c <00>*<00><06><07>tjtjtjtjtj
f<05>t tztz<00>d<01>}<01><06>fd<02>}d<03>}|x}}t|tj||||d<04><05>y)Nc<00>P<00>|jtjjk(Sr )rMr7rj<00>
Comparisonr9s rrzgroup_comparison.<locals>.match<63>s<00><00><14>{<7B>{<7B>a<EFBFBD>j<EFBFBD>j<EFBFBD>3<>3<>3<>3r$c<00>`<00><02>t|<00><02><01><01>ry|r|jr|jdk(ryy)N)rproTr<54>F)rr<>r<>rts <20><>rr<zgroup_comparison.<locals>.valid<69>s0<00><><00> <0E>u<EFBFBD><06>&<26> )<29><17> <12>u<EFBFBD>'<27>'<27>E<EFBFBD>,<<3C>,<<3C><06>,F<><17>r$c<00>
<00>||fSr r;r?s rrBzgroup_comparison.<locals>.post<73>rCr$Frd) rr&rzrF<00> OperationrT<00> T_NUMERICAL<41>T_STRING<4E>T_NAMErEr<><00>rrr<rBrHrIrurvs @@r<00>group_comparisonr<6E><00>sq<00><><00><11>o<EFBFBD>o<EFBFBD>s<EFBFBD>|<7C>|<7C>S<EFBFBD>^<5E>^<5E><11>m<EFBFBD>m<EFBFBD>S<EFBFBD>-<2D>-<2D>/<2F>F<EFBFBD> <18>8<EFBFBD> #<23>f<EFBFBD> ,<2C>F<EFBFBD>4<><19><1A>$<24>#<23>J<EFBFBD><1A>
<EFBFBD>5<EFBFBD>#<23>.<2E>.<2E>%<25> <15>z<EFBFBD>4<EFBFBD><05>7r$c<00><><00>tjjtjf}|j |<01><01>\}}|r;|j t j||<02>|j ||<02><02>\}}|r<01>:yy)Nr<4E><00>rpr)r7rrrsrqr<>rrrF)rrvrrs r<00>group_identifierr<72><00>sf<00><00><0F>h<EFBFBD>h<EFBFBD>o<EFBFBD>o<EFBFBD>q<EFBFBD>v<EFBFBD>v<EFBFBD> &<26>F<EFBFBD><17>%<25>%<25><06>%<25>/<2F>K<EFBFBD>D<EFBFBD>%<25>
<0F> <0A><1A><1A>3<EFBFBD>><3E>><3E>4<EFBFBD><14>6<><1B>)<29>)<29>F<EFBFBD><04>)<29>=<3D> <0B><04>e<EFBFBD> r$c<00><><00>|jtjj<00><01>\}}|r<>|j |<01>\}}t |tj tj<00><02>r!|jtj||<03>|jtjj|<01><03>\}}|r<01><>yy)NrZrnr<>)
r<EFBFBD>r<00>Overr<00>
token_nextrr&r7rqr)rrrrAr}s r<00>
group_overr<EFBFBD><00>s<><00><00><17>%<25>%<25><03><08><08><0F><0F>%<25>8<>K<EFBFBD>D<EFBFBD>%<25>
<0F><1B>&<26>&<26>t<EFBFBD>,<2C> <0B><04>e<EFBFBD> <0E>u<EFBFBD><03><0F><0F>1<EFBFBD>6<EFBFBD>6<EFBFBD> 2<> <11> <1E> <1E>s<EFBFBD>x<EFBFBD>x<EFBFBD><14>t<EFBFBD> 4<><1B>)<29>)<29>C<EFBFBD>H<EFBFBD>H<EFBFBD>O<EFBFBD>O<EFBFBD><14>)<29>F<> <0B><04>e<EFBFBD> r$c
<00><00><05><06>tjtjtjf<03>tj
tj jf<02>d<01>}<01><05>fd<02>}d<03>}d<04>}t|tj||||dd<06><07>y)Nc<00>6<00>t|tj<00>Sr )r rr!r9s rrzgroup_arrays.<locals>.match<63>s<00><00><19>%<25><13>!3<>!3<>4<>4r$c<00> <00><02>t|<00><01><02><01>Srm<00>rrts <20><>rrHz group_arrays.<locals>.valid_prev<65>s<00><><00><12>5<EFBFBD>F<EFBFBD>f<EFBFBD>-<2D>-r$c<00><00>yrxr;r9s rrIz group_arrays.<locals>.valid_nexts<00><00>r$c<00>
<00>||fSr r;r?s rrBzgroup_arrays.<locals>.postrCr$TF)rer) rr!rFrzr7rqrrrsrE)rrrHrIrBrurvs @@r<00> group_arraysr<73><00>sg<00><><00> <10> <1F> <1F><13><1E><1E><13><1C><1C> =<3D>F<EFBFBD> <0E>V<EFBFBD>V<EFBFBD>Q<EFBFBD>X<EFBFBD>X<EFBFBD>_<EFBFBD>_<EFBFBD> $<24>F<EFBFBD>5<>.<2E><14><1A> <0B>5<EFBFBD>#<23>.<2E>.<2E>%<25> <15>z<EFBFBD>4<EFBFBD><04>e<EFBFBD>Er$c <00>H<00><06><07>ttztz<00>tjtj
tj tjtjtjf<06>d<01>}<01><06>fd<02>}d<03>}|x}}t|tj||||d<04><05>y)Nc<00>X<00>t|tjtjf<02><01>Sr<>)rr7rjr{r9s rrzgroup_operator.<locals>.matchs<00><00><12>5<EFBFBD>Q<EFBFBD>Z<EFBFBD>Z<EFBFBD><11><1A><1A>4<>5<>5r$c<00>l<00><02>t|<00><01><02><01>xs$|xr |jtjd<02>S)Nrn)<03> CURRENT_DATE<54> CURRENT_TIME<4D>CURRENT_TIMESTAMP)rrr7rNrts <20><>rr<zgroup_operator.<locals>.valids:<00><><00><12>5<EFBFBD>F<EFBFBD>f<EFBFBD>-<2D>H<01><15>G<01>%<25>+<2B>+<2B><11> <09> <09>E<>G<01> Hr$c<00>:<00>tj||_||fSr )r7rjrMr?s rrBzgroup_operator.<locals>.posts<00><00><1D>J<EFBFBD>J<EFBFBD><05>d<EFBFBD> <0B><19><13>T<EFBFBD>z<EFBFBD>r$Frd) r<>r<>r<>rr!r&rzrFr<>rTrEr<>s @@r<00>group_operatorr<72> sz<00><><00> <18>8<EFBFBD> #<23>f<EFBFBD> ,<2C>F<EFBFBD><11> <20> <20>#<23>/<2F>/<2F>3<EFBFBD><<3C><<3C><11>n<EFBFBD>n<EFBFBD>c<EFBFBD>m<EFBFBD>m<EFBFBD>S<EFBFBD>-=<3D>-=<3D>?<3F>F<EFBFBD>6<>H<01> <1A>$<24>#<23>J<EFBFBD><1A>
<EFBFBD>5<EFBFBD>#<23>-<2D>-<2D><15> <15>z<EFBFBD>4<EFBFBD><05>7r$c <00><><00><06><07><08>tjdf<02>tjtjtj
tj tjtjf<06>ttztztjtjtjfz<00>d<02>}<01><06><07>fd<03>}d<04>}|x}}t|tj||||d<05><06>y)N)<02>null<6C>rolec<00>B<00>|jtjd<01>S)N<>,r6r9s rrz$group_identifier_list.<locals>.match*s<00><00><14>{<7B>{<7B>1<EFBFBD>=<3D>=<3D>#<23>.<2E>.r$c<00>"<00><03>t|<00><02><01><03><01>S)N)ror[rpr<>)r<00>m_rolerurvs <20><><EFBFBD>rr<z$group_identifier_list.<locals>.valid-s<00><><00><12>5<EFBFBD>F<EFBFBD>f<EFBFBD><06>7<>7r$c<00>
<00>||fSr r;r?s rrBz#group_identifier_list.<locals>.post0rCr$Trd)r7rNrrzr)rFr<><00>IdentifierListr<74>r<>r<>r<><00>Commentr{rE) rrr<rBrHrIr<>rurvs @@@r<00>group_identifier_listr<74>#s<><00><><00> <0E>Y<EFBFBD>Y<EFBFBD>(<28> (<28>F<EFBFBD><11>l<EFBFBD>l<EFBFBD>C<EFBFBD>H<EFBFBD>H<EFBFBD>c<EFBFBD>n<EFBFBD>n<EFBFBD>c<EFBFBD>n<EFBFBD>n<EFBFBD><11> <20> <20>#<23>-<2D>-<2D>1<>F<EFBFBD><19>H<EFBFBD>$<24>v<EFBFBD>-<2D><12><19><19>A<EFBFBD>I<EFBFBD>I<EFBFBD>q<EFBFBD>z<EFBFBD>z<EFBFBD>2<>3<>F<EFBFBD>/<2F>8<><1A>$<24>#<23>J<EFBFBD><1A>
<EFBFBD>5<EFBFBD>#<23>$<24>$<24>e<EFBFBD> <15>z<EFBFBD>4<EFBFBD><04>6r$c<00>><00>|jtj<00><01>\}}|rx|jd<02>|<01><03>\}}|<04>7|j |d<04><05>\}}|j t j||<03>|jtj|<01><06>\}}|r<01>wyy)Nr<4E>c<00>T<00>t|tj<00><01>xs |jSr<>)rr7r<><00>
is_newline)<01>tks r<00><lambda>z group_comments.<locals>.<lambda>=s<00><00>s<EFBFBD>2<EFBFBD><11><19><19>+<2B><<3C>r<EFBFBD>}<7D>}<7D><r$)rF)<01>skip_wsr<73>)r<>r7r<><00>token_not_matching<6E>
token_prevrr<00>rrr<00>eidx<64>ends r<00>group_commentsr<73>8s<><00><00><17>%<25>%<25><01> <09> <09>%<25>2<>K<EFBFBD>D<EFBFBD>%<25>
<0F><19>,<2C>,<2C> <<3C>$<24>-<2D>H<01> <09><04>c<EFBFBD> <0E>?<3F><1D>(<28>(<28><14>u<EFBFBD>(<28>=<3D>I<EFBFBD>D<EFBFBD>#<23> <11> <1E> <1E>s<EFBFBD>{<7B>{<7B>D<EFBFBD>$<24> 7<><1B>)<29>)<29>A<EFBFBD>I<EFBFBD>I<EFBFBD>4<EFBFBD>)<29>@<40> <0B><04>e<EFBFBD> r$c<00><><00>|jtjj<00><01>\}}|r<>|jtjj|<01><02>\}}|<04>|j
d}n|j |dz
}|j|<04>}|jtj||<03>|jtjj|<01><02>\}}|r<01><>yy)NrZr<><00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) r<>r<00>Whererr<00>_groupable_tokensr<00> token_indexrr<>s r<00> group_wherer<65>Es<><00><00><17>%<25>%<25><03> <09> <09>(8<>(8<>%<25>9<>K<EFBFBD>D<EFBFBD>%<25>
<0F><19>'<27>'<27>#<23>)<29>)<29>*;<3B>*;<3B><14>'<27>F<> <09><04>c<EFBFBD> <0E>;<3B><17>)<29>)<29>"<22>-<2D>C<EFBFBD><17>,<2C>,<2C>t<EFBFBD>a<EFBFBD>x<EFBFBD>(<28>C<EFBFBD><15> <20> <20><13>%<25><04> <0A><1A><1A>3<EFBFBD>9<EFBFBD>9<EFBFBD>d<EFBFBD>D<EFBFBD>1<><1B>)<29>)<29>C<EFBFBD>I<EFBFBD>I<EFBFBD>,<<3C>,<<3C>$<24>)<29>G<> <0B><04>e<EFBFBD> r$c<00><><00>tjtjtjtjtj
tj f}|j|tj<00><01>\}}|rz|j|<02>\}}t|tj<00>r#|jtj||d<02><03>|j|tj|<02><04>\}}|r<01>yyy)NrnTrd)rorpr) rr&rzr)rFr<>r<>r<>r7<00>Numberr<72>r r)r<00>I_ALIASrrrAr}s r<00> group_aliasedr<64>Vs<><00><00><12><EFBFBD><EFBFBD><03> <0C> <0C>c<EFBFBD>h<EFBFBD>h<EFBFBD><03><0E><0E><12>}<7D>}<7D>c<EFBFBD>n<EFBFBD>n<EFBFBD>.<2E>G<EFBFBD><18>%<25>%<25><07>1<EFBFBD>8<EFBFBD>8<EFBFBD>%<25><<3C>K<EFBFBD>D<EFBFBD>%<25>
<0F><1B>&<26>&<26>t<EFBFBD>,<2C> <0B><04>e<EFBFBD> <15>e<EFBFBD>S<EFBFBD>^<5E>^<5E> ,<2C> <11> <1E> <1E>s<EFBFBD>~<7E>~<7E>t<EFBFBD>T<EFBFBD>$<24> <1E> G<><1B>)<29>)<29>G<EFBFBD>q<EFBFBD>x<EFBFBD>x<EFBFBD>T<EFBFBD>)<29>J<> <0B><04>e<EFBFBD> r$c<00><><00>d}d}d}|jD]R}|jj<00>dk(rd}|jj<00>dk(rd}|jdk(s<01>Qd}<03>T|r|r|sy|jtj
<00><06>\}}|r<>|j |<05>\}}t|tj<00>rV|j |<07>\} }
|
rt|
tj<00>r| } n|} |jtj|| <0B>|jtj
|<05><07>\}}|r<01><>yy)NF<4E>CREATET<45>TABLErSr<>r<>) rrk<00>upperr<72>r7rqr<>r rr&r<>rrz) r<00>
has_create<EFBFBD> has_table<6C>has_as<61> tmp_tokenrrrAr}<00>over_idx<64>overr<72>s r<00>group_functionsr<73>cs<00><00><16>J<EFBFBD><15>I<EFBFBD> <12>F<EFBFBD><1A>\<5C>\<5C> <09> <14>?<3F>?<3F> <20> <20> "<22>h<EFBFBD> .<2E><1D>J<EFBFBD> <14>?<3F>?<3F> <20> <20> "<22>g<EFBFBD> -<2D><1C>I<EFBFBD> <14>?<3F>?<3F>d<EFBFBD> "<22><19>F<EFBFBD> "<22><12>i<EFBFBD><06><0E><17>%<25>%<25><01><06><06>%<25>/<2F>K<EFBFBD>D<EFBFBD>%<25>
<0F><1B>&<26>&<26>t<EFBFBD>,<2C> <0B><04>e<EFBFBD> <15>e<EFBFBD>S<EFBFBD>_<EFBFBD>_<EFBFBD> -<2D>"<22>-<2D>-<2D>d<EFBFBD>3<>N<EFBFBD>H<EFBFBD>d<EFBFBD><13>
<EFBFBD>4<EFBFBD><13><18><18>2<><1F><04><1B><04> <11> <1E> <1E>s<EFBFBD>|<7C>|<7C>T<EFBFBD>4<EFBFBD> 8<><1B>)<29>)<29>A<EFBFBD>F<EFBFBD>F<EFBFBD><04>)<29>=<3D> <0B><04>e<EFBFBD> r$c<00><><00>|jtjj<00><01>\}}|r<>|j |<01>\}}t |t jtj<00><02>r#|jt j||<01>|}|jtjj|<01><03>\}}|r<01><>yy)z,Group together Identifier and Asc/Desc tokenr<6E>rnr<>N)
r<EFBFBD>r7rN<00>Orderr<72>rrrFr<>r<00>rrrr@<00>prev_s r<00> group_orderr<72>s<><00><00><18>%<25>%<25><01> <09> <09><0F><0F>%<25>8<>K<EFBFBD>D<EFBFBD>%<25>
<0F><1B>&<26>&<26>t<EFBFBD>,<2C> <0B><04>e<EFBFBD> <0E>u<EFBFBD><03><0E><0E>!<21>(<28>(<28> 3<> <11> <1E> <1E>s<EFBFBD>~<7E>~<7E>t<EFBFBD>T<EFBFBD> :<3A><17>D<EFBFBD><1B>)<29>)<29>A<EFBFBD>I<EFBFBD>I<EFBFBD>O<EFBFBD>O<EFBFBD><14>)<29>F<> <0B><04>e<EFBFBD> r$c<00>D<00>|jtj<00><01>\}}|r{|j|<01>\}}t |tj
<00>r%|j tj
||d<02><03>|}|jtj|<01><04>\}}|r<01>zyy)N)roTrd)ror)r<>rr<>r<>r <00> TokenListrr<>s r<00>align_commentsr<73><00>s<><00><00><17>%<25>%<25><03> <0B> <0B>%<25>4<>K<EFBFBD>D<EFBFBD>%<25>
<0F><1B>&<26>&<26>t<EFBFBD>,<2C> <0B><04>e<EFBFBD> <15>e<EFBFBD>S<EFBFBD>]<5D>]<5D> +<2B> <11> <1E> <1E>s<EFBFBD>}<7D>}<7D>d<EFBFBD>D<EFBFBD><14> <1E> F<><17>D<EFBFBD><1B>)<29>)<29>C<EFBFBD>K<EFBFBD>K<EFBFBD>T<EFBFBD>)<29>B<> <0B><04>e<EFBFBD> r$c<00><00>|jtjdf<02><02>\}}|}d}|r3t|tj
<00>r|}|j |<01>\}}|r<01>3|dk7r$|jtj||d<04><05>yy)N<>VALUESrZr<>Trd) r<>r7rNr rr&r<>r<00>Values)rrr<00> start_idx<64>end_idxs r<00> group_valuesr<73><00>s<><00><00><17>%<25>%<25><11><19><19>H<EFBFBD>(=<3D>%<25>><3E>K<EFBFBD>D<EFBFBD>%<25><14>I<EFBFBD><10>G<EFBFBD>
<0F> <15>e<EFBFBD>S<EFBFBD>_<EFBFBD>_<EFBFBD> -<2D><1A>G<EFBFBD><1B>&<26>&<26>t<EFBFBD>,<2C> <0B><04>e<EFBFBD> <10><0F>"<22>}<7D> <0A><1A><1A>3<EFBFBD>:<3A>:<3A>y<EFBFBD>'<27>$<24><1A>G<>r$c<00><00>tttttt
t tttttttttt t"t$t&t(t*t,t.t0fD]
}||<00><00> |Sr )r<>r#r'r*r-r0r3r<>r<>r<>r~r<>r<>r<>rJrWrfr<>r<>r<>r<>r<>r<>r<>r<>)<02>stmt<6D>funcs r<00>groupr<70><00>sl<00><00><16> <17><19><12><10><11><13><12><17><13><14><14><18><13><17><15><1B><16><18><10><15><18><16><1D><14>;<06><04>> <0A>T<EFBFBD>
<EFBFBD>?<06>@ <10>Kr$c<00><00>yrxr;r<>s rr<>r<><00><00><00><00>r$c<00><00>yrxr;r<>s rr<>r<><00>r<>r$NTc
<00><><00>d}d\} }
tt|<00><00>D]<5D>\} } | |z
} | dkr<01>| jr<01>|r)| jrt | |<01>st | ||||||<06>|| <0C>rV|j | <0A>\}}|
r@||
<EFBFBD>r8||<0F>r0||| | |<0E>\}}|j||||<06><03>}|||z
z }||}
} <09><>| | }
} <09><>y)zDGroups together tokens that are joined by a middle token. i.e. x < yr)NNrdN)rr r
r r rEr<>r)rrrrHrIrBrerrr@r<>rrrrAr}<00>from_idx<64>to_idx<64>grps rrErE<00>s<><00><00><14>K<EFBFBD><1C>K<EFBFBD>D<EFBFBD>%<25><1F><04>U<EFBFBD> <0B>,<2C>
<EFBFBD><03>U<EFBFBD><12>[<5B> <20><04> <0F>!<21>8<EFBFBD> <14> <10> <1E> <1E> <14> <12>u<EFBFBD>~<7E>~<7E>j<EFBFBD><15><03>.D<> <12>5<EFBFBD>#<23>u<EFBFBD>j<EFBFBD>*<2A>d<EFBFBD>F<EFBFBD> K<> <10><15><<3C><1F>*<2A>*<2A>4<EFBFBD>0<>K<EFBFBD>D<EFBFBD>%<25><14><1A>E<EFBFBD>*<2A>z<EFBFBD>%<25>/@<40>#'<27><05>t<EFBFBD>T<EFBFBD>4<EFBFBD>#@<40> <20><08>&<26><1B>(<28>(<28><13>h<EFBFBD><06>v<EFBFBD>(<28>N<><03><1B>v<EFBFBD><08>0<>0<> <0B>&<26><03>e<EFBFBD><04><18><1A>E<EFBFBD>e<EFBFBD><04>+-r$)3<>sqlparserrr7<00>sqlparse.utilsrrr<><00>Integer<65>Floatr<74>rrr|rsr<>rq<00> Placeholderr<72>r r#r'r*r-r0r3rJrWrfr~r<>r<>r<>rFr<>r<>r<>r<>r<>r<>r<>r<>r<>r<>r<>rzr<>r<>r<>r<>r<>rEr;r$r<00><module>rs<><00><01><19> <20>'<27><10>x<EFBFBD>x<EFBFBD><11><18><18>)<29>)<29>1<EFBFBD>8<EFBFBD>8<EFBFBD>><3E>><3E>:<3A> <0B> <0A>H<EFBFBD>H<EFBFBD>a<EFBFBD>h<EFBFBD>h<EFBFBD>o<EFBFBD>o<EFBFBD>q<EFBFBD>x<EFBFBD>x<EFBFBD><EFBFBD><EFBFBD> 7<><08>
<0B>&<26>&<26>!<21>&<26>&<26>$<24>$<24> %<25><06> 0<>F/<2F>,<2C>%<25>#<23>$<24>&<26> G<01>G<01>(<1E><G<01><G<01>"G<01>"7<>0 <09><13><1E><1E><18>><3E><19>><3E> <09><13><18><18><12>G<01><13>G<01>E<01>(7<>.6<>* <09><13><1B><1B><15> A<01><16> A<01> <09><13><19><19><13> H<01><14> H<01>  <09><19> K<01> <0B> K<01> <09><13><1C><1C><16>><3E><17>><3E>6 <09><13><1E><1E><18>G<01><19>G<01> <09><19>C<01> <0B>C<01> H<01>!<10>J%<25>$<24><14><16><17> "r$