+
    nDjYF              	          ^ RI t ^ RIt^ RIHt ^ RIHt  ^ RIHtH	t	H
t
HtHtHtHtHt  ^ RIHt ^ RIHt ] P*                  P,                  t] P0                  R 4       tR tR tR tR	 tR
 t] P*                  P?                  R]P@                  ! R. RO/4      ]PB                  ! R. RO/4      .4      R 4       t"R t#R t$R t%R t&R t'R t(R t)] P*                  P$                  R 4       t*R#   ] d     Li ; i  ] d    Rt Li ; i)    N)field)DeclarationTableSourceNodeOptionsFilterNodeOptionsProjectNodeOptionsAggregateNodeOptionsOrderByNodeOptionsHashJoinNodeOptionsAsofJoinNodeOptions)ScanNodeOptionsc                  r    \         P                  ! R . ROR. RO/4      p \        V 4      p\        RVR7      pV# )abtable_sourceoptions                  )patabler   r   )r   
table_optsr   s      R/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/test_acero.pyr   r   /   s5    HHc9c956E'.J~zBL    c                     \         P                  ! R . ROR. RO/4      p \        V 4      p\        \	        R 4      ^8  4      p\
        P                  ! \        RVR7      \        RVR7      .4      pVP                  4       pVP                  V P                  ^^4      4      '       g   Q h\        RVR7      p\        RW%.R7      pVP                  4       pVP                  V P                  ^^4      4      '       g   Q hR# )	r   r   r   r   filterr   inputsNr   r   )
r   r   r   r   r   r   from_sequenceto_tableequalsslice)r   r   filter_optsdeclresultr   filtereds          r   test_declarationr,   7   s    HHc9c956E'.J#E#JN3K $$NJ7Hk2& D ]]_F==Q*++++ ~zBL8[PH F==Q*++++r   c                 N    R \        V 4      9   g   Q hR \        V 4      9   g   Q hR# )TableSourceNodeN)strrepr)r   s   &r   test_declaration_reprr1   L   s(    L 1111\ 2222r   c           	         V P                  4       ;_uu_ 4       pVP                  \        P                  ! R \        P                  ! 4       3R\        P                  ! 4       3.4      8X  g   Q hVP	                  4       pRRR4       \        P
                  ! R . ROR. RO/4      pXP                  V4      '       g   Q hR#   + '       g   i     LI; i)r   r   Nr   r   )	to_readerschemar   int64read_allr   r&   )r   readerr*   expecteds   &   r   test_declaration_to_readerr9   R   s    				!	!V}}		C+<sBHHJ>O*P QQQQ" 
