aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxenoxeno <xeno@ydb.tech>2023-05-25 09:17:19 +0300
committerxenoxeno <xeno@ydb.tech>2023-05-25 09:17:19 +0300
commit476b2514a77166f976043bc778898a3b4af12d41 (patch)
tree959c0d2af1d0c905178440ff2fc3b993be468240
parent7fb2e761e9c5e85a24a6d9119e1b81435941f4ce (diff)
downloadydb-476b2514a77166f976043bc778898a3b4af12d41.tar.gz
return pg oids for pg types
-rw-r--r--ydb/core/local_pgwire/local_pgwire_connection.cpp13
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),
});
}
}