
    z-Php'                        d dl Z d dlZd dlmZ ddlmZ 	 d dlm	Z
 n# e$ r Y nw xY w	 d dlmZmZ n# e$ r Y nw xY we j        j        Zd Ze 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                            d&d'd(g          e j                            d)d'd(g          e 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dS )5    N   )IntegerType)_perform_join_filter_tablec                  B   t           j                            g dg dd          } t           j                            g dg dd          }t          j        t           j                  5  t          d| d|d           d d d            n# 1 swxY w Y   t          j        t                    5  t          dd d	|d
           d d d            n# 1 swxY w Y   t          j        t                    5  t          d| d	|d
           d d d            d S # 1 swxY w Y   d S )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     \/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyarrow/tests/test_exec_plan.pytest_joins_corner_casesr,   $   s   			"""...  
 
B
 
		)))  
 
B
 
r	'	' 4 4lBB3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 
y	!	! > >lD&"f===> > > > > > > > > > > > > > > 
z	"	" B B("fb&AAAB B B B B B B B B B B B B B B B B Bs6   +BBB/CCC3DDDzjointype,expectedz	left semir   r   r   r   z
right semir   r   r   z	left antir   r   z
right antic   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           	         t          j        |          }t           j                            g dg dd          }t           j                            g dg dd          }|r*t	          j        |g          }t	          j        |g          }t          | |d|d||	          }|                                }d
| v r|                    d          }n|                    d          }|rl| dv r|	                    dg          }nQ| dk    r|	                    dg          }n4| dk    r.|	                    dg          
                    ddg dg          }||k    sJ d S )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!!H					  
 
B
 
		

  
 
B
  ZZhFB"-]	L 	L 	LA	A(IIfIIf V...}}fX..HH&&}}fX..HH%%}}fX..99!Vmmm_UUH======    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          }|                                }|                    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          }|                                }|                    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"          }|                                }|                    d          }|t          j        g d#g dg dg dg dg dd$          k    sJ d S )%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 b66*B0@B BF""$$F^^I&&FRX ONNP P P P P P P <VvD).0 0 0F ""$$F^^F##FRX"""((($$$***((("""        <VvD)-/ / /F ""$$F^^F##FRX"""((($$$***(((         rL   c            
      F   t          j        g dg dg dd          } t          j        g dg dd          }t          d| d	|d
ddd          }|                                }|                    d	          }|t          j        g dg dg dg dd          k    sJ d S )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
 <VR'+$)-/ / /F ""$$F^^F##FRX"""******	         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            n# 1 swxY w Y   t          j        t           j
                  5  t          | t          j        d          t          j	        d          k               d d d            d S # 1 swxY w Y   d S )Nr   rO   rP      (   2   r   r   r   r   r.   )r!   rA   r$   r%   ArrowTypeErrorr   pcdividefieldscalarr&   )ts    r+   test_filter_table_errorsru      sq   
__!!!  	 	A
 
r(	)	) A Aa28C==")A,,??@@@A A A A A A A A A A A A A A A 
r	'	' : :a"(3--29Q<<7999: : : : : : : : : : : : : : : : : :s$   ABBB79C==D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	          k              }|t          j        d
dgddgd          k    sJ d S )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
 	BHSMMRYq\\)bhsmmry}}.LM F RXST       
 1bhsmmbimm;<<FRXV"X         rL   c                  ^   t          j        g ddgdz  d          } t          j        g ddgdz  d          }t          j        | |g          }t          d          D ]L}t	          |t          j        d          dk              }|d         t          j        dgdgg          k    sJ Md S )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    XLLLuqy99::FXLLLuqy99::Fff-..E2YY : : %#!!344v)C53%.999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 d S )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_RXc]]BIaLL99RYq\\I[#	"66"(3--GI F
 RXYY\\         rL   c                     t          j        g dt          j                              } t                      }t           j                            ||           }t           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 d S )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   hyyyrxzz222G	B!..r7;;I#//
RXooo668 8J			  
 
B 


  
 
B
 


  
 
B b6(B2 2F) 0 ; ;;;;;b6(B2 2F&>R-i888888b6(B2 2F) 0 ; ;;;;;b6(B2 2F&>R-i88888888rL   c                  f   t          j        g ddgdz  d          } t          j        g ddgdz  d          }t          j        | |g          }t          d          D ]P}|                    dd                              g           }|d         t          j        dgdgg          k    sJ Qd S )	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    XLLLuqy99::FXLLLuqy99::Fff-..E2YY ? ? 77AA"E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      sh  $            , , , , , ,	        	 	 	D		::::::::: 	 	 	D	 [
B B B* ,Ac
   Ac
         Ac
Ac
	   		   	      

	   %%%   %%%	  G)/ ) )T u664-88d&+:M!N!N!NOQ Q! !Q Q 98 76U) )\!H7 7 7t  2
: 
: 
:  *
: 
: 
:  "%9 %9 %9P? ? ? ? ?s    %%2 ::