Skip to content

Commit 156ea3a

Browse files
authored
Support of PG extensions in YQL embedded (#10117)
1 parent 54d83fb commit 156ea3a

File tree

4 files changed

+14
-0
lines changed

4 files changed

+14
-0
lines changed

ydb/library/yql/public/embedded/no_llvm/ya.make

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ PEERDIR(
4949
ydb/library/yql/providers/yt/provider
5050
ydb/library/yql/providers/yt/codec/codegen/no_llvm
5151
ydb/library/yql/providers/yt/comp_nodes/no_llvm
52+
ydb/library/yql/parser/pg_wrapper/interface
53+
ydb/library/yql/parser/pg_catalog
5254
)
5355

5456
YQL_LAST_ABI_VERSION()

ydb/library/yql/public/embedded/ya.make

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ PEERDIR(
4141
ydb/library/yql/providers/yt/provider
4242
ydb/library/yql/providers/yt/codec/codegen
4343
ydb/library/yql/providers/yt/comp_nodes/llvm14
44+
ydb/library/yql/parser/pg_wrapper/interface
45+
ydb/library/yql/parser/pg_catalog
4446
)
4547

4648
YQL_LAST_ABI_VERSION()

ydb/library/yql/public/embedded/yql_embedded.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
#include <ydb/library/yql/core/services/mounts/yql_mounts.h>
2525
#include <ydb/library/yql/utils/log/log.h>
2626
#include <ydb/library/yql/utils/backtrace/backtrace.h>
27+
#include <ydb/library/yql/parser/pg_wrapper/interface/comp_factory.h>
28+
#include <ydb/library/yql/parser/pg_wrapper/interface/parser.h>
2729

2830
#include <yt/cpp/mapreduce/interface/config.h>
2931

@@ -319,6 +321,12 @@ namespace NYql {
319321
NKikimr::NMiniKQL::FillStaticModules(*FuncRegistry_);
320322
}
321323

324+
if (!Options_.PgExtensions_.empty()) {
325+
NPg::RegisterExtensions(Options_.PgExtensions_, false,
326+
*NSQLTranslationPG::CreateExtensionSqlParser(),
327+
NKikimr::NMiniKQL::CreateExtensionLoader().get());
328+
}
329+
322330
TUserDataTable userDataTable = GetYqlModuleResolver(ExprContext_, ModuleResolver_, Options_.UserData_, Clusters_, {});
323331

324332
if (!userDataTable) {

ydb/library/yql/public/embedded/yql_embedded.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include <ydb/library/yql/core/user_data/yql_user_data.h>
44
#include <ydb/library/yql/core/file_storage/defs/downloader.h>
5+
#include <ydb/library/yql/parser/pg_catalog/catalog.h>
56

67
#include <yt/cpp/mapreduce/interface/logging/logger.h>
78

@@ -60,6 +61,7 @@ namespace NYql {
6061
TString UdfResolverBinary_;
6162
TString UdfsDir_;
6263
bool PreloadUdfs_ = false; // used when UdfResolverBinary_ is specified, if UdfResolverBinary_ is empty it is considered equal to true
64+
TVector<NPg::TExtensionDesc> PgExtensions_;
6365
TVector<NUserData::TUserData> UserData_;
6466

6567
ELogPriority LogLevel_ = TLOG_ERR;

0 commit comments

Comments
 (0)