diff options
author | xenoxeno <xeno@ydb.tech> | 2023-05-25 09:17:19 +0300 |
---|---|---|
committer | xenoxeno <xeno@ydb.tech> | 2023-05-25 09:17:19 +0300 |
commit | 476b2514a77166f976043bc778898a3b4af12d41 (patch) | |
tree | 959c0d2af1d0c905178440ff2fc3b993be468240 | |
parent | 7fb2e761e9c5e85a24a6d9119e1b81435941f4ce (diff) | |
download | ydb-476b2514a77166f976043bc778898a3b4af12d41.tar.gz |
return pg oids for pg types
-rw-r--r-- | ydb/core/local_pgwire/local_pgwire_connection.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ydb/core/local_pgwire/local_pgwire_connection.cpp b/ydb/core/local_pgwire/local_pgwire_connection.cpp index 8ec4a5f5d45..aa2508bcd1a 100644 --- a/ydb/core/local_pgwire/local_pgwire_connection.cpp +++ b/ydb/core/local_pgwire/local_pgwire_connection.cpp @@ -142,6 +142,17 @@ public: } } + static uint32_t GetPgOidFromYdbType(NYdb::TType type) { + NYdb::TTypeParser parser(type); + switch (parser.GetKind()) { + case NYdb::TTypeParser::ETypeKind::Pg: { + return parser.GetPg().Oid; + default: + return {}; + } + } + } + TString ToPgSyntax(TStringBuf query) { auto itOptions = ConnectionParams.find("options"); if (itOptions == ConnectionParams.end()) { @@ -213,6 +224,7 @@ public: // TODO: fill data types and sizes response->DataFields.push_back({ .Name = column.Name, + .DataType = GetPgOidFromYdbType(column.Type), }); } } @@ -387,6 +399,7 @@ public: // TODO: fill data types and sizes response->DataFields.push_back({ .Name = column.Name, + .DataType = GetPgOidFromYdbType(column.Type), }); } } |