+
    nDjp'                     &   ^ RI t ^ RIt^ RIHt ^RIHt  ^ RIH	t
  ^ RIHtHt ] P                  P                   tR t] P                  P'                  RRR^^.RR	R
./3RR^^.RRR./3RR^.RR./3RR^c.RR./3RR^^.RR	R
.R^^.RRR./3RR. R'OR. R(OR. R)OR. R*O/3RR. R)OR. R+OR. R,OR. R-O/3RR. R.OR. R/OR. R0OR. R1O/3.4      ] P                  P'                  RRR.4      ] P                  P'                  RRR.4      ] P                  P'                  RR] P(                  ! R] P                  P                  R7      .4      R 4       4       4       4       tR tR  tR! tR" tR# tR$ tR% tR& tR#   ] d     ELei ; i  ] d     ELji ; i)2    N)IntegerType)_perform_join_filter_tablec            	         \         P                  P                  R . ROR. R	O/4      p \         P                  P                  R. R
OR. RO/4      p\        P                  ! \         P
                  4      ;_uu_ 4        \        RV RVR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        RRR VR4       RRR4       \        P                  ! \        4      ;_uu_ 4        \        RV R VR4       RRR4       R#   + '       g   i     L; i  + '       g   i     L_; i  + '       g   i     R# ; i)colAcol2colBcol3
left outer Nzsuper mario join)                  )abcdefr   r   r   r   r   )ABCDE)	paTablefrom_pydictpytestraisesArrowInvalidr   	TypeError
ValueError)t1t2s     V/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/test_exec_plan.pytest_joins_corner_casesr*   $   s    			". 
B
 
		) 
B
 
r	'	'lBB3 
( 
y	!	!lD&"f= 
" 
z	"	"("fb&A 
#	" 
(	' 
"	! 
#	"	"s$   ;D	5D/D/	D	D,	/E 	zjointype,expectedz	left semir   r   r   r   z
right semir	   r
   r   r   z	left antir   z
right antiZinnerr   right outer
full outeruse_threadsTFcoalesce_keysuse_datasets)marksc           
         \         P                  ! V4      p\         P                  P                  R . R	OR. R
O/4      p\         P                  P                  R. ROR. RO/4      pV'       d/   \        P
                  ! V.4      p\        P
                  ! V.4      p\        WR VRW#R7      pVP                  4       pRV 9   d   VP                  R4      pMVP                  R 4      pV'       db   V R9   d   VP                  R.4      pMGV R8X  d   VP                  R .4      pM-V R8X  d'   VP                  R.4      P                  ^ R . RO.4      pWq8X  g   Q hR# )r   r   r	   r
   )r/   r0   rightr-   r.   Nr   r   r   r   r   r   c   r   r   r+   r   r   )r,   r   r   r   r   r8   )r   tabler    r!   dsdatasetr   combine_chunkssort_bydrop
set_column)jointypeexpectedr/   r0   r1   r'   r(   rs   &&&&&   r)   
test_joinsrE   9   s/   b xx!H				 
B
 
		
 
B
 ZZZZhFB"-	LA	A(IIfIIf..}}fX.H&}}fX.H%}}fX.99!Vm_UH==    c                     \         P                  ! R . ROR. ROR. RO/4      p \         P                  ! R. ROR. ROR. ROR . RO/4      p\        RV R R.VR R.4      pVP                  4       pVP	                  R4      pV\         P                  ! . RO. RO. RO. RO. RO. RO. RO.. ROR7      8X  g   Q h\        RV R VR RRR	7      pVP                  4       pVP	                  R 4      pV\         P                  ! R . ROR. ROR. ROR
. R OR. R!OR. R"OR. R#O/4      8X  g   Q h\        RV R VR RRR	7      pVP                  4       pVP	                  R 4      pV\         P                  ! R . R$OR. ROR. ROR
. R OR. R!OR. R"O/4      8X  g   Q hR# )%r   r	   colValscolUniqr.   N)names_rF)right_suffixr0   colB_r	colVals_rcolA_rTr5   
      <   r6   )r8   rR   rQ   r9   )d      ,  r7   )Nr   r   r   )NrR   rQ   rS   )Nr   r   r   )r8   rR   rQ   N)r+   r   r   N)rT   rU   rV   N)r8   r   r   N)r   r	   rH   r	   rH   rI   r   r   r   r   NrQ   rR   rS   Nr   r   r   N)rQ   rR   Nr8   r   r   Nr+   )rV   rU   NrT   r   r   Nr8   r:   r   r;   r   r>   r?   r'   r(   results      r)   test_table_join_collisionsr_      s   		? 
B 
??
	 
B b66*B0@BF""$F^^I&FRXX OP P P P <VvD).0F ""$F^^F#FRXX"($*("     <VvD)-/F ""$F^^F#FRXX"($*(    rF   c                  H   \         P                  ! R . ROR. ROR. RO/4      p \         P                  ! R. ROR. RO/4      p\        RV RVRRRRR7      pVP                  4       pVP	                  R4      pV\         P                  ! R . ROR. ROR
. ROR. RO/4      8X  g   Q hR	# )r	   r   rH   colXr.   _lrK   T)left_suffixrL   r0   N	colVals_lrN   rP   r5   r6   r9   r7   rX   r:   rY   rZ   r\   r]   s      r)   test_table_join_keys_orderre      s    		? 
B 
?
 
