Ë
    ìmxip'  ã                   óü  — 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 e j                  j                   Zd„ Ze j                  j'                  ddddgd	d
gdœfdddgddgdœfddgdgdœfddgdgdœfdddgd	d
gddgddgdœfdg d¢g d¢g d¢g d¢dœfdg d¢g d¢g d¢g d ¢dœfd!g d"¢g d#¢g d$¢g d%¢dœfg«      e j                  j'                  d&d'd(g«      e j                  j'                  d)d'd(g«      e j                  j'                  d*d( e j(                  d'e j                  j                  ¬+«      g«      d,„ «       «       «       «       Zd-„ Zd.„ Zd/„ Zd0„ Zd1„ Zd2„ Zd3„ Zd4„ Zy# e$ r Y �ŒRw xY w# e$ r Y �ŒUw xY w)5é    Né   )ÚIntegerType)Ú_perform_joinÚ_filter_tablec                  ó  — t         j                  j                  g d¢g d¢dœ«      } t         j                  j                  g d¢g d¢dœ«      }t        j                  t         j
                  «      5  t        d| d|d«       d d d «       t        j                  t        «      5  t        dd d	|d
«       d d d «       t        j                  t        «      5  t        d| d	|d
«       d d d «       y # 1 sw Y   ŒlxY w# 1 sw Y   ŒGxY w# 1 sw Y   y xY w)N)r   é   é   é   é   é   )ÚaÚbÚcÚdÚeÚf©ÚcolAÚcol2©r   r   r	   r
   r   )ÚAÚBÚCÚDÚE©ÚcolBÚcol3ú
left outerÚ r   r   zsuper mario join)	ÚpaÚTableÚfrom_pydictÚpytestÚraisesÚArrowInvalidr   Ú	TypeErrorÚ
ValueError)Út1Út2s     úS/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/test_exec_plan.pyÚtest_joins_corner_casesr,   $   sê   € Ü	�‰×	Ñ	Ú"Ú.ñó 
€Bô
 
�‰×	Ñ	ÚÚ)ñó 
€Bô
 
�‰”r—‘Ó	'ñ 4Ü�l B¨¨B°Ô3÷4ô 
�‰”yÓ	!ñ >Ü�l D¨&°"°fÔ=÷>ô 
�‰”zÓ	"ñ BÜÐ(¨"¨f°b¸&ÔA÷Bð B÷4ð 4ú÷>ð >ú÷Bð Bús$   Á0C+Â!C7ÃDÃ+C4Ã7D ÄDzjointype,expectedz	left semir   r   r   r   z
right semir   r   r   z	left antir   r   z
right antiéc   ÚZÚinner)r   r   r   r   r   ©r   r   r   ©r   r   r   )r   r   N)r   r   Núright outer)r   r   N)r   r   r-   )r   r   r.   ú
full outer©r   r   r   N©r   r   r   N©r   r   Nr-   ©r   r   Nr.   Úuse_threadsTFÚcoalesce_keysÚuse_datasets)Úmarksc           	      óz  — t        j                  |«      }t         j                  j                  g d¢g d¢dœ«      }t         j                  j                  g d¢g d¢dœ«      }|r,t	        j
                  |g«      }t	        j
                  |g«      }t        | |d|d||¬	«      }|j                  «       }d
| v r|j                  d«      }n|j                  d«      }|rZ| dv r|j                  dg«      }nC| dk(  r|j                  dg«      }n+| dk(  r&|j                  dg«      j                  ddg d¢g«      }||k(  sJ ‚y )Nr0   r1   r   ©r-   r   r   ©r.   r   r   r   r   r   )r8   r9   Úright)r/   r   r2   r3   r   ©r   r   r   r-   )r!   Útabler"   r#   ÚdsÚdatasetr   Úcombine_chunksÚsort_byÚdropÚ
set_column)ÚjointypeÚexpectedr8   r9   r:   r)   r*   Úrs           r+   Ú
test_joinsrK   9   s-  € ôb �x‰x˜Ó!€Hä	�‰×	Ñ	ÚÚñó 
€Bô
 
