
    <>i=                        S SK r S SKrS SKr\R                  R
                  S 5       r\R                  R
                  S 5       r\R                  R
                  S 5       r\R                  R
                  S 5       r	\R                  R                  SS9S 5       r\R                  R
                  S	 5       r\R                  R
                  S
 5       r\R                  R
                  S 5       r\R                  R
                  S 5       r\R                  R
                  S 5       r\R                  R
                  S 5       r\R                  R
                  S 5       rg)    Nc                  D   SS K Jn   U R                  5       n[        R                  " S[        R
                  " 5       5      n[        R                  " S[        R
                  " 5       5      n[        R                  " X#/5      n[        R                  " S[        R
                  " 5       5      nUR                  U5      nUR                  U5      nUR                  5       UR                  :X  d   eUR                  SXg/[        R                  " 5       5      nUR                  XU[        R
                  " 5       5      n	UR                  X5      n
U
R                  5       R                  [        R
                  " 5       :X  d   eU R                  SS9nU R!                  XJ/[        R"                  " 5       SU5      nUR$                  R'                  S	5      S
:w  d   e[        R(                  " / SQ[        R
                  " 5       S9n[        R(                  " / SQ[        R
                  " 5       S9n[        R(                  " / SQ[        R
                  " 5       S9n[        R*                  R-                  X/SS/S9nUR/                  U5      u  nUR1                  U5      (       d   eg )Nr   abresgreater_thanTdump_irNONE@expr_)
         type)r      r      )r   r   r   r   names)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                     Y/var/www/html/land-tabula/venv/lib/python3.13/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                  F   SS K Jn   [        R                  R	                  [        R
                  " SS/5      [        R
                  " SS/5      /SS/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  UR                  R                  S5      5      nUR                  SX4/[        R                  " 5       5      n[        R                  " S	[        R                  " 5       5      nUR                  XV5      nU R                  UR                  U/[        R                  " 5       5      nUR                  UR!                  5       S   5      u  n	[        R
                  " SS
/5      n
U	R#                  U
5      (       d   eg )Nr         ?       @      @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            	         SS K Jn   [        R                  R	                  [        R
                  " [        S5       Vs/ s H  nSU-  PM
     sn5      /S/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  S[        R                  " 5       5      nUR                  SXE/[        R                  " 5       5      nUR                  U5      nUR!                  5       R"                  [        R                  " 5       :X  d   eU R%                  SS9nU R'                  UR                  Xx5      n	U	R(                  R+                  S	5      S
:w  d   eU	R-                  UR/                  5       S   [        R0                  " 5       5      n
U
R3                  5       R5                  [        R
                  " [        S5      [        R6                  " 5       S95      (       d   eg s  snf )Nr   i'  rA   r   g     @@	less_thanTr   r   r   i  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!G\+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   G<c                     SS K Jn   [        R                  " / SQ5      n[        R                  R                  U/S/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  USS/[        R                  " 5       5      nUR                  U5      nU R                  UR                  U5      nUR                  UR                  5       S   [        R                   " 5       5      nUR#                  5       R%                  [        R                  " SS/[        R&                  " 5       S95      (       d   e[        R                  " / S	Q5      n[        R                  R                  UR)                  [        R*                  " 5       5      /S/5      nUR                  UR                  R                  S5      5      nUR                  USS
/[        R*                  " 5       5      nUR                  U5      nU R                  UR                  U5      nUR                  UR                  5       S   [        R                   " 5       5      nUR#                  5       R%                  [        R                  " / SQ[        R&                  " 5       S95      (       d   e[        R                  " / S	Q5      n[        R                  R                  U/S/5      nUR                  UR                  R                  S5      5      nUR                  USS
/[        R,                  " 5       5      nUR                  U5      nU R                  UR                  U5      nUR                  UR                  5       S   [        R                   " 5       5      nUR#                  5       R%                  [        R                  " / SQ[        R&                  " 5       S95      (       d   eg )Nr   )gaannddiivvar   r[   r\         r   )
   r`      r`   r   	   ra      r   rc   r   )r`   rb   rc      )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                  
   SS K Jn   [        R                  " / SQ5      n[        R                  R                  U/S/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  USS/[        R                  " 5       5      nUR                  U5      nU R                  UR                  U5      nUR                  UR                  5       S   [        R                   " 5       5      nUR#                  5       R%                  [        R                  " SS/[        R&                  " 5       S95      (       d   e[(        R(                  R+                  S	5      n	[(        R(                  R+                  S
5      n
[(        R(                  R+                  S5      n[        R                  " XU/5      n[        R                  R                  U/S/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  XJ/[        R,                  " S5      5      nUR                  U5      nU R                  UR                  U5      nUR                  UR                  5       S   [        R                   " 5       5      n[/        UR#                  5       5      S/:X  d   eU	R1                  5       nU
R1                  5       nUR1                  5       n[        R                  " XU/5      n[        R                  R                  U/S/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  XM/[        R2                  " S5      5      nUR                  U5      nU R                  UR                  U5      nUR                  UR                  5       S   [        R                   " 5       5      n[/        UR#                  5       5      S/:X  d   eU	R5                  5       nU
R5                  5       nUR5                  5       n[        R                  " UUU/5      n[        R                  R                  U/S/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  UU/[        R6                  " 5       5      nUR                  U5      nU R                  UR                  U5      nUR                  UR                  5       S   [        R                   " 5       5      n[/        UR#                  5       5      S/:X  d   eg )Nr   )s   ga   an   nds   dis   ivs   var   ro   rp   r`   ra   r   g,Ag,Ag+Ams)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                     SS K Jn   [        R                  R	                  [        R
                  " / SQ5      [        R
                  " / SQ5      /SS/5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  UR                  R                  S5      5      nUR                  S[        R                  " 5       5      nUR                  S[        R                  " 5       5      nUR                  SX5/[        R                  " 5       5      nUR                  S	X4/[        R                  " 5       5      nUR                  SXF/[        R                  " 5       5      n	UR                  UR                  Xx/5      U	/5      n
UR!                  U
5      nU R#                  UR                  U5      nUR%                  UR'                  5       S   [        R(                  " 5       5      nUR+                  5       R-                  [        R
                  " / S
Q[        R.                  " 5       S95      (       d   eg )Nr   )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   r   g      I@g      &@rM   r   )r   ra   r   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                     SS K Jn   U R                  5       nUR                  S[        R
                  " 5       5        UR                  S[        R                  " 5       5        UR                  S[        R                  " 5       5        UR                  S[        R                  " 5       5        UR                  S[        R                  " 5       5        UR                  S[        R                  " 5       5        UR                  S[        R                  " 5       5        UR                  S[        R                  " 5       5        UR                  S	[        R                  " 5       5        UR                  S
[        R                  " 5       5        UR                  S[        R                  " 5       5        UR                  S[        R                   " 5       5        UR                  S[        R"                  " 5       5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  S	S5        UR                  S
S5        UR                  SS5        UR                  SS5        UR                  SS5        [$        R&                  " [(        5         UR                  S[        R                  " 5       5        S S S 5        [$        R&                  " [(        5         UR                  SS 5        S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr   Tr`   ra   rb   rc   r   re      g       @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      s\   %%%'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   <&M M1 
M.1
M?c                  X   SS K Jn   / SQn[        R                  " U[        R                  " 5       S9n[        R
                  R                  U/S/S9nU R                  5       nUR                  UR                  R                  S5      5      nUR                  S[        R                  " 5       5      nUR                  SXV/[        R                  " 5       5      n[        R                  " S[        R                  " 5       5      nUR                  Xx5      n	U R                  UR                  U	/[        R                   " 5       5      n
U
R#                  UR%                  5       S   5      u  n[        R                  " / S	Q[        R                  " 5       S9nUR'                  U5      (       d   eg )
Nr   )parksparklezbright spark and firesparkr   r   r   z%spark%liker   )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                     SS K Jn   U R                  5       n[        US   R	                  5       5      [
        R                  L d   e[        US   R                  5       5      [        L d   e[        US   S5      (       d   eg )Nr   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                     SS K Jn   [        R                  " 5       n[        R                  " / SQ[        R
                  " 5       5      n[        R                  " / SQ[        R
                  " 5       5      n[        R                  " / SQ[        R
                  " 5       5      n[        R                  R                  X#U// SQ5      n[        R                  " S[        R
                  " 5       5      nU R                  5       nUR                  UR                  R                  S5      5      nUR                  UR                  R                  S5      5      n	UR                  UR                  R                  S	5      5      n
UR                  S
X/[        R                  " 5       5      nUR                  U5      nUR                  SX/[        R                  " 5       5      nUR                  UX[        R
                  " 5       5      nUR!                  X5      nU R#                  UR                  U5      nU R%                  UR                  U/US5      nUR'                  UR)                  5       S   U5      nUR'                  UR)                  5       S   U5      u  n[        R                  " / SQ[        R
                  " 5       5      nUR+                  U5      (       d   eg )Nr   )r   r   r   r         )r   r   r   r   r   rb   )r`            N)r   r   rE   r   r   r   rE   r   rM   UINT32)r`   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            	         SS K Jn   U R                  5       n[        UR	                  S[
        R                  " 5       5      5      R                  S5      (       d   e[        UR	                  S[
        R                  " 5       5      5      S:X  d   e[        UR                  [
        R                  " S[
        R                  " 5       5      5      5      S:X  d   e[        UR                  [
        R                  " S[
        R                  " 5       5      5      5      S	:X  d   eUR                  [
        R                  " S
[
        R                  " 5       5      5      nUR                  SU/[
        R                  " 5       5      n[        U5      S:X  d   eUR                  [
        R                  " S[
        R                  " 5       5      5      nUR                  X4/5      n[        U5      S:X  d   eg )Nr   rB   z(const double) 2 raw(ra   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                     SS K Jn   U R                  5       n[        R                  " S[        R
                  " 5       5      n[        R                  " U/5      nUR                  S[        R                  " 5       5      n[        R                  " [        5         UR                  S 5        S S S 5        [        R                  " [        5         UR                  US S S 5        S S S 5        [        R                  " [        5         UR                  US /5        S S S 5        [        R                  " [        5         UR                  S U/5        S S S 5        [        R                  " [        5         UR!                  S / SQ[        R
                  " 5       5        S S S 5        [        R                  " [        5         UR#                  S U5        S S S 5        [        R                  " [        5         UR%                  S 5        S S S 5        [        R                  " [        5         UR'                  SUS /[        R                  " 5       5        S S S 5        [        R                  " [        5         U R)                  US /5        S S S 5        [        R                  " [        5         U R+                  US 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNw= f! , (       d  f       GNT= f! , (       d  f       GN2= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   T)r`   ra   rb   rM   )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   J?KK#8K5.)L9L.L+")L=-M#M?
K
K #
K25
L
L
L(+
L:=
M
M
M-)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?   