B
 <VR'+$)-/F ""$F^^F#FRXX"**	    rF   c                  d   \         P                  ! R . ROR. RO/4      p \        P                  ! \         P                  4      ;_uu_ 4        \        V \        P                  ! \        P                  ! R 4      \        P                  ! ^4      4      4       RRR4       \        P                  ! \         P                  4      ;_uu_ 4        \        V \        P                  ! R4      \        P                  ! ^4      8*  4       RRR4       R#   + '       g   i     L~; i  + '       g   i     R# ; i)r   r   Nr+   r   rQ   rR      (   2   )r   r;   r"   r#   ArrowTypeErrorr   pcdividefieldscalarr$   )ts    r)   test_filter_table_errorsrq      s    
_! 	A
 
r((	)	)a288C="))A,?@ 
* 
r	'	'a"((3-299Q<79 
(	' 
*	) 
(	'	's   A
D	8DD	D/	c                     \         P                  ! R . ROR. RO/4      p \        V \        P                  ! R 4      \        P
                  ! ^4      8*  \        P                  ! R4      \        P
                  ! ^4      8H  ,          4      pV\         P                  ! R ^.R^./4      8X  g   Q h\        V \        P                  ! R4      \        P
                  ! ^4      8  4      pV\         P                  ! R ^^.R^(^2./4      8X  g   Q hR# )r   r   Nr   rg   )r   r;   r   rl   rn   ro   rp   r^   s     r)   test_filter_tablert      s    
_! 	A
 	BHHSMRYYq\)bhhsmryy}.LMF RXXaSbT    
 1bhhsmbiim;<FRXXaVb"X    rF   c                  ~   \         P                  ! R . RORR .^,          /4      p \         P                  ! R . RORR.^,          /4      p\         P                  ! W.4      p\        ^4       FN  p\	        V\
        P                  ! R 4      ^8H  4      pVR,          \         P                  ! R .R..4      8X  d   KN  Q h	  R# )r   r   Nr   r   r   r   )r   r;   concat_tablesranger   rl   rn   chunked_array)table1table2r;   _rD   s        r)   test_filter_table_orderingr}      s    XXsL#uqy9:FXXsL#uqy9:Ff-.E2Y %#!!34v))C53%.9999 rF   c            
         \         P                  ! R . ROR. RO/4      p \        V \        P                  ! \        P
                  ! R 4      \        P                  ! ^4      4      \        P                  ! ^ 4      8H  \        P                  ! \        P
                  ! R 4      \        P                  ! ^
4      4      \        P
                  ! R4      8H  ,          4      pV\         P                  ! R . ROR. RO/4      8X  g   Q hR# )r   r   N)r   r   r   r   r   r   r   )rQ   rR   rh   ri   rj   rS   =   )r   r   r   )rR   ri   rS   )r   r;   r   rl   bit_wise_andrn   ro   multiplyrs   s     r)   test_complex_filter_tabler     s    
") 	A
 	R__RXXc]BIIaL9RYYq\I[[#		"6"((3-GIF
 RXXY\    rF   c                     \         P                  ! . R	O\         P                  ! 4       R7      p \        4       p\         P                  P                  W4      p\         P                  P                  \         P                  ! . R
O4      \         P                  ! . RO4      4      p\         P                  ! R. RORVRV/4      p\         P                  ! R. RORV/4      p\         P                  ! R. RORVRV/4      p\        RVR.VR.4      pVR,          \         P                  ! V4      8X  g   Q h\        RVR.VR.4      pVR,          \         P                  ! V4      8X  g   Q h\        RVR.VR.4      pVR,          \         P                  ! V4      8X  g   Q h\        RVR.VR.4      pVR,          \         P                  ! V4      8X  g   Q hR# )r   )typer   r	   rH   colCcolDr   N)r   r   r   )r   r   r   )r   r   r   r5   r7   )r   arrayint64r   ExtensionArrayfrom_storageDictionaryArrayfrom_arraysr;   r   ry   )storagety	ext_array
dict_arrayr'   r(   t3r^   s           r)    test_join_extension_array_columnr     s   hhyrxxz2G	B!!..r;I##//
RXXo68J			9 
B 

	 
B
 

	
 
B b6(B2F) 0 0 ;;;;b6(B2F&>R--i8888b6(B2F) 0 0 ;;;;b6(B2F&>R--i8888rF   c                  |   \         P                  ! R . RORR .^,          /4      p \         P                  ! R . RORR.^,          /4      p\         P                  ! W.4      p\        ^24       FM  pVP	                  RRR7      P                  . 4      pVR,          \         P                  ! R .R..4      8X  d   KM  Q h	  R# )r   r   F)r/   Nrv   )r   r;   rw   rx   group_by	aggregatery   )rz   r{   r;   r|   r^   s        r)   test_group_by_orderingr   F  s    XXsL#uqy9:FXXsL#uqy9:Ff-.E2Y 7AA"Ec{b..u~>>>> rF   r5   r6   )r   r   N)r   r   N)r   r   N)r   r   r8   )r   r   r+   rW   rY   r[   rZ   )r"   pyarrowr   pyarrow.computecomputerl   test_extension_typer   pyarrow.datasetr=   r<   ImportErrorpyarrow.aceror   r   markacero
pytestmarkr*   parametrizeparamrE   r_   re   rq   rt   r}   r   r   r    rF   r)   <module>r      sK  $    ,	 	: [[
B* ,Ac
  Ac
      Ac
Ac
	  	 	   
	  % %	 G)/ )T u64-8d&++:M:M!NOQ!Q 9 7U)\!H7t2
:*
:"%9P?[	  		
  		s"   E7 F 7FFFF