�‰×	Ñ	ÚÚñó 
€Bñ
 Ü�Z‰Z˜˜ÓˆÜ�Z‰Z˜˜Óˆä�h  F¨B°Ø"-¸]ô	L€Aà	×ÑÓ€AØ�(ÑØ�I‰I�fÓ‰à�I‰I�fÓˆÙØÐ.Ñ.Ø—}‘} f XÓ.‰HØ˜Ò&Ø—}‘} f XÓ.‰HØ˜Ò%Ø—}‘} f XÓ.×9Ñ9¸!¸VÂmÀ_ÓUˆHØ�Š=Ð‰=ó    c                  óÚ  — t        j                  g d¢g d¢g d¢dœ«      } t        j                  g d¢g d¢g d¢g d¢d	œ«      }t        d
| ddg|ddg«      }|j                  «       }|j	                  d«      }|t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d¢gg d¢¬«      k(  sJ ‚t        d
| d|ddd¬«      }|j                  «       }|j	                  d«      }|t        j                  g d¢g d¢g d¢g d¢g d¢g d¢g d ¢d!œ«      k(  sJ ‚t        d
| d|ddd"¬«      }|j                  «       }|j	                  d«      }|t        j                  g d#¢g d¢g d¢g d¢g d¢g d¢d$œ«      k(  sJ ‚y )%Nr0   ©é
   é   é<   r1   ©r   r   ÚcolVals)r-   rP   rO   r>   )éd   éÈ   é,  r=   )r   rS   ÚcolUniqr   r3   r   r   rW   )Nr   r   r   )NrP   rO   rQ   )Nr   r   r   )r-   rP   rO   N)r.   r   r   N)rT   rU   rV   N)r-   r   r   N)r   r   rS   r   rS   rW   r   )ÚnamesÚ_rF)Úright_suffixr9   r4   ©rO   rP   rQ   Nr5   )rO   rP   Nr-   r7   )rV   rU   NrT   r6   )r   r   rS   ÚcolB_rÚ	colVals_rrW   ÚcolA_rTr@   )r   r   rS   r\   r]   rW   ©r!   rA   r   rD   rE   ©r)   r*   Úresults      r+   Útest_table_join_collisionsrb   ‹   s�  € Ü	�‰ÚÚÚ"ñó 
€Bô 
�‰ÚÚ"Ú"Úñ	ó 
€Bô Ø�b˜6 6Ð*¨B°¸Ð0@óB€Fà×"Ñ"Ó$€FØ�^‰^˜IÓ&€FØ”R—X‘XÚÚÚÚÚÚÚðò OôPò Pð Pð Pô ˜<¨¨VØ˜v°DØ).ô0€Fð ×"Ñ"Ó$€FØ�^‰^˜FÓ#€FØ”R—X‘XÚÚ"Ú(Ú$Ú*Ú(Ú"ñó ò ð ð ô ˜<¨¨VØ˜v°DØ)-ô/€Fð ×"Ñ"Ó$€FØ�^‰^˜FÓ#€FØ”R—X‘XÚÚ"Ú(Ú$Ú*Ú(ñó ò ð ñ rL   c            
      ó0  — t        j                  g d¢g d¢g d¢dœ«      } t        j                  g d¢g d¢dœ«      }t        d| d	|d
