From 4fc568a1c7f7389c42b44df55e765a220c642afd Mon Sep 17 00:00:00 2001 From: Mars Agliullin Date: Thu, 25 Jan 2024 19:19:05 +0300 Subject: [PATCH 1/2] Fix pg_wrapper build --- .../yql/parser/pg_wrapper/interface/utils.cpp | 14 ++++++++++++++ .../yql/parser/pg_wrapper/interface/utils.h | 6 +----- .../yql/parser/pg_wrapper/interface/ya.make | 5 +++++ 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 ydb/library/yql/parser/pg_wrapper/interface/utils.cpp diff --git a/ydb/library/yql/parser/pg_wrapper/interface/utils.cpp b/ydb/library/yql/parser/pg_wrapper/interface/utils.cpp new file mode 100644 index 000000000000..806bc542d312 --- /dev/null +++ b/ydb/library/yql/parser/pg_wrapper/interface/utils.cpp @@ -0,0 +1,14 @@ +#include + +extern "C" { +#include +} + +#include "utils.h" + +namespace NYql { + ui64 hex_encode(const char *src, size_t len, char *dst) { + return ::hex_encode(src, len, dst); + } +} + diff --git a/ydb/library/yql/parser/pg_wrapper/interface/utils.h b/ydb/library/yql/parser/pg_wrapper/interface/utils.h index 5bbcb2ea98dd..feb18954e6f9 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/utils.h +++ b/ydb/library/yql/parser/pg_wrapper/interface/utils.h @@ -15,10 +15,6 @@ bool ParsePgIntervalModifier(const TString& str, i32& ret); std::unique_ptr CreatePgBuilder(); bool HasPgKernel(ui32 procOid); +ui64 hex_encode(const char *src, size_t len, char *dst); } // NYql -extern "C" { - // copied from postgres/src/include/utils/builtins.h - ui64 hex_encode(const char *src, size_t len, char *dst); -} - diff --git a/ydb/library/yql/parser/pg_wrapper/interface/ya.make b/ydb/library/yql/parser/pg_wrapper/interface/ya.make index a2d4b6633e4d..f8234bbb811f 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/ya.make +++ b/ydb/library/yql/parser/pg_wrapper/interface/ya.make @@ -11,6 +11,11 @@ SRCS( parser.h type_desc.h utils.h + utils.cpp +) + +ADDINCL( + ydb/library/yql/parser/pg_wrapper/postgresql/src/include ) PEERDIR( From d3fc4ec57bc2bd9264a168956db780486e483791 Mon Sep 17 00:00:00 2001 From: Mars Agliullin Date: Thu, 25 Jan 2024 20:15:17 +0300 Subject: [PATCH 2/2] [Review] introduced PG's hex_encode wrapper --- ydb/library/yql/parser/pg_wrapper/interface/utils.h | 2 +- ydb/library/yql/parser/pg_wrapper/interface/ya.make | 5 ----- ydb/library/yql/parser/pg_wrapper/pg_compat.h | 1 + .../{interface/utils.cpp => pg_utils_wrappers.cpp} | 4 ++-- ydb/library/yql/parser/pg_wrapper/ya.make | 1 + ydb/library/yql/sql/pg_dummy/pg_sql_dummy.cpp | 7 +++---- ydb/library/yql/tools/pgrun/pgrun.cpp | 2 +- 7 files changed, 9 insertions(+), 13 deletions(-) rename ydb/library/yql/parser/pg_wrapper/{interface/utils.cpp => pg_utils_wrappers.cpp} (57%) diff --git a/ydb/library/yql/parser/pg_wrapper/interface/utils.h b/ydb/library/yql/parser/pg_wrapper/interface/utils.h index feb18954e6f9..30766032e7fc 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/utils.h +++ b/ydb/library/yql/parser/pg_wrapper/interface/utils.h @@ -15,6 +15,6 @@ bool ParsePgIntervalModifier(const TString& str, i32& ret); std::unique_ptr CreatePgBuilder(); bool HasPgKernel(ui32 procOid); -ui64 hex_encode(const char *src, size_t len, char *dst); +ui64 HexEncode(const char *src, size_t len, char *dst); } // NYql diff --git a/ydb/library/yql/parser/pg_wrapper/interface/ya.make b/ydb/library/yql/parser/pg_wrapper/interface/ya.make index f8234bbb811f..a2d4b6633e4d 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/ya.make +++ b/ydb/library/yql/parser/pg_wrapper/interface/ya.make @@ -11,11 +11,6 @@ SRCS( parser.h type_desc.h utils.h - utils.cpp -) - -ADDINCL( - ydb/library/yql/parser/pg_wrapper/postgresql/src/include ) PEERDIR( diff --git a/ydb/library/yql/parser/pg_wrapper/pg_compat.h b/ydb/library/yql/parser/pg_wrapper/pg_compat.h index 736fa1374cf8..0280ee1d0b25 100644 --- a/ydb/library/yql/parser/pg_wrapper/pg_compat.h +++ b/ydb/library/yql/parser/pg_wrapper/pg_compat.h @@ -23,6 +23,7 @@ extern "C" { #undef Min #undef Max +#undef Abs #undef bind #undef open #undef FATAL diff --git a/ydb/library/yql/parser/pg_wrapper/interface/utils.cpp b/ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp similarity index 57% rename from ydb/library/yql/parser/pg_wrapper/interface/utils.cpp rename to ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp index 806bc542d312..a245df6bc200 100644 --- a/ydb/library/yql/parser/pg_wrapper/interface/utils.cpp +++ b/ydb/library/yql/parser/pg_wrapper/pg_utils_wrappers.cpp @@ -1,13 +1,13 @@ +#include #include extern "C" { #include } -#include "utils.h" namespace NYql { - ui64 hex_encode(const char *src, size_t len, char *dst) { + ui64 HexEncode(const char *src, size_t len, char *dst) { return ::hex_encode(src, len, dst); } } diff --git a/ydb/library/yql/parser/pg_wrapper/ya.make b/ydb/library/yql/parser/pg_wrapper/ya.make index 865c83bedc0d..34687602b961 100644 --- a/ydb/library/yql/parser/pg_wrapper/ya.make +++ b/ydb/library/yql/parser/pg_wrapper/ya.make @@ -37,6 +37,7 @@ SRCS( config.cpp cost_mocks.cpp syscache.cpp + pg_utils_wrappers.cpp ) IF (ARCH_X86_64) diff --git a/ydb/library/yql/sql/pg_dummy/pg_sql_dummy.cpp b/ydb/library/yql/sql/pg_dummy/pg_sql_dummy.cpp index d722cefab11c..13ef1eec5952 100644 --- a/ydb/library/yql/sql/pg_dummy/pg_sql_dummy.cpp +++ b/ydb/library/yql/sql/pg_dummy/pg_sql_dummy.cpp @@ -496,13 +496,12 @@ TString GetPostgresServerVersionStr() { return "pg_sql_dummy"; } -} // namespace NKikimr::NPg - -ui64 hex_encode(const char *src, size_t len, char *dst) { +ui64 HexEncode(const char *src, size_t len, char *dst) { Y_UNUSED(src); Y_UNUSED(len); Y_UNUSED(dst); - return 0; + throw yexception() << "HexEncode in pg_dummy does nothing"; } +} // namespace NKikimr::NPg diff --git a/ydb/library/yql/tools/pgrun/pgrun.cpp b/ydb/library/yql/tools/pgrun/pgrun.cpp index a08cd06af4ec..6d3fcb148bae 100644 --- a/ydb/library/yql/tools/pgrun/pgrun.cpp +++ b/ydb/library/yql/tools/pgrun/pgrun.cpp @@ -825,7 +825,7 @@ TString GetCellData(const NYT::TNode& cell, const TColumn& column) { result.resize(expectedSize); result[0] = '\\'; result[1] = 'x'; - const auto cnt = hex_encode(rawValue.data(), rawValue.size(), result.begin() + 2); + const auto cnt = HexEncode(rawValue.data(), rawValue.size(), result.begin() + 2); Y_ASSERT(cnt + 2 == expectedSize);