+
    nDj=                        ^ RI t ^ RIt^ RIt]P                  P
                  R 4       t]P                  P
                  R 4       t]P                  P
                  R 4       t]P                  P
                  R 4       t	]P                  P                  RR7      R 4       t]P                  P
                  R	 4       t]P                  P
                  R
 4       t]P                  P
                  R 4       t]P                  P
                  R 4       t]P                  P
                  R 4       t]P                  P
                  R 4       t]P                  P
                  R 4       tR# )    Nc                  l   ^ RI Hp  V P                  4       p\        P                  ! R\        P
                  ! 4       4      p\        P                  ! R\        P
                  ! 4       4      p\        P                  ! W#.4      p\        P                  ! R\        P
                  ! 4       4      pVP                  V4      pVP                  V4      pVP                  4       VP                  8X  g   Q hVP                  RWg.\        P                  ! 4       4      pVP                  WV\        P
                  ! 4       4      p	VP                  W4      p
V
P                  4       P                  \        P
                  ! 4       8X  g   Q hV P                  RR7      pV P!                  WJ.\        P"                  ! 4       RV4      pVP$                  P'                  R	4      R8w  g   Q h\        P(                  ! . RO\        P
                  ! 4       R
7      p\        P(                  ! . RO\        P
                  ! 4       R
7      p\        P(                  ! . RO\        P
                  ! 4       R
7      p\        P*                  P-                  W.RR.R7      pVP/                  V4      w  pVP1                  V4      '       g   Q hR# )r   Nabresgreater_thanTdump_irNONE@expr_typenames)
         )r      r      )r   r   r   r   )pyarrow.gandivagandivaTreeExprBuilderpafieldint32schema
make_fieldreturn_typer   make_functionbool_make_ifmake_expressionresultConfigurationmake_projectordefault_memory_poolllvm_irfindarrayRecordBatchfrom_arraysevaluateequals)r   builderfield_afield_br   field_resultnode_anode_b	conditionif_nodeexprconfig	projectorr   r   einput_batchrs                     T/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/tests/test_gandiva.pytest_tree_exp_builderr>      s   %%%'GhhsBHHJ'GhhsBHHJ'GYY)*F88E288:.L(F(F7<<///%%nv6F&(hhj2IooiDG""79D;;=+++""4"0F&&..0&&BI !!(+r111
!
3A
rxxz2A
!
3A..,,aVC:,FK			K	(BA88A;;;    c                  R   ^ RI Hp  \        P                  P	                  \        P
                  ! RR.4      \        P
                  ! RR.4      .RR.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  VP                  P                  R4      4      pVP                  RW4.\        P                  ! 4       4      p\        P                  ! R	\        P                  ! 4       4      pVP                  WV4      pV P                  VP                  V.\        P                  ! 4       4      pVP                  VP!                  4       ^ ,          4      w  p	\        P
                  ! RR
.4      p
V	P#                  V
4      '       g   Q hR# )r   N      ?       @      @g      @r   r   addcg      @)r   r   r   Tabler,   r*   r   r   r   r   r    float64r#   r&   r'   r-   
to_batchesr.   )r   tabler/   r3   r4   sumr2   r7   r9   r<   r:   s              r=   
test_tablerK   B   s>   %HH  "((C:"6#s8L!M"%s-E %%'G 2 23 78F 2 23 78F


'7
FC88C.L""35D&&tfb4468I
 
		E,,.q1	2BA
#sA88A;;;r?   c            	      $   ^ RI Hp  \        P                  P	                  \        P
                  ! \        R4       Uu. uF  pRV,          NK  	  up4      .R.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  R\        P                  ! 4       4      pVP                  RWE.\        P                  ! 4       4      pVP                  V4      pVP!                  4       P"                  \        P                  ! 4       8X  g   Q hV P%                  RR7      pV P'                  VP                  Wx4      p	V	P(                  P+                  R	4      R8w  g   Q hV	P-                  VP/                  4       ^ ,          \        P0                  ! 4       4      p
V
P3                  4       P5                  \        P
                  ! \        R
