]> git.proxmox.com Git - ceph.git/blame - ceph/src/arrow/python/pyarrow/includes/libgandiva.pxd
import quincy 17.2.0
[ceph.git] / ceph / src / arrow / python / pyarrow / includes / libgandiva.pxd
CommitLineData
1d09f67e
TL
1# Licensed to the Apache Software Foundation (ASF) under one
2# or more contributor license agreements. See the NOTICE file
3# distributed with this work for additional information
4# regarding copyright ownership. The ASF licenses this file
5# to you under the Apache License, Version 2.0 (the
6# "License"); you may not use this file except in compliance
7# with the License. You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing,
12# software distributed under the License is distributed on an
13# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14# KIND, either express or implied. See the License for the
15# specific language governing permissions and limitations
16# under the License.
17
18# distutils: language = c++
19
20from libcpp.string cimport string as c_string
21from libcpp.unordered_set cimport unordered_set as c_unordered_set
22from libc.stdint cimport int64_t, int32_t, uint8_t, uintptr_t
23
24from pyarrow.includes.common cimport *
25from pyarrow.includes.libarrow cimport *
26
27cdef extern from "gandiva/node.h" namespace "gandiva" nogil:
28
29 cdef cppclass CNode" gandiva::Node":
30 c_string ToString()
31 shared_ptr[CDataType] return_type()
32
33 cdef cppclass CExpression" gandiva::Expression":
34 c_string ToString()
35 shared_ptr[CNode] root()
36 shared_ptr[CField] result()
37
38 ctypedef vector[shared_ptr[CNode]] CNodeVector" gandiva::NodeVector"
39
40 ctypedef vector[shared_ptr[CExpression]] \
41 CExpressionVector" gandiva::ExpressionVector"
42
43cdef extern from "gandiva/selection_vector.h" namespace "gandiva" nogil:
44
45 cdef cppclass CSelectionVector" gandiva::SelectionVector":
46
47 shared_ptr[CArray] ToArray()
48
49 enum CSelectionVector_Mode" gandiva::SelectionVector::Mode":
50 CSelectionVector_Mode_NONE" gandiva::SelectionVector::Mode::MODE_NONE"
51 CSelectionVector_Mode_UINT16" \
52 gandiva::SelectionVector::Mode::MODE_UINT16"
53 CSelectionVector_Mode_UINT32" \
54 gandiva::SelectionVector::Mode::MODE_UINT32"
55 CSelectionVector_Mode_UINT64" \
56 gandiva::SelectionVector::Mode::MODE_UINT64"
57
58 cdef CStatus SelectionVector_MakeInt16\
59 "gandiva::SelectionVector::MakeInt16"(
60 int64_t max_slots, CMemoryPool* pool,
61 shared_ptr[CSelectionVector]* selection_vector)
62
63 cdef CStatus SelectionVector_MakeInt32\
64 "gandiva::SelectionVector::MakeInt32"(
65 int64_t max_slots, CMemoryPool* pool,
66 shared_ptr[CSelectionVector]* selection_vector)
67
68 cdef CStatus SelectionVector_MakeInt64\
69 "gandiva::SelectionVector::MakeInt64"(
70 int64_t max_slots, CMemoryPool* pool,
71 shared_ptr[CSelectionVector]* selection_vector)
72
73cdef inline CSelectionVector_Mode _ensure_selection_mode(str name) except *:
74 uppercase = name.upper()
75 if uppercase == 'NONE':
76 return CSelectionVector_Mode_NONE
77 elif uppercase == 'UINT16':
78 return CSelectionVector_Mode_UINT16
79 elif uppercase == 'UINT32':
80 return CSelectionVector_Mode_UINT32
81 elif uppercase == 'UINT64':
82 return CSelectionVector_Mode_UINT64
83 else:
84 raise ValueError('Invalid value for Selection Mode: {!r}'.format(name))
85
86cdef inline str _selection_mode_name(CSelectionVector_Mode ctype):
87 if ctype == CSelectionVector_Mode_NONE:
88 return 'NONE'
89 elif ctype == CSelectionVector_Mode_UINT16:
90 return 'UINT16'
91 elif ctype == CSelectionVector_Mode_UINT32:
92 return 'UINT32'
93 elif ctype == CSelectionVector_Mode_UINT64:
94 return 'UINT64'
95 else:
96 raise RuntimeError('Unexpected CSelectionVector_Mode value')
97
98cdef extern from "gandiva/condition.h" namespace "gandiva" nogil:
99
100 cdef cppclass CCondition" gandiva::Condition":
101 c_string ToString()
102 shared_ptr[CNode] root()
103 shared_ptr[CField] result()
104
105cdef extern from "gandiva/arrow.h" namespace "gandiva" nogil:
106
107 ctypedef vector[shared_ptr[CArray]] CArrayVector" gandiva::ArrayVector"
108
109
110cdef extern from "gandiva/tree_expr_builder.h" namespace "gandiva" nogil:
111
112 cdef shared_ptr[CNode] TreeExprBuilder_MakeBoolLiteral \
113 "gandiva::TreeExprBuilder::MakeLiteral"(c_bool value)
114
115 cdef shared_ptr[CNode] TreeExprBuilder_MakeUInt8Literal \
116 "gandiva::TreeExprBuilder::MakeLiteral"(uint8_t value)
117
118 cdef shared_ptr[CNode] TreeExprBuilder_MakeUInt16Literal \
119 "gandiva::TreeExprBuilder::MakeLiteral"(uint16_t value)
120
121 cdef shared_ptr[CNode] TreeExprBuilder_MakeUInt32Literal \
122 "gandiva::TreeExprBuilder::MakeLiteral"(uint32_t value)
123
124 cdef shared_ptr[CNode] TreeExprBuilder_MakeUInt64Literal \
125 "gandiva::TreeExprBuilder::MakeLiteral"(uint64_t value)
126
127 cdef shared_ptr[CNode] TreeExprBuilder_MakeInt8Literal \
128 "gandiva::TreeExprBuilder::MakeLiteral"(int8_t value)
129
130 cdef shared_ptr[CNode] TreeExprBuilder_MakeInt16Literal \
131 "gandiva::TreeExprBuilder::MakeLiteral"(int16_t value)
132
133 cdef shared_ptr[CNode] TreeExprBuilder_MakeInt32Literal \
134 "gandiva::TreeExprBuilder::MakeLiteral"(int32_t value)
135
136 cdef shared_ptr[CNode] TreeExprBuilder_MakeInt64Literal \
137 "gandiva::TreeExprBuilder::MakeLiteral"(int64_t value)
138
139 cdef shared_ptr[CNode] TreeExprBuilder_MakeFloatLiteral \
140 "gandiva::TreeExprBuilder::MakeLiteral"(float value)
141
142 cdef shared_ptr[CNode] TreeExprBuilder_MakeDoubleLiteral \
143 "gandiva::TreeExprBuilder::MakeLiteral"(double value)
144
145 cdef shared_ptr[CNode] TreeExprBuilder_MakeStringLiteral \
146 "gandiva::TreeExprBuilder::MakeStringLiteral"(const c_string& value)
147
148 cdef shared_ptr[CNode] TreeExprBuilder_MakeBinaryLiteral \
149 "gandiva::TreeExprBuilder::MakeBinaryLiteral"(const c_string& value)
150
151 cdef shared_ptr[CExpression] TreeExprBuilder_MakeExpression\
152 "gandiva::TreeExprBuilder::MakeExpression"(
153 shared_ptr[CNode] root_node, shared_ptr[CField] result_field)
154
155 cdef shared_ptr[CNode] TreeExprBuilder_MakeFunction \
156 "gandiva::TreeExprBuilder::MakeFunction"(
157 const c_string& name, const CNodeVector& children,
158 shared_ptr[CDataType] return_type)
159
160 cdef shared_ptr[CNode] TreeExprBuilder_MakeField \
161 "gandiva::TreeExprBuilder::MakeField"(shared_ptr[CField] field)
162
163 cdef shared_ptr[CNode] TreeExprBuilder_MakeIf \
164 "gandiva::TreeExprBuilder::MakeIf"(
165 shared_ptr[CNode] condition, shared_ptr[CNode] this_node,
166 shared_ptr[CNode] else_node, shared_ptr[CDataType] return_type)
167
168 cdef shared_ptr[CNode] TreeExprBuilder_MakeAnd \
169 "gandiva::TreeExprBuilder::MakeAnd"(const CNodeVector& children)
170
171 cdef shared_ptr[CNode] TreeExprBuilder_MakeOr \
172 "gandiva::TreeExprBuilder::MakeOr"(const CNodeVector& children)
173
174 cdef shared_ptr[CCondition] TreeExprBuilder_MakeCondition \
175 "gandiva::TreeExprBuilder::MakeCondition"(
176 shared_ptr[CNode] condition)
177
178 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionInt32 \
179 "gandiva::TreeExprBuilder::MakeInExpressionInt32"(
180 shared_ptr[CNode] node, const c_unordered_set[int32_t]& values)
181
182 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionInt64 \
183 "gandiva::TreeExprBuilder::MakeInExpressionInt64"(
184 shared_ptr[CNode] node, const c_unordered_set[int64_t]& values)
185
186 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionTime32 \
187 "gandiva::TreeExprBuilder::MakeInExpressionTime32"(
188 shared_ptr[CNode] node, const c_unordered_set[int32_t]& values)
189
190 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionTime64 \
191 "gandiva::TreeExprBuilder::MakeInExpressionTime64"(
192 shared_ptr[CNode] node, const c_unordered_set[int64_t]& values)
193
194 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionDate32 \
195 "gandiva::TreeExprBuilder::MakeInExpressionDate32"(
196 shared_ptr[CNode] node, const c_unordered_set[int32_t]& values)
197
198 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionDate64 \
199 "gandiva::TreeExprBuilder::MakeInExpressionDate64"(
200 shared_ptr[CNode] node, const c_unordered_set[int64_t]& values)
201
202 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionTimeStamp \
203 "gandiva::TreeExprBuilder::MakeInExpressionTimeStamp"(
204 shared_ptr[CNode] node, const c_unordered_set[int64_t]& values)
205
206 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionString \
207 "gandiva::TreeExprBuilder::MakeInExpressionString"(
208 shared_ptr[CNode] node, const c_unordered_set[c_string]& values)
209
210 cdef shared_ptr[CNode] TreeExprBuilder_MakeInExpressionBinary \
211 "gandiva::TreeExprBuilder::MakeInExpressionBinary"(
212 shared_ptr[CNode] node, const c_unordered_set[c_string]& values)
213
214cdef extern from "gandiva/projector.h" namespace "gandiva" nogil:
215
216 cdef cppclass CProjector" gandiva::Projector":
217
218 CStatus Evaluate(
219 const CRecordBatch& batch, CMemoryPool* pool,
220 const CArrayVector* output)
221
222 CStatus Evaluate(
223 const CRecordBatch& batch,
224 const CSelectionVector* selection,
225 CMemoryPool* pool,
226 const CArrayVector* output)
227
228 c_string DumpIR()
229
230 cdef CStatus Projector_Make \
231 "gandiva::Projector::Make"(
232 shared_ptr[CSchema] schema, const CExpressionVector& children,
233 shared_ptr[CProjector]* projector)
234
235 cdef CStatus Projector_Make \
236 "gandiva::Projector::Make"(
237 shared_ptr[CSchema] schema, const CExpressionVector& children,
238 CSelectionVector_Mode mode,
239 shared_ptr[CConfiguration] configuration,
240 shared_ptr[CProjector]* projector)
241
242cdef extern from "gandiva/filter.h" namespace "gandiva" nogil:
243
244 cdef cppclass CFilter" gandiva::Filter":
245
246 CStatus Evaluate(
247 const CRecordBatch& batch,
248 shared_ptr[CSelectionVector] out_selection)
249
250 c_string DumpIR()
251
252 cdef CStatus Filter_Make \
253 "gandiva::Filter::Make"(
254 shared_ptr[CSchema] schema, shared_ptr[CCondition] condition,
255 shared_ptr[CFilter]* filter)
256
257cdef extern from "gandiva/function_signature.h" namespace "gandiva" nogil:
258
259 cdef cppclass CFunctionSignature" gandiva::FunctionSignature":
260
261 CFunctionSignature(const c_string& base_name,
262 vector[shared_ptr[CDataType]] param_types,
263 shared_ptr[CDataType] ret_type)
264
265 shared_ptr[CDataType] ret_type() const
266
267 const c_string& base_name() const
268
269 vector[shared_ptr[CDataType]] param_types() const
270
271 c_string ToString() const
272
273cdef extern from "gandiva/expression_registry.h" namespace "gandiva" nogil:
274
275 cdef vector[shared_ptr[CFunctionSignature]] \
276 GetRegisteredFunctionSignatures()
277
278cdef extern from "gandiva/configuration.h" namespace "gandiva" nogil:
279
280 cdef cppclass CConfiguration" gandiva::Configuration":
281 pass
282
283 cdef cppclass CConfigurationBuilder \
284 " gandiva::ConfigurationBuilder":
285 @staticmethod
286 shared_ptr[CConfiguration] DefaultConfiguration()