" xxii89H==""""	 
"	!s   A$B>>C	c            
         \         P                  ! \        4      ;_uu_ 4        \        \        P
                  ! \        P                  ! . RO4      .R.4      4       RRR4       \        R4      p \        RV 4      p\         P                  ! \        RR7      ;_uu_ 4        VP                  4       pRRR4       R#   + '       g   i     Lf; i  + '       g   i     R# ; i)r   r   Nr   z0TableSourceNode requires table which is not nullmatchr   )
pytestraises	TypeErrorr   r   record_batcharrayr   
ValueErrorr%   r   r)   _s      r   test_table_sourcerE   Z   s    	y	!	!r0C/DseLM 
" *$/L~|4D	L
 
 MMO
 
 
"	!

 
 
s   9B:C:C
	C	c                 h   \         P                  ! V \        R \        \        R4      ^8  4      R7      .4      p\        P
                  ! \        RR7      ;_uu_ 4        VP                  4       pRRR4       \        P
                  ! \        4      ;_uu_ 4        \        \        P                  ! . RO4      4       RRR4       \        P
                  ! \        4      ;_uu_ 4        \        R4       RRR4       R#   + '       g   i     L; i  + '       g   i     L[; i  + '       g   i     R# ; i)r!   cr   zNo match for FieldRef.Name\(c\)r;   N)TFT)r   r$   r   r   r=   r>   rB   r%   r?   r   rA   rC   s   &  r   test_filterrH   f   s    $$H&7c
Q&GH& D 
z)K	L	LMMO 
M 
y	!	!"((#678 
"	y	!	!$ 
"	! 
M	L 
"	!	!	!	!s$   C:"D$D :D
	D	 D1	sourcenumberc                    V P                  \        P                  ! R 4      ^ 8  4      pVP                  ^ 8X  g   Q h\	        V4      \	        V 4      J g   Q hVP
                  P                  V P
                  4      '       g   Q hV P                  \        P                  ! . RO4      4      pVP                  ^ 8X  g   Q h\	        V4      \	        V 4      J g   Q hVP
                  P                  V P
                  4      '       g   Q hR# )rJ   N)FFF)	r!   pcr   num_rowstyper4   r&   r   rA   )rI   result_exprresult_masks   &  r   test_filter_all_rowsrQ   v   s     -- 2Q 67K1$$$V,,,$$V]]3333--)> ?@K1$$$V,,,$$V]]3333r   c                 t   \         P                  ! V \        R \        \        P                  ! \        R4      ^4      .4      4      .4      pVP                  4       pVP                  P                  R.8X  g   Q hV^ ,          P                  4       . RO8X  g   Q h\         P                  ! V \        R \        \        P                  ! \        R4      ^4      .R.4      4      .4      pVP                  4       pVP                  P                  R.8X  g   Q hVR,          P                  4       . RO8X  g   Q h\        P                  ! \        4      ;_uu_ 4        \        \        P                  ! \        R4      ^4      .RR.4       RRR4       \         P                  ! V \        R \        \        P                  ! \        R4      4      .4      4      .4      p\        P                  ! \        RR7      ;_uu_ 4        VP                  4       pRRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)	projectr   zmultiply(a, 2)a2b2Nz$cannot Execute non-scalar expressionr;   )r   r   r   )r   r$   r   rL   multiplyr   r%   r4   names	to_pylistr=   r>   rB   sum)r   r)   r*   rD   s   &   r   test_projectrZ      s   $$I12;;uSz13M2NOP& D ]]_F==#3"4444!9 I--- $$I12;;uSz13M2NQUPVWX& D ]]_F==4&((($<!!#y000 
z	"	"BKKc
A67$F 
# $$I1266%*3E2FGH& D 
z)O	P	PMMO 
Q	P 
#	" 
Q	P	Ps   .H8H&H#	&H7	c           	         \         P                  ! V \        R \        R.4      4      .4      pVP                  4       pVP                  P
                  R.8X  g   Q hVR,          P                  4       ^.8X  g   Q h\        P                  ! R. RO/4      p\        RR\        P                  ! RR7      R3.4      p\         P                  ! \        R\        V4      4      \        R V4      .4      pVP                  4       pVP                  P
                  R.8X  g   Q hVR,          P                  4       R.8X  g   Q hR\        R4      ^ \        ^ 4      R.\        R4      .^ .3 F  p\        VRRR3.4      p\         P                  ! V \        R V4      .4      pVP                  4       pVP                  P
                  R.8X  g   Q hVR,          P                  4       ^.8X  d   K  Q h	  \        RR.RRR3.4      p\         P                  ! V \        R V4      .4      p\        P                  ! \        R	R
7      ;_uu_ 4        VP                  4       pRRR4       \        R.4      p\         P                  ! V \        R V4      .4      p\        P                  ! \        RR
7      ;_uu_ 4        VP                  4       pRRR4       R#   + '       g   i     L}; i  + '       g   i     R# ; i)	aggregater   rY   Na_sumF)
skip_nullsr   r   z/Function 'sum' accepts 1 arguments but 2 passedr;   zis a hash aggregate functionr   rY   Nr]   r   r   N)r   hash_sumNr]   )r   r$   r   r%   r4   rW   rX   r   r   rL   ScalarAggregateOptionsr   r   r=   r>   rB   )r   r)   r*   r   	aggr_optstargetrD   s   &      r   test_aggregate_scalarre      s   $$K!57R6S!TU& D ]]_F==7)+++'?$$&1#--- HHc<()E$
ub//5A7	KLI $$N$:5$ABK+& D ]]_F==7)+++'?$$&4&000 c
AuQx#sqcJ(65$*H)IJ	((;{I>?
 }}""wi///g((*qc111 K %Sz5$&H%IJI$$	{;	:;D 
K
 
 MMO
 %&F%GHI$$	{;	:;D 
z)G	H	HMMO 
I	H
 
 
I	H	Hs    K+KK	K*	c                  H   \         P                  ! R . ROR. RO/4      p \        V 4      p\        RVR7      p\	        R.R.R	7      p\        P
                  ! V\        R
V4      .4      pVP                  4       p\         P                  ! RRR.R^^./4      pVP                  V4      '       g   Q h\	        R R\        P                  ! R4      R3.R.R	7      p\        P
                  ! V\        R
V4      .4      pVP                  4       p\         P                  ! RRR.R^^./4      pVP                  V4      '       g   Q h\	        R.\        R4      .R	7      p\        P
                  ! V\        R
V4      .4      pVP                  4       pVP                  V4      '       g   Q h\	        R.R.R	7      p\        P
                  ! V\        R
V4      .4      p\        P                  ! \        4      ;_uu_ 4        VP                  4       pRRR4       R#   + '       g   i     R# ; i)r   Nr   foobarr   r   
hash_countcount(a))keysr\   allr`   )rg   rh   rg   )r   ri   Nrj   r_   )r   r   r   r   r   r$   r%   r&   rL   CountOptionsr   r=   r>   rB   )	r   r   r   rc   r)   r*   r8   expected_allrD   s	            r   test_aggregate_hashro      s   HHc<.CDEE'.J~zBL %	./se=I$$k+y9& D ]]_Fxxuenj1a&ABH=="""" %
|R__U3Z	@AI $$k+y9& D ]]_F88S5%.*q!fEFL==&&&& %	./uSzlI $$k+y9& D ]]_F=="""" %&A%B#OI$$k+y9& D 
z	"	"MMO 
#	"	"	"s   5HH!	c                  t   \         P                  ! R . ROR. RO/4      p \        R\        V 4      4      p\	        R.4      p\        P
                  ! V\        RV4      .4      pVP                  4       p\         P                  ! R . ROR. RO/4      pVP                  V4      '       g   Q h\	        \        R4      R3.4      p\        P
                  ! V\        RV4      .4      pVP                  4       p\         P                  ! R . ROR. RO/4      pVP                  V4      '       g   Q h\	        R.RR7      p\        P
                  ! V\        RV4      .4      pVP                  4       p\         P                  ! R . ROR. RO/4      pVP                  V4      '       g   Q h\	        . 4      p\        P
                  ! V\        RV4      .4      p\        P                  ! \        RR	7      ;_uu_ 4        VP                  4       pRRR4       \        P                  ! \        R
R	7      ;_uu_ 4        \	        R.4      pRRR4       \        P                  ! \        RR	7      ;_uu_ 4        \	        R.RR7      pRRR4       R#   + '       g   i     L; i  + '       g   i     L`; i  + '       g   i     R# ; i)r   r   Nr   order_by
descendingat_start)null_placementz1`ordering` must be an explicit non-empty orderingr;   z&"decreasing" is not a valid sort orderz%"start" is not a valid null placementstart)r   r   r   r   )r   r   Nr   )r   	ascending)r   r   r   r   )r   r   r   N)r   r   r   r   )r   r   r   N)r   rr   )r   r   r   r   )Nr   r   r   )r   
decreasing)r   r   r   r   r	   r$   r%   r&   r   r=   r>   rB   )r   r   ord_optsr)   r*   r8   rD   s          r   test_order_byry   
  s    HHc<o>?E~/Ee/LML!#5"67H$$lK
H4U%VWD]]_FxxlCABH==""""!E#J#=">?H$$lK
H4U%VWD]]_FxxlCABH==""""!#4"5jQH$$lK
H4U%VWD]]_FxxlCABH=="""" ""%H$$lK
H4U%VWD	M
 
 MMO

 
