Skip to content

Commit 5b2d02f

Browse files
hdikemanfacebook-github-bot
authored andcommitted
pass configuration from Connector to ConnectorMetadata for all connectors
Summary: We want to integrate existing configuration systems (TW and defined config attributes) with ConnectorMetadata There are quite a few configuration values which we have deferred for lack of support In this change I am ensuring that Hive (and by extension Prism and LocalHive), Impulse, TPCH, and the Test ConnectorMetadata store a reference to the corresponding Connector configuration Differential Revision: D81365452
1 parent 7952956 commit 5b2d02f

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

velox/connectors/tpch/TpchConnector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ TpchConnector::TpchConnector(
3535
const std::string& id,
3636
std::shared_ptr<const config::ConfigBase> config,
3737
folly::Executor* /*executor*/)
38-
: Connector(id) {
38+
: Connector(id), config_(std::move(config)) {
3939
for (auto& factory : tpchConnectorMetadataFactories()) {
4040
metadata_ = factory->create(this);
4141
if (metadata_ != nullptr) {

velox/connectors/tpch/TpchConnector.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,11 @@ class TpchConnector final : public Connector {
163163
std::shared_ptr<const config::ConfigBase> config,
164164
folly::Executor* /*executor*/);
165165

166+
const std::shared_ptr<const config::ConfigBase>& connectorConfig()
167+
const override {
168+
return config_;
169+
}
170+
166171
std::unique_ptr<DataSource> createDataSource(
167172
const RowTypePtr& outputType,
168173
const ConnectorTableHandlePtr& tableHandle,
@@ -186,6 +191,7 @@ class TpchConnector final : public Connector {
186191
}
187192

188193
private:
194+
std::shared_ptr<const config::ConfigBase> config_;
189195
std::shared_ptr<ConnectorMetadata> metadata_;
190196
};
191197

velox/connectors/tpch/tests/TpchConnectorTest.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,22 @@ TEST_F(TpchConnectorTest, orderDateCount) {
443443
EXPECT_EQ(9, orderDate->size());
444444
}
445445

446+
TEST_F(TpchConnectorTest, config) {
447+
std::unordered_map<std::string, std::string> properties = {
448+
{"property", "value"}};
449+
auto connector =
450+
connector::getConnectorFactory(
451+
connector::tpch::TpchConnectorFactory::kTpchConnectorName)
452+
->newConnector(
453+
kTpchConnectorId,
454+
std::make_shared<config::ConfigBase>(std::move(properties)));
455+
456+
const auto& config = connector->connectorConfig();
457+
auto val = config->get<std::string>("property");
458+
EXPECT_TRUE(val.has_value());
459+
EXPECT_EQ(val.value(), "value");
460+
}
461+
446462
} // namespace
447463

448464
int main(int argc, char** argv) {

0 commit comments

Comments
 (0)