aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvvvv <vvvv@ydb.tech>2023-06-14 14:58:18 +0300
committervvvv <vvvv@ydb.tech>2023-06-14 14:58:18 +0300
commit45778d653271fd7de0a5436379ad2c0de3128f83 (patch)
treef0e9c0cec670644977b35de6eb9d51f94cb1ec0f
parent69557b89626f16179aadf066e0b2b6154eaaf596 (diff)
downloadydb-45778d653271fd7de0a5436379ad2c0de3128f83.tar.gz
Fixed PG float literals
-rw-r--r--ydb/library/yql/sql/pg/pg_sql.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/ydb/library/yql/sql/pg/pg_sql.cpp b/ydb/library/yql/sql/pg/pg_sql.cpp
index 9ad7aa7b229..1b3e9010db9 100644
--- a/ydb/library/yql/sql/pg/pg_sql.cpp
+++ b/ydb/library/yql/sql/pg/pg_sql.cpp
@@ -63,11 +63,6 @@ int IntVal(const Value& node) {
return intVal(&node);
}
-double FloatVal(const Value& node) {
- Y_ENSURE(node.type == T_Float);
- return floatVal(&node);
-}
-
const char* StrFloatVal(const Value& node) {
Y_ENSURE(node.type == T_Float);
return strVal(&node);
@@ -2038,7 +2033,10 @@ public:
return L(A("PgConst"), QA(ToString(IntVal(val))), L(A("PgType"), QA("int4")));
}
case T_Float: {
- return L(A("PgConst"), QA(ToString(StrFloatVal(val))), L(A("PgType"), QA("float8")));
+ auto s = StrFloatVal(val);
+ i64 v;
+ const bool isInt8 = TryFromString<i64>(s, v);
+ return L(A("PgConst"), QA(ToString(s)), L(A("PgType"), isInt8 ? QA("int8") : QA("numeric")));
}
case T_String: {
return L(A("PgConst"), QAX(ToString(StrVal(val))), L(A("PgType"), QA("text")));