OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ExternalExecutor.h File Reference
#include <string>
#include <vector>
#include "QueryEngine/ColumnFetcher.h"
#include "QueryEngine/PlanState.h"
#include "QueryEngine/SerializeToSql.h"
#include "QueryEngine/TargetMetaInfo.h"
#include "ThirdParty/sqlite3/sqlite3.h"
+ Include dependency graph for ExternalExecutor.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ExternalQueryTable
 
struct  ExternalQueryOutputSpec
 
class  NativeExecutionError
 
class  SqliteMemDatabase
 

Functions

std::unique_ptr< ResultSetrun_query_external (const ExecutionUnitSql &sql, const FetchResult &fetch_result, const PlanState *plan_state, const ExternalQueryOutputSpec &output_spec)
 
bool is_supported_type_for_extern_execution (const SQLTypeInfo &ti)
 

Function Documentation

bool is_supported_type_for_extern_execution ( const SQLTypeInfo ti)

Definition at line 531 of file ExternalExecutor.cpp.

References SQLTypeInfo::is_fp(), SQLTypeInfo::is_integer(), and SQLTypeInfo::is_string().

Referenced by anonymous_namespace{ExternalExecutor.cpp}::create_table_schema(), and ScalarExprToSql::visitUOper().

531  {
532  return ti.is_integer() || ti.is_fp() || ti.is_string();
533 }
bool is_fp() const
Definition: sqltypes.h:571
bool is_integer() const
Definition: sqltypes.h:565
bool is_string() const
Definition: sqltypes.h:559

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::unique_ptr<ResultSet> run_query_external ( const ExecutionUnitSql sql,
const FetchResult fetch_result,
const PlanState plan_state,
const ExternalQueryOutputSpec output_spec 
)

Definition at line 516 of file ExternalExecutor.cpp.

References bench_batch_streaming_ingest::create_table(), anonymous_namespace{ExternalExecutor.cpp}::create_table_schema(), ExternalQueryOutputSpec::executor, ExecutionUnitSql::from_table, ExecutionUnitSql::query, SqliteMemDatabase::run(), and SqliteMemDatabase::runSelect().

Referenced by ExecutionKernel::runImpl().

520  {
521  ExternalQueryTable external_query_table{fetch_result,
522  create_table_schema(plan_state),
523  sql.from_table,
524  output_spec.executor};
525  SqliteMemDatabase db(external_query_table);
526  const auto create_table = "create virtual table " + sql.from_table + " using omnisci";
527  db.run(create_table);
528  return db.runSelect(sql.query, output_spec);
529 }
const Executor * executor
std::vector< TargetMetaInfo > create_table_schema(const PlanState *plan_state)
std::string from_table
std::string query

+ Here is the call graph for this function:

+ Here is the caller graph for this function: