# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # distutils: language = c++ from pyarrow.includes.common cimport * from pyarrow.includes.libarrow cimport * cdef extern from "arrow/acero/options.h" namespace "arrow::acero" nogil: cdef enum CJoinType "arrow::acero::JoinType": CJoinType_LEFT_SEMI "arrow::acero::JoinType::LEFT_SEMI" CJoinType_RIGHT_SEMI "arrow::acero::JoinType::RIGHT_SEMI" CJoinType_LEFT_ANTI "arrow::acero::JoinType::LEFT_ANTI" CJoinType_RIGHT_ANTI "arrow::acero::JoinType::RIGHT_ANTI" CJoinType_INNER "arrow::acero::JoinType::INNER" CJoinType_LEFT_OUTER "arrow::acero::JoinType::LEFT_OUTER" CJoinType_RIGHT_OUTER "arrow::acero::JoinType::RIGHT_OUTER" CJoinType_FULL_OUTER "arrow::acero::JoinType::FULL_OUTER" cdef cppclass CExecNodeOptions "arrow::acero::ExecNodeOptions": pass cdef cppclass CSourceNodeOptions "arrow::acero::SourceNodeOptions"(CExecNodeOptions): pass cdef cppclass CTableSourceNodeOptions "arrow::acero::TableSourceNodeOptions"(CExecNodeOptions): CTableSourceNodeOptions(shared_ptr[CTable] table) CTableSourceNodeOptions(shared_ptr[CTable] table, int64_t max_batch_size) cdef cppclass CSinkNodeOptions "arrow::acero::SinkNodeOptions"(CExecNodeOptions): pass cdef cppclass CFilterNodeOptions "arrow::acero::FilterNodeOptions"(CExecNodeOptions): CFilterNodeOptions(CExpression) cdef cppclass CProjectNodeOptions "arrow::acero::ProjectNodeOptions"(CExecNodeOptions): CProjectNodeOptions(vector[CExpression] expressions) CProjectNodeOptions(vector[CExpression] expressions, vector[c_string] names) cdef cppclass CAggregateNodeOptions "arrow::acero::AggregateNodeOptions"(CExecNodeOptions): CAggregateNodeOptions(vector[CAggregate] aggregates, vector[CFieldRef] names) cdef cppclass COrderByNodeOptions "arrow::acero::OrderByNodeOptions"(CExecNodeOptions): COrderByNodeOptions(COrdering ordering) cdef cppclass CHashJoinNodeOptions "arrow::acero::HashJoinNodeOptions"(CExecNodeOptions): CHashJoinNodeOptions(CJoinType, vector[CFieldRef] in_left_keys, vector[CFieldRef] in_right_keys) CHashJoinNodeOptions(CJoinType, vector[CFieldRef] in_left_keys, vector[CFieldRef] in_right_keys, CExpression filter, c_string output_suffix_for_left, c_string output_suffix_for_right) CHashJoinNodeOptions(CJoinType join_type, vector[CFieldRef] left_keys, vector[CFieldRef] right_keys, vector[CFieldRef] left_output, vector[CFieldRef] right_output, CExpression filter, c_string output_suffix_for_left, c_string output_suffix_for_right) cdef struct CAsofJoinKeys "arrow::acero::AsofJoinNodeOptions::Keys": CFieldRef on_key vector[CFieldRef] by_key cdef cppclass CAsofJoinNodeOptions "arrow::acero::AsofJoinNodeOptions"(CExecNodeOptions): CAsofJoinNodeOptions(vector[CAsofJoinKeys] keys, int64_t tolerance) cdef extern from "arrow/acero/exec_plan.h" namespace "arrow::acero" nogil: cdef cppclass CDeclaration "arrow::acero::Declaration": cppclass Input: Input(CExecNode*) Input(CDeclaration) c_string label vector[Input] inputs CDeclaration() CDeclaration(c_string factory_name, CExecNodeOptions options) CDeclaration(c_string factory_name, vector[Input] inputs, shared_ptr[CExecNodeOptions] options) @staticmethod CDeclaration Sequence(vector[CDeclaration] decls) cdef cppclass CExecNode "arrow::acero::ExecNode": const vector[CExecNode*]& inputs() const const shared_ptr[CSchema]& output_schema() const CResult[shared_ptr[CTable]] DeclarationToTable( CDeclaration declaration, c_bool use_threads ) CResult[shared_ptr[CTable]] DeclarationToTable( CDeclaration declaration, c_bool use_threads, CMemoryPool* memory_pool, CFunctionRegistry* function_registry ) CResult[unique_ptr[CRecordBatchReader]] DeclarationToReader( CDeclaration declaration, c_bool use_threads ) CResult[c_string] DeclarationToString(const CDeclaration& declaration)