in src/afs.cc [1419:1439]
arrow::Status execute(SPIPlanPtr plan,
const std::shared_ptr<arrow::RecordBatch>& recordBatch,
SPIExecuteOptions& options,
OnSuccessFunc onSuccess)
{
const auto& columns = recordBatch->columns();
for (int64_t i = 0; i < recordBatch->num_rows(); ++i)
{
ARROW_RETURN_NOT_OK(assign_parameters(recordBatch, i, columns, options));
auto result = SPI_execute_plan_extended(plan, &options);
if (result <= 0)
{
return arrow::Status::Invalid("failed to run a prepared statement: ",
SPI_result_code_string(result),
": ",
query_);
}
ARROW_RETURN_NOT_OK(onSuccess());
}
return arrow::Status::OK();
}