17 #ifndef QUERY_RUNNER_H
18 #define QUERY_RUNNER_H
37 namespace Catalog_Namespace {
51 namespace import_export {
57 namespace QueryRunner {
62 const std::string& udf_filename =
"",
63 const size_t max_gpu_mem = 0,
64 const int reserved_gpu_mem = 256 << 20) {
78 const std::vector<LeafHostInfo>& string_servers,
79 const std::vector<LeafHostInfo>& leaf_servers) {
89 const std::string& user,
90 const std::string& pass,
91 const std::string& db_name,
92 const std::vector<LeafHostInfo>& string_servers,
93 const std::vector<LeafHostInfo>& leaf_servers,
94 const std::string& udf_filename =
"",
95 bool uses_gpus =
true,
96 const size_t max_gpu_mem = 0,
97 const int reserved_gpu_mem = 256 << 20,
98 const bool create_user =
false,
99 const bool create_db =
false);
108 throw std::runtime_error(
"QueryRunner must be initialized before calling get().");
115 std::shared_ptr<Catalog_Namespace::SessionInfo>
getSession()
const {
118 std::shared_ptr<Catalog_Namespace::Catalog>
getCatalog()
const;
127 virtual std::shared_ptr<ResultSet>
runSQL(
const std::string& query_str,
129 const bool hoist_literals =
true,
130 const bool allow_loop_joins =
true);
132 const std::string& query_str,
134 const bool hoist_literals,
135 const bool allow_loop_joins,
136 const bool just_explain =
false);
138 const std::string& query_str,
139 std::shared_ptr<Executor> executor,
140 const std::string& session_id,
142 const double running_query_check_freq = 0.9,
143 const unsigned pending_query_check_freq = 1000);
150 virtual std::unique_ptr<import_export::Loader>
getLoader(
162 QueryRunner(std::unique_ptr<Catalog_Namespace::SessionInfo> session);
168 template <
typename... Ts>
175 const std::string& user,
176 const std::string& pass,
177 const std::string& db_name,
178 const std::vector<LeafHostInfo>& string_servers,
179 const std::vector<LeafHostInfo>& leaf_servers,
180 const std::string& udf_filename,
182 const size_t max_gpu_mem,
183 const int reserved_gpu_mem,
184 const bool create_user,
185 const bool create_db);
200 const std::string& table_name,
201 const bool compression,
203 const bool explode_collections);
208 #endif // QUERY_RUNNER_H
static query_state::QueryStates query_states_
std::shared_ptr< Catalog_Namespace::SessionInfo > getSession() const
std::unique_ptr< QueryDispatchQueue > dispatch_queue_
virtual void clearGpuMemory() const
size_t getNumberOfCachedOverlapsHashTables()
ResultSet(const std::vector< TargetInfo > &targets, const ExecutorDeviceType device_type, const QueryMemoryDescriptor &query_mem_desc, const std::shared_ptr< RowSetMemoryOwner > row_set_mem_owner, const Catalog_Namespace::Catalog *catalog, const unsigned block_size, const unsigned grid_size)
virtual std::vector< std::shared_ptr< ResultSet > > runMultipleStatements(const std::string &, const ExecutorDeviceType)
CircleBuffer::value_type create(ARGS &&...args)
const int8_t * getCachedBaselineHashTable(size_t idx)
static QueryRunner * init(const char *db_path, const std::vector< LeafHostInfo > &string_servers, const std::vector< LeafHostInfo > &leaf_servers)
static QueryRunner * init(const char *db_path, const std::string &udf_filename="", const size_t max_gpu_mem=0, const int reserved_gpu_mem=256<< 20)
virtual std::shared_ptr< ResultSet > runSQL(const std::string &query_str, const ExecutorDeviceType device_type, const bool hoist_literals=true, const bool allow_loop_joins=true)
virtual QueryHint getParsedQueryHint(const std::string &)
ImportDriver(std::shared_ptr< Catalog_Namespace::Catalog > cat, const Catalog_Namespace::UserMetadata &user, const ExecutorDeviceType dt=ExecutorDeviceType::GPU)
This file contains the class specification and related data structures for SysCatalog.
virtual std::shared_ptr< ResultSet > runSQLWithAllowingInterrupt(const std::string &query_str, std::shared_ptr< Executor > executor, const std::string &session_id, const ExecutorDeviceType device_type, const double running_query_check_freq=0.9, const unsigned pending_query_check_freq=1000)
void init(LogOptions const &log_opts)
const std::string OMNISCI_DEFAULT_DB
virtual std::unique_ptr< import_export::Loader > getLoader(const TableDescriptor *td) const
QueryRunner(std::unique_ptr< Catalog_Namespace::SessionInfo > session)
virtual std::shared_ptr< ExecutionResult > runSelectQuery(const std::string &query_str, const ExecutorDeviceType device_type, const bool hoist_literals, const bool allow_loop_joins, const bool just_explain=false)
virtual void runImport(Parser::CopyTableStmt *import_stmt)
size_t getEntryCntCachedBaselineHashTable(size_t idx)
virtual void runDDLStatement(const std::string &)
static std::unique_ptr< QueryRunner > qr_instance_
size_t getNumberOfCachedBaselineJoinHashTables()
void importGeoTable(const std::string &file_path, const std::string &table_name, const bool compression, const bool create_table, const bool explode_collections)
const std::string OMNISCI_ROOT_USER
std::shared_ptr< Executor > getExecutor() const
virtual void clearCpuMemory() const
std::shared_ptr< Catalog_Namespace::SessionInfo > session_info_
size_t getNumberOfCachedJoinHashTables()
static std::shared_ptr< query_state::QueryState > create_query_state(Ts &&...args)
std::shared_ptr< Calcite > getCalcite() const
void resizeDispatchQueue(const size_t num_executors)
static QueryRunner * init(std::unique_ptr< Catalog_Namespace::SessionInfo > &session)
std::shared_ptr< Catalog_Namespace::Catalog > getCatalog() const
const int32_t * getCachedJoinHashTable(size_t idx)