4      \        P6                  ! 4       R7      4      '       g   Q hR# u upi )r   Ni'  rA   r   g     @@	less_thanTr   r   i  r   r   )r   r   r   rF   r,   r*   ranger   r   r   r   make_literalrG   r    r!   make_conditionr$   r   r%   make_filterr(   r)   r-   rH   r'   to_arrayr.   uint32)r   irI   r/   r3   thousandcondr5   r8   filterr$   s              r=   test_filterrX   ]   s   %HH  "((U5\+J\C!GG\+J"K!L"%(E %%'G 2 23 78F##FBJJL9H  v.@"((*MD&&t,I""bhhj000""4"0F  yAF>>x(B...__U--/2B4J4J4LMF??##BHHU4[ryy{$KLLLL# ,Ks   Hc                     ^ RI Hp  \        P                  ! . RO4      p\        P                  P                  V.R.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  VRR.\        P                  ! 4       4      pVP                  V4      pV P                  VP                  V4      pVP                  VP                  4       ^ ,          \        P                   ! 4       4      pVP#                  4       P%                  \        P                  ! ^^.\        P&                  ! 4       R7      4      '       g   Q h\        P                  ! . RO4      p\        P                  P                  VP)                  \        P*                  ! 4       4      .R.4      pVP                  VP                  P                  R4      4      pVP                  V^^.\        P*                  ! 4       4      pVP                  V4      pV P                  VP                  V4      pVP                  VP                  4       ^ ,          \        P                   ! 4       4      pVP#                  4       P%                  \        P                  ! . RO\        P&                  ! 4       R7      4      '       g   Q h\        P                  ! . RO4      p\        P                  P                  V.R.4      pVP                  VP                  P                  R4      4      pVP                  V^^.\        P,                  ! 4       4      pVP                  V4      pV P                  VP                  V4      pVP                  VP                  4       ^ ,          \        P                   ! 4       4      pVP#                  4       P%                  \        P                  ! . RO\        P&                  ! 4       R7      4      '       g   Q hR# )	r   Nanndr   r   )garZ   r[   diivva)
         ra   r   	         r   rb   )ra   r`   rb      )r   r   r   r*   rF   r,   r   r   r   r   make_in_expressionstringrP   rQ   r-   rH   r'   rR   r.   rS   castr   int64)	r   arrrI   r/   r3   rV   r5   rW   r$   s	            r=   test_in_exprrl   u   s   %
((7
8CHH  #.E %%'G 2 23 78F%%ftTlBIIKHD&&t,I  y9F__U--/2B4J4J4LMF??##BHHaV"))+$FGGGG ((1
2CHH  #((288:"6!7#?E 2 23 78F%%fq!fbhhjAD&&t,I  y9F__U--/2B4J4J4LMF??##BHH\		$LMMMM ((1
2CHH  #.E 2 23 78F%%fq!fbhhjAD&&t,I  y9F__U--/2B4J4J4LMF??##BHH\		$LMMMMr?   z>Gandiva C++ did not have *real* binary, time and date support.)reasonc                  
   ^ RI Hp  \        P                  ! . R
O4      p\        P                  P                  V.R.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  VRR.\        P                  ! 4       4      pVP                  V4      pV P                  VP                  V4      pVP                  VP                  4       ^ ,          \        P                   ! 4       4      pVP#                  4       P%                  \        P                  ! ^^.\        P&                  ! 4       R7      4      '       g   Q h\(        P(                  P+                  R4      p	\(        P(                  P+                  R4      p
\(        P(                  P+                  R4      p\        P                  ! WV.4      p\        P                  P                  V.R.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  WJ.\        P,                  ! R	4      4      pVP                  V4      pV P                  VP                  V4      pVP                  VP                  4       ^ ,          \        P                   ! 4       4      p\/        VP#                  4       4      ^.8X  g   Q hV	P1                  4       pV
P1                  4       pVP1                  4       p\        P                  ! WV.4      p\        P                  P                  V.R.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  WM.\        P2                  ! R	4      4      pVP                  V4      pV P                  VP                  V4      pVP                  VP                  4       ^ ,          \        P                   ! 4       4      p\/        VP#                  4       4      ^.8X  g   Q hV	P5                  4       pV
P5                  4       pVP5                  4       p\        P                  ! VVV.4      p\        P                  P                  V.R.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  VV.\        P6                  ! 4       4      pVP                  V4      pV P                  VP                  V4      pVP                  VP                  4       ^ ,          \        P                   ! 4       4      p\/        VP#                  4       4      ^.8X  g   Q hR# )r   N   an   ndr   r   g,Ag,Ag+Ams)s   garo   rp   s   dis   ivs   va)r   r   r   r*   rF   r,   r   r   r   r   rg   binaryrP   rQ   r-   rH   r'   rR   r.   rS   datetimeutcfromtimestamp	timestamplisttimetime64datedate32)r   rk   rI   r/   r3   rV   r5   rW   r$   
datetime_1
datetime_2
datetime_3time_1time_2time_3date_1date_2date_3s                     r=   test_in_expr_todor      s0    & ((=
>CHH  #.E%%'G 2 23 78F%%fuenbiikJD&&t,I  y9F__U--/2B4J4J4LMF??##BHHaV"))+$FGGGG ""334EFJ""334EFJ""334EFJ
((JJ7
8CHH  #.E%%'G 2 23 78F%%flBLL<NOD&&t,I  y9F__U--/2B4J4J4LMF!"qc))) __F__F__F
((FF+
,CHH  #.E%%'G 2 23 78F%%fh		$HD&&t,I  y9F__U--/2B4J4J4LMF!"qc))) __F__F__F
((FFF+
,CHH  #.E%%'G 2 23 78F%%fvh		DD&&t,I  y9F__U--/2B4J4J4LMF!"qc)))r?   c                     ^ RI Hp  \        P                  P	                  \        P
                  ! . R	O4      \        P
                  ! . R
O4      .RR.4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  VP                  P                  R4      4      pVP                  R\        P                  ! 4       4      pVP                  R\        P                  ! 4       4      pVP                  RW5.\        P                  ! 4       4      pVP                  RW4.\        P                  ! 4       4      pVP                  RWF.\        P                  ! 4       4      p	VP                  VP                  Wx.4      V	.4      p
VP!                  V
4      pV P#                  VP                  V4      pVP%                  VP'                  4       ^ ,          \        P(                  ! 4       4      pVP+                  4       P-                  \        P
                  ! . RO\        P.                  ! 4       R7      4      '       g   Q hR# )r   Nr   r   g      I@g      &@rM   r   r   )rA   g      ?@g      G@rC   g     L@g      F@g      6@)g      @g     F@g      B@g     @R@g     T@g      7@g      S@)r   rd   r   )r   r   r   rF   r,   r*   r   r   r   r   rO   rG   r    r!   make_ormake_andrP   rQ   r-   rH   r'   rR   r.   rS   )r   rI   r/   r3   r4   fiftyelevencond_1cond_2cond_3rV   r5   rW   r$   s                 r=   test_booleanr      s   %HH  
23
34"6 
c
E
 %%'G 2 23 78F 2 23 78F  rzz|4E!!$

5F"";LF"">F3C#%88:/F"";0@"((*MF??G,,f-=>GHD&&t,I  y9F__U--/2B4J4J4LMF??##BHHYRYY[$IJJJJr?   c                  0   ^ RI Hp  V P                  4       pVP                  R\        P
                  ! 4       4       VP                  ^ \        P                  ! 4       4       VP                  ^\        P                  ! 4       4       VP                  ^\        P                  ! 4       4       VP                  ^\        P                  ! 4       4       VP                  ^\        P                  ! 4       4       VP                  ^\        P                  ! 4       4       VP                  ^\        P                  ! 4       4       VP                  ^\        P                  ! 4       4       VP                  R\        P                  ! 4       4       VP                  R\        P                  ! 4       4       VP                  R\        P                   ! 4       4       VP                  R\        P"                  ! 4       4       VP                  RR4       VP                  ^ R4       VP                  ^R	4       VP                  ^R
4       VP                  ^R4       VP                  ^R4       VP                  ^R4       VP                  ^R4       VP                  ^R4       VP                  RR4       VP                  RR4       VP                  RR4       VP                  RR4       \$        P&                  ! \(        4      ;_uu_ 4        VP                  R\        P                  ! 4       4       RRR4       \$        P&                  ! \(        4      ;_uu_ 4        VP                  RR4       RRR4       R#   + '       g   i     LO; i  + '       g   i     R# ; i)r   NTg       @g      "@hellos   worldbooluint8uint16rS   uint64int8int16r   rj   float32rG   rh   rr   )r   r   r   rO   r   r!   r   r   rS   r   r   r   r   rj   r   rG   rh   rr   pytestraises	TypeError)r   r/   s     r=   test_literalsr      se   %%%'Grxxz*BHHJ'BIIK(BIIK(BIIK(BGGI&BHHJ'BHHJ'BHHJ'bjjl+bjjl+"))+.299;/v&G$H%H%H%F#G$G$G$i(i((+8,	y	!	!Wbhhj1 
"	y	!	!T4( 
"	! 
"	!	!	!	!s   &M1N1N	N	c                  v   ^ RI Hp  . ROp\        P                  ! V\        P                  ! 4       R7      p\        P
                  P                  V.R.R7      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  R\        P                  ! 4       4      pVP                  RWV.\        P                  ! 4       4      p\        P                  ! R\        P                  ! 4       4      pVP                  Wx4      p	V P                  VP                  V	.\        P                   ! 4       4      p
V
P#                  VP%                  4       ^ ,          4      w  p\        P                  ! . R	O\        P                  ! 4       R7      pVP'                  V4      '       g   Q hR# )
r   Nr   r   r   z%spark%liker   )parksparklezbright spark and firespark)FTTT)r   r   r   r*   rh   rF   r,   r   r   r   r   rO   r    r!   r#   r&   r'   r-   rH   r.   )r   elementsdatarI   r/   r3   regexr   r2   r7   r9   r<   r   s                r=   
test_regexr   '  s5   %DH88H299;/DHH  $u 5E%%'G 2 23 78F  BIIK8E  &"((*ED88C,L""46D&&tfb4468I 
		E,,.q1	2BA
*<A88A;;;r?   c                  $   ^ RI Hp  V P                  4       p\        V^ ,          P	                  4       4      \
        P                  J g   Q h\        V^ ,          P                  4       4      \        J g   Q h\        V^ ,          R4      '       g   Q hR# )r   Nname)
r   r   "get_registered_function_signaturesr   r   r   DataTypeparam_typesrv   hasattr)r   
signaturess     r=   'test_get_registered_function_signaturesr   ?  sn    %;;=J
1))+,;;;
1))+,444:a=&))))r?   c                     ^ RI Hp  \        P                  ! 4       p\        P                  ! . R	O\        P
                  ! 4       4      p\        P                  ! . R
O\        P
                  ! 4       4      p\        P                  ! . RO\        P
                  ! 4       4      p\        P                  P                  W#V.. RO4      p\        P                  ! R\        P
                  ! 4       4      pV P                  4       pVP                  VP                  P                  R4      4      pVP                  VP                  P                  R4      4      p	VP                  VP                  P                  R4      4      p
VP                  RW.\        P                  ! 4       4      pVP                  V4      pVP                  RW.\        P                  ! 4       4      pVP                  VW\        P
                  ! 4       4      pVP!                  W4      pV P#                  VP                  V4      pV P%                  VP                  V.VR4      pVP'                  VP)                  4       ^ ,          V4      pVP'                  VP)                  4       ^ ,          V4      w  p\        P                  ! . RO\        P
                  ! 4       4      pVP+                  V4      '       g   Q hR# )r   Nr   r   rE   r   r   rM   UINT32)r   r   r   r         )r   r   r   r   r   r`   )ra            N)r   r   rE   )ra   r   N)r   r   r   r'   r*   r   rF   r,   r   r   r   r   r    r!   rP   r"   r#   rQ   r&   r-   rH   r.   )r   mpoolarray0array1array2rI   r2   r/   r3   r4   node_cgreater_than_functionfilter_conditionproject_conditionr6   r7   rW   r9   selection_vectorr<   exps                        r=   test_filter_projectr   I  s'   %""$EXX.