z)S	T	T 345 
U 
z)R	S	S 23GL 
T	S
 

 
U	T 
T	S	Ss$   1J .J'J& J	J#	&J7	c            	      t   \         P                  ! R . ROR. RO/4      p \        R\        V 4      R7      p\         P                  ! R . ROR. RO/4      p\        R\        V4      R7      p\	        RR R R7      p\        RWAV.R7      pVP                  4       p\         P                  ! ^^.^^.^^.^^... ROR	7      pVP                  V4      '       g   Q h\        R 4      R .\        R 4      .3 FH  p\	        RWR7      p\        RWAV.R7      pVP                  4       pVP                  V4      '       d   KH  Q h	  \	        R
R R R7      p\        RWAV.R7      pVP                  4       p\         P                  ! . RO. RO. RO. RO.. ROR	7      pVP                  R4      P                  V4      '       g   Q h\	        R
R R RRR7      p\        RWAV.R7      pVP                  4       p\         P                  ! . RO. RO. RO. RO.. ROR	7      pVP                  R4      P                  V4      '       g   Q h\	        R
R R R R.\        R4      .R7      p\        RWAV.R7      pVP                  4       p\         P                  ! . RO. RO. RO.. ROR	7      pVP                  R4      P                  V4      '       g   Q hR# )keyr   r   r   r   inner)	left_keys
right_keyshashjoinr"   rW   
left outerN_left_right)r}   r~   output_suffix_for_leftoutput_suffix_for_right)r}   r~   left_outputright_outputr   r   r   r   r   r{   r   r{   r   )Nr   r   )Nr   r   )key_leftr   	key_rightr   )r{   r   r   )	r   r   r   r   r
   r%   r&   r   sort_by)	leftleft_sourcerightright_source	join_optsjoinedr*   r8   rk   s	            r   test_hash_joinr   /  s   88UIsI67Dn6LT6RSKHHeYY78E~7Me7TUL $GuOIIL.IKF__Fxx
