Skip to content

Commit 59b3e2a

Browse files
mbasmanovameta-codesync[bot]
authored andcommitted
refactor: QueryGraphviz.cpp to use Connectors class (#800)
Summary: Pull Request resolved: #800 Refactor QueryGraphviz.cpp to use the existing `Connectors` class instead of inline connector registration code. Reviewed By: xiaoxmeng Differential Revision: D91510943 fbshipit-source-id: 08130ea06dfe77f67e618f19c9dab357de06fb2a
1 parent a25183d commit 59b3e2a

File tree

2 files changed

+8
-23
lines changed

2 files changed

+8
-23
lines changed

axiom/cli/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,15 @@ target_link_libraries(
4141
velox_parse_utils
4242
)
4343

44-
add_executable(axiom_graphviz QueryGraphviz.cpp SqlQueryRunner.cpp)
44+
add_executable(axiom_graphviz Connectors.cpp QueryGraphviz.cpp SqlQueryRunner.cpp)
4545

4646
target_link_libraries(
4747
axiom_graphviz
4848
axiom_runner_local_runner
4949
axiom_runner_multifragment_plan
5050
axiom_optimizer
5151
axiom_tpch_connector_metadata
52+
axiom_hive_connector_metadata
5253
axiom_sql_presto_parser
5354
velox_exec_test_lib
5455
velox_parse_parser

axiom/cli/QueryGraphviz.cpp

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,8 @@
3636
#include <fstream>
3737
#include <iostream>
3838
#include <sstream>
39+
#include "axiom/cli/Connectors.h"
3940
#include "axiom/cli/SqlQueryRunner.h"
40-
#include "axiom/connectors/tpch/TpchConnectorMetadata.h"
41-
#include "velox/connectors/Connector.h"
4241

4342
DEFINE_string(
4443
query,
@@ -52,23 +51,6 @@ DEFINE_string(
5251
namespace facebook::axiom {
5352
namespace {
5453

55-
std::string initializeTpchConnector() {
56-
auto emptyConfig = std::make_shared<velox::config::ConfigBase>(
57-
std::unordered_map<std::string, std::string>{});
58-
59-
velox::connector::tpch::TpchConnectorFactory factory;
60-
auto connector = factory.newConnector("tpch", emptyConfig);
61-
velox::connector::registerConnector(connector);
62-
63-
connector::ConnectorMetadata::registerMetadata(
64-
connector->connectorId(),
65-
std::make_shared<connector::tpch::TpchConnectorMetadata>(
66-
dynamic_cast<velox::connector::tpch::TpchConnector*>(
67-
connector.get())));
68-
69-
return connector->connectorId();
70-
}
71-
7254
/// Returns the path to the 'dot' executable.
7355
std::string findDotExecutable() {
7456
static const std::vector<std::string> kDotPaths = {
@@ -153,10 +135,12 @@ int main(int argc, char** argv) {
153135
facebook::velox::memory::MemoryManager::initialize(
154136
facebook::velox::memory::MemoryManager::Options{});
155137

138+
facebook::axiom::Connectors connectors;
139+
auto connector = connectors.registerTpchConnector();
140+
156141
axiom::sql::SqlQueryRunner runner;
157-
runner.initialize([](auto& /*history*/) {
158-
return std::make_pair(
159-
facebook::axiom::initializeTpchConnector(), std::nullopt);
142+
runner.initialize([&](auto& /*history*/) {
143+
return std::make_pair(connector->connectorId(), std::nullopt);
160144
});
161145

162146
const auto dot = runner.toDot(query);

0 commit comments

Comments
 (0)