;FXX,bhhj9FXX0"((*=FHH  &&!9?KE88E288:.L%%'G 2 23 78F 2 23 78F 2 23 78F#11.392BBHHJP--  --k/5.>
Loo/$bhhj:G""79D   /?@F &&tfeX/I u'7'7'9!'<eD 
		1/
1BA ((>288:
.C88C===r?   c            	         ^ RI Hp  V P                  4       p\        VP	                  R\
        P                  ! 4       4      4      P                  R4      '       g   Q h\        VP	                  ^\
        P                  ! 4       4      4      R8X  g   Q h\        VP                  \
        P                  ! R\
        P                  ! 4       4      4      4      R8X  g   Q h\        VP                  \
        P                  ! R\
        P                  ! 4       4      4      4      R8X  g   Q hVP                  \
        P                  ! R	\
        P                  ! 4       4      4      pVP                  R
V.\
        P                  ! 4       4      p\        V4      R8X  g   Q hVP                  \
        P                  ! R\
        P                  ! 4       4      4      pVP                  W4.4      p\        V4      R8X  g   Q hR# )r   NrB   z(const double) 2 raw(z(const int64) 2xz
(double) xyz
(string) yznotzbool not((bool) z)zbool not((bool) z) && (bool) y)r   r   r   strrO   r   rG   
startswithrj   r   r   rh   r!   r    r   )r   r/   field_z	func_nodefield_yand_nodes         r=   test_to_stringr   x  sf   %%%'Gw##C6 345 5 5w##Arxxz237HHHHw!!"((3

