25 #include "gen-cpp/calciteserver_types.h"
26 #include "gen-cpp/extension_functions_types.h"
36 using namespace apache::thrift::transport;
43 class CalciteServerClient;
45 namespace Catalog_Namespace {
49 namespace query_state {
58 class TFilterPushDownInfo;
60 class TCompletionHint;
66 const std::string& data_dir,
67 const size_t calcite_max_mem,
68 const size_t service_timeout,
69 const bool service_keepalive,
70 const std::string& udf_filename =
"");
72 const std::string& data_dir,
73 const std::string& udf_filename =
"");
76 std::string sql_string,
77 const TQueryParsingOption& query_parsing_option,
78 const TOptimizationOption& optimization_option,
79 const std::string& calcite_session_id =
"");
81 TPlanResult plan)
const;
82 std::vector<TCompletionHint> getCompletionHints(
84 const std::vector<std::string>& visible_tables,
85 const std::string sql_string,
87 std::string getExtensionFunctionWhitelist();
88 std::string getUserDefinedFunctionWhitelist();
89 void updateMetadata(std::string catalog, std::string table);
90 void close_calcite_server(
bool log =
true);
92 std::string getRuntimeExtensionFunctionWhitelist();
93 void setRuntimeExtensionFunctions(
const std::vector<TUserDefinedFunction>& udfs,
94 const std::vector<TUserDefinedTableFunction>& udtfs,
95 bool isruntime =
true);
100 TQueryParsingOption getCalciteQueryParsingOption(
bool legacy_syntax,
102 bool check_privileges);
103 TOptimizationOption getCalciteOptimizationOption(
104 bool is_view_optimize,
105 bool enable_watchdog,
106 const std::vector<TFilterPushDownInfo>& filter_push_down_info,
107 bool distributed_mode);
110 void init(
const int db_port,
112 const std::string& data_dir,
113 const size_t calcite_max_mem,
114 const std::string& udf_filename);
115 void runServer(
const int db_port,
117 const std::string& data_dir,
118 const size_t calcite_max_mem,
119 const std::string& udf_filename);
121 std::string sql_string,
122 const TQueryParsingOption& query_parsing_option,
123 const TOptimizationOption& optimization_option,
124 const std::string& calcite_session_id);
125 std::vector<std::string> get_db_objects(
const std::string ra);
126 void inner_close_calcite_server(
bool log);
127 std::pair<std::shared_ptr<CalciteServerClient>, std::shared_ptr<TTransport>> getClient(
130 int ping(
int retry_num = 0,
int max_retry = 50);
135 bool service_keepalive_ =
true;
136 int remote_calcite_port_ = -1;
std::string db_config_file_
std::once_flag shutdown_once_flag_
std::string ssl_key_file_
std::string ssl_keystore_
static std::string const getInternalSessionProxyUserName()
static std::string const getInternalSessionProxyPassword()
std::string ssl_keystore_password_
std::shared_ptr< ThriftClientConnection > connMgr_
std::string ssl_trust_store_
void init(LogOptions const &log_opts)
constexpr char const * kCalciteUserPassword
std::string ssl_trust_password_
constexpr char const * kCalciteUserName