OmniSciDB  17c254d2f8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ArrowResultSet.h File Reference
#include "CompilationOptions.h"
#include "DataMgr/DataMgr.h"
#include "Descriptors/RelAlgExecutionDescriptor.h"
#include "ResultSet.h"
#include "TargetMetaInfo.h"
#include "TargetValue.h"
#include <type_traits>
#include "arrow/api.h"
#include "arrow/ipc/api.h"
+ Include dependency graph for ArrowResultSet.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  ArrowResultSetRowIterator
 
struct  ArrowResult
 
class  ArrowResultSet
 
class  ArrowResultSetConverter
 
struct  ArrowResultSetConverter::ColumnBuilder
 
struct  ArrowResultSetConverter::SerializedArrowOutput
 

Typedefs

using ValueArray = boost::variant< std::vector< bool >, std::vector< int8_t >, std::vector< int16_t >, std::vector< int32_t >, std::vector< int64_t >, std::vector< float >, std::vector< double >, std::vector< std::string >>
 

Functions

std::unique_ptr< ArrowResultSetresult_set_arrow_loopback (const ExecutionResult &results)
 
std::unique_ptr< ArrowResultSetresult_set_arrow_loopback (const ExecutionResult *results, const std::shared_ptr< ResultSet > &rows)
 
template<typename T >
constexpr auto scale_epoch_values ()
 

Typedef Documentation

using ValueArray = boost::variant<std::vector<bool>, std::vector<int8_t>, std::vector<int16_t>, std::vector<int32_t>, std::vector<int64_t>, std::vector<float>, std::vector<double>, std::vector<std::string>>

Definition at line 44 of file ArrowResultSet.h.

Function Documentation

std::unique_ptr<ArrowResultSet> result_set_arrow_loopback ( const ExecutionResult results)

Definition at line 256 of file ArrowResultSet.cpp.

References ExecutionResult::getRows(), and ExecutionResult::getTargetsMeta().

257  {
258  // NOTE(wesm): About memory ownership
259 
260  // After calling ReadRecordBatch, the buffers inside arrow::RecordBatch now
261  // share ownership of the memory in serialized_arrow_output.records (zero
262  // copy). Not necessary to retain these buffers. Same is true of any
263  // dictionaries contained in serialized_arrow_output.schema; the arrays
264  // reference that memory (zero copy).
265  return std::make_unique<ArrowResultSet>(results.getRows(), results.getTargetsMeta());
266 }
const std::vector< TargetMetaInfo > & getTargetsMeta() const
const std::shared_ptr< ResultSet > & getRows() const

+ Here is the call graph for this function:

std::unique_ptr<ArrowResultSet> result_set_arrow_loopback ( const ExecutionResult results,
const std::shared_ptr< ResultSet > &  rows 
)

Definition at line 268 of file ArrowResultSet.cpp.

References ExecutionResult::getTargetsMeta().

270  {
271  return results ? std::make_unique<ArrowResultSet>(rows, results->getTargetsMeta())
272  : std::make_unique<ArrowResultSet>(rows);
273 }
const std::vector< TargetMetaInfo > & getTargetsMeta() const

+ Here is the call graph for this function:

template<typename T >
constexpr auto scale_epoch_values ( )

Definition at line 240 of file ArrowResultSet.h.

240  {
241  return std::is_same<T, arrow::Date32Builder>::value ||
242  std::is_same<T, arrow::Date64Builder>::value;
243 }