"=>?<OOOw!!"((3		"<=>,NNN  #rxxz!:;G%%egY
CIy>1111  #rxxz!:;G 45Hx=<<<<r?   c                     ^ RI Hp  V P                  4       p\        P                  ! R\        P
                  ! 4       4      p\        P                  ! V.4      pVP                  R\        P                  ! 4       4      p\        P                  ! \        4      ;_uu_ 4        VP                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  VRRR4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  VR.4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP                  RV.4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP!                  R. RO\        P
                  ! 4       4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP#                  RV4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP%                  R4       RRR4       \        P                  ! \        4      ;_uu_ 4        VP'                  RVR.\        P                  ! 4       4       RRR4       \        P                  ! \        4      ;_uu_ 4        V P)                  VR.4       RRR4       \        P                  ! \        4      ;_uu_ 4        V P+                  VR4       RRR4       R#   + '       g   i     ELh; i  + '       g   i     EL=; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELY; i  + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     R# ; i)r   Nr   TrM   )ra   rd   r`   )r   r   r   r   r   r   r   rO   r!   r   r   r   r   r"   r   r   rg   r#   rP   r    r&   rQ   )r   r/   field_xr   literal_trues        r=   test_rejects_noner     s\   %%%'GhhsBHHJ'GYYy!F''bhhj9L	y	!	!4  
" 
y	!	!dD$7 
" 
y	!	!,-. 
" 
y	!	!|,- 
" 
y	!	!""4BHHJ? 
" 
y	!	!g. 
" 
y	!	!t$ 
" 
y	!	!kL$+?L 
" 
y	!	!vv. 
" 
y	!	!FD) 
"	!7 
"	!	! 
"	!	! 
"	!	! 
"	!	! 
"	!	! 
"	!	! 
"	!	! 
"	!	! 
"	! 
"	!	!sx   LL$L8M)M )M4&N")N5N03OL!	$L5	8M		M	 M1	4N	N	N-	0O 	O	)rs   r   pyarrowr   markr   r>   rK   rX   rl   skipr   r   r   r   r   r   r   r    r?   r=   <module>r      s  $    & &R  4 M M. !N !NH  2 3E*3E*P K K4 $) $)N  . * * + +\ = =& %* %*r?   