ddd¬«      }|j                  «       }|j	                  d	«      }|t        j                  g d¢g d¢g d¢g d¢dœ«      k(  sJ ‚y )NrN   r0   r1   )r   r   rS   r>   r=   )rS   ÚcolXr3   r   rd   Ú_lrY   T)Úleft_suffixrZ   r9   r[   r@   r5   r7   )r   r   Ú	colVals_lr]   r_   r`   s      r+   Útest_table_join_keys_orderrh   Å   s£   € Ü	�‰ÚÚÚ"ñó 
€Bô 
�‰Ú"Úñó 
€Bô
 ˜<¨¨V°R¸Ø'+¸$Ø)-ô/€Fð ×"Ñ"Ó$€FØ�^‰^˜FÓ#€FØ”R—X‘XÚ"ÚÚ*Ú*ñ	ó ò ð ñ rL   c            
      ó  — t        j                  g d¢g d¢dœ«      } t        j                  t         j                  «      5  t        | t        j                  t        j                  d«      t        j                  d«      «      «       d d d «       t        j                  t         j                  «      5  t        | t        j                  d«      t        j                  d«      k  «       d d d «       y # 1 sw Y   ŒkxY w# 1 sw Y   y xY w)Nr   ©rO   rP   é   é(   é2   ©r   r   r   r   r.   )r!   rA   r$   r%   ÚArrowTypeErrorr   ÚpcÚdivideÚfieldÚscalarr&   )Úts    r+   Útest_filter_table_errorsru   Þ   s¸   € Ü
�‰ÚÚ!ñó 	€Aô
 
�‰”r×(Ñ(Ó	)ñ AÜ�aœŸ™¤2§8¡8¨C£=´"·)±)¸A³,Ó?Ô@÷Aô 
�‰”r—‘Ó	'ñ :Ü�aœ"Ÿ(™( 3›-¬2¯9©9°Q«<Ñ7Ô9÷:ð :÷Að Aú÷:ð :ús   Á AC1Â26C=Ã1C:Ã=Dc                  óè  — t        j                  g d¢g d¢dœ«      } t        | t        j                  d«      t        j
                  d«      k  t        j                  d«      t        j
                  d«      k(  z  «      }|t        j                  dgdgdœ«      k(  sJ ‚t        | t        j                  d«      t        j
                  d	«      kD  «      }|t        j                  d
dgddgdœ«      k(  sJ ‚y )Nr   rj   rn   r   r	   r   rP   r   rk   r
   r   rl   rm   )r!   rA   r   rp   rr   rs   ©rt   ra   s     r+   Útest_filter_tablerx   ë   sÜ   € Ü
�‰ÚÚ!ñó 	€Aô
 Ø	ŒB�H‰H�S‹MœRŸY™Y q›\Ñ)¬b¯h©h°s«m¼r¿y¹yÈ»}Ñ.LÑMó€Fð ”R—X‘XØˆSØˆTñó ò ð ð ô
 ˜1œbŸh™h s›m¬b¯i©i¸«mÑ;Ó<€FØ”R—X‘XØ�ˆVØ�"ˆXñó ò ð ñ rL   c                  óP  — t        j                  g d¢dgdz  dœ«      } t        j                  g d¢dgdz  dœ«      }t        j                  | |g«      }t        d«      D ]E  }t	        |t        j                  d«      dk(  «      }|d   t        j                  dgdgg«      k(  rŒEJ ‚ y )N©r   r   r	   r
   r   r
   rn   r   rP   r   )r!   rA   Úconcat_tablesÚranger   rp   rr   Úchunked_array)Útable1Útable2rA   Ú_rJ   s        r+   Útest_filter_table_orderingr�      sœ   € Ü�X‰XšL°¨u°q©yÑ9Ó:€FÜ�X‰XšL°¨u°q©yÑ9Ó:€FÜ×Ñ˜f fÐ-Ó.€Eä�2‹Yò :ˆô ˜%¤§¡¨#£°!Ñ!3Ó4ˆØ�‰vœ×)Ñ)¨C¨5°3°%¨.Ó9Ó9Ð9Ð9ñ:rL   c            
      óÜ  — t        j                  g d¢g d¢dœ«      } t        | t        j                  t        j
                  d«      t        j                  d«      «      t        j                  d«      k(  t        j                  t        j
                  d«      t        j                  d«      «      t        j
                  d«      k(  z  «      }|t        j                  g d	¢g d
¢dœ«      k(  sJ ‚y )N)r   r   r	   r
   r   r   r   )rO   rP   rk   rl   rm   rQ   é=   rn   r   r   r   rO   r   )r   r
   r   )rP   rl   rQ   )r!   rA   r   rp   Úbit_wise_andrr   rs   Úmultiplyrw   s     r+   Útest_complex_filter_tabler†     s¯   € Ü
�‰Ú"Ú)ñó 	€Aô
 Ø	ŒR�_‰_œRŸX™X c›]¬B¯I©I°a«LÓ9¼R¿Y¹YÀq»\ÑIÜ�[‰[œŸ™ #›¬¯	©	°"«Ó6¼"¿(¹(À3»-ÑGñIó€Fð
 ”R—X‘XÚÚñó ò ð ñ rL   c                  óR  — t        j                  g d¢t        j                  «       ¬«      } t        «       }t         j                  j                  || «      }t         j                  j                  t        j                  g d¢«      t        j                  g d¢«      «      }t        j                  g d¢||dœ«      }t        j                  g d¢|dœ«      }t        j                  g d¢||d	œ«      }t        d
|dg|dg«      }|d   t        j                  |«      k(  sJ ‚t        d
|dg|dg«      }|d   t        j                  |«      k(  sJ ‚t        d
|dg|dg«      }|d   t        j                  |«      k(  sJ ‚t        d
|dg|dg«      }|d   t        j                  |«      k(  sJ ‚y )N)r   r   r	   )Útype)r   r   r   )r   r   r   r0   rR   r=   )r   ÚcolC)r   r‰   ÚcolDr   r   rS   r   r‰   )r!   ÚarrayÚint64r   ÚExtensionArrayÚfrom_storageÚDictionaryArrayÚfrom_arraysrA   r   r}   )ÚstorageÚtyÚ	ext_arrayÚ
dict_arrayr)   r*   Út3ra   s           r+   Ú test_join_extension_array_columnr–     s•  € Ü�h‰h’y¤r§x¡x£zÔ2€GÜ	‹€BÜ×!Ñ!×.Ñ.¨r°7Ó;€IÜ×#Ñ#×/Ñ/Ü
�‰’ÓœRŸX™X¢oÓ6ó8€Jä	�‰ÚØØñó 
€Bô 
�‰ÚØñó 
€Bô
 
�‰ÚØØñó 
€Bô Ø�b˜6˜( B¨¨ó2€Fà�)Ñ¤× 0Ñ 0°Ó ;Ò;Ð;Ð;äØ�b˜6˜( B¨¨ó2€Fà�&‰>œR×-Ñ-¨iÓ8Ò8Ð8Ð8äØ�b˜6˜( B¨¨ó2€Fà�)Ñ¤× 0Ñ 0°Ó ;Ò;Ð;Ð;äØ�b˜6˜( B¨¨ó2€Fà�&‰>œR×-Ñ-¨iÓ8Ò8Ð8Ñ8rL   c                  óP  — t        j                  g d¢dgdz  dœ«      } t        j                  g d¢dgdz  dœ«      }t        j                  | |g«      }t        d«      D ]E  }|j	                  dd¬«      j                  g «      }|d   t        j                  dgdgg«      k(  rŒEJ ‚ y )	Nrz   r   r
   rn   r   rm   F)r8   )r!   rA   r{   r|   Úgroup_byÚ	aggregater}   )r~   r   rA   r€   ra   s        r+   Útest_group_by_orderingrš   F  s    € ä�X‰XšL°¨u°q©yÑ9Ó:€FÜ�X‰XšL°¨u°q©yÑ9Ó:€FÜ×Ñ˜f fÐ-Ó.€Eä�2‹Yò ?ˆð —‘ °�Ó7×AÑAÀ"ÓEˆØ�c‰{œb×.Ñ.°°¸°u¨~Ó>Ó>Ð>Ð>ñ?rL   )r$   Úpyarrowr!   Úpyarrow.computeÚcomputerp   Útest_extension_typer   Úpyarrow.datasetrC   rB   ÚImportErrorÚpyarrow.aceror   r   ÚmarkÚaceroÚ
pytestmarkr,   ÚparametrizeÚparamrK   rb   rh   ru   rx   r�   r†   r–   rš   © rL   r+   ú<module>r¨      s  ðó$ Û Ý Ý ,ð	Ý ð	ß:ð �[‰[×Ñ€
òBð* ‡�×ÑÐ,ØØ�A�Ø�c�
ñð ð Ø�A�Ø�c�
ñð ð Ø�Ø�ñð ð Ø�Ø�ñð ð Ø�A�Ø�c�
Ø�A�Ø�c�
ñ	ð ð ÚÚÚÚ ñ	ð ð ÚÚ ÚÚñ	ð ð ÚÚ%Ú Ú%ñ	ð ðG)/ó )ðT ‡�×Ñ˜¨¨u¨Ó6Ø‡�×Ñ˜¨4°¨-Ó8Ø‡�×Ñ˜Ø  §¡¨d¸&¿+¹+×:MÑ:MÔ!NÐOóQñ!óQó 9ó 7óU)ð\!òH7òtò2
:òò*
:òò"%9óP?øð[	 ò 	Úð	ûð
 ò 	Úð	ús"   –E& �E2 Å&E/Å.E/Å2E;Å:E;