Q!Q!Q!Q(&(H ==""""uwu7'4Q		2MO"}}X&&&& 8 $%9IIL.IKF__Fxx	I|\:&H >>#%%h//// $%&JI IL.IKF__Fxx	I|\:1H >>#%%h//// $%CLc
|=I IL.IKF__Fxx	I|,H >>#%%h////r   c                     \         P                  ! R . ROR. RO/4      p \        R\        V 4      R7      p\         P                  ! R . ROR. RO/4      p\        R\        V4      R7      p\	        RR R \
        P                  ! \
        P                  ! R4      ^4      R7      p\        RWAV.R7      pVP                  4       p\         P                  ! ^.^.^.^... ROR	7      pVP                  V4      '       g   Q h\	        R
R R \
        P                  ! \
        P                  ! R4      ^4      \
        P                  ! \
        P                  ! R4      ^
4      ,          R7      p\        RWAV.R7      pVP                  4       p\         P                  ! . RO. RO. RO. RO.. ROR	7      pVP                  V4      '       g   Q h\
        P                  ! R4      p\	        RR R VR7      p\        RWAV.R7      pVP                  4       p\         P                  ! ^^.^^.^^.^^... ROR	7      pVP                  V4      '       g   Q h\
        P                  ! R4      p	\	        RR R V	R7      p\        RWAV.R7      pVP                  4       p\         P                  ! \         P                  ! . \         P                  ! 4       R7      \         P                  ! . \         P                  ! 4       R7      \         P                  ! . \         P                  ! 4       R7      \         P                  ! . \         P                  ! 4       R7      .. ROR	7      pVP                  V4      '       g   Q hR# )r{   r   r   r   r   r|   )r}   r~   filter_expressionr   r"   r   r   NTF)rN   r   r   r   r   )r   r   r   )r   r   r   )r   NN)r   NN)r   r   r   r   r
   rL   equalr   r%   r&   scalarrA   r5   )
r   r   r   r   r   r   r*   r8   always_truealways_falses
             r   #test_hash_join_with_residual_filterr   m  s   88UIsI67Dn6LT6RSKHHeYY78E~7Me7TUL#5U((288C=!46I IL.IKF__Fxx
qcA3&(H =="""" $%((288C=!4rxxr7RRI IL.IKF__Fxx	I@&(H =="""" ))D/K#5U%'I IL.IKF__Fxx
Q!Q!Q!Q(&H =="""" 99U#L#5U&(I IL.IKF__FxxHHRbhhj)HHRbhhj)HHRbhhj)HHRbhhj)		
 'H ==""""r   c            
      v   \         P                  ! R . ROR. ROR. RO/4      p \        R\        V 4      R7      p\         P                  ! R . ROR. ROR. RO/4      p\        R\        V4      R7      p\	        RR .RR .^R7      p\        RWAV.R7      pVP                  4       p\         P                  ! . RO. RO. RO. RO.. ROR
7      pWg8X  g   Q h\        R 4      R .\        R 4      .3 FL  p\        R4      R3 F8  p	\	        WW^R7      p\        RWAV.R7      pVP                  4       pWg8X  d   K8  Q h	  KN  	  R	# )r{   tsr   r   r   r   )left_onleft_byright_onright_by	toleranceasofjoinr"   Nr   r   )r   r   r   r   r   )r   r   r   )Nr   N)r{   r   r   r   )r   r   r   r   r   r%   r   )
r   r   r   r   r   r   r*   r8   byons
             r   test_asof_joinr     s:   88UItYYGHDn6LT6RSKHHeYiiHIE~7Me7TUL $ugI
 IL.IF __Fxx	Iy/:%'H U|eWuU|n5;%B+I
 !IL6QSF__&F%%% & 6r   c           	         \         P                  ! R . R
OR. RO/4      p\        P                  ! WR,          RR7       \        P                  ! V R,          RR7      p\        R\        V4      4      pVP                  4       pVP                  P                  . RO8X  g   Q hVP                  R R.4      P                  V4      '       g   Q h\        V\        R 4      ^8  R7      p\        RV4      pVP                  4       P                  ^8X  g   Q h\        V\        R 4      ^8  R7      p\        RV4      pVP                  4       P                  ^ 8X  g   Q h\        VR\        P                  ! \        R 4      ^4      /R7      p\        RV4      pVP                  4       pVR ,          P!                  4       . R
O8X  g   Q h\        P"                  ! VR,          P%                  4       4      P'                  4       '       g   Q hR	# )r   r   datasetparquet)formatscan)r!   rT   )columnsNr   r   )r   r   __fragment_index__batch_index__last_in_fragment
__filename)r   r   dswrite_datasetr   r   r   r%   r4   rW   selectr&   r   rM   rL   rV   rX   rl   is_nullas_py)tempdirr   r   r)   r*   	scan_optss   &     r   	test_scanr     s   HHc9c956EUi/	Bjj9,Y?Gvw78D]]_F== #    ==#s$++E2222  c
Q?Ivy)D==?##q(((c
Q?Ivy)D==?##q(((  $E#JPQ8R1STIvy)D]]_F#;  "i///66&+%%'(..0000r   r   )+r=   pyarrowr   pyarrow.computecomputerL   r   pyarrow.aceror   r   r   r   r   r	   r
   r   ImportErrorpyarrow.datasetr   r   r   markacero
pytestmarkfixturer   r,   r1   r9   rE   rH   parametrizer@   r   rQ   rZ   re   ro   ry   r   r   r   r    r   r   <module>r      s3  $    !		 	 	 - [[
  ,*3#	   OOXy)*HHh	"#$ 4	4@0f+\"MJ;0|=#@&D  1  1[  		  	Bs"   C- C: -C76C7:	DD