diff options
author | aneporada <aneporada@yandex-team.ru> | 2022-03-20 01:16:36 +0300 |
---|---|---|
committer | aneporada <aneporada@yandex-team.ru> | 2022-03-20 01:16:36 +0300 |
commit | 3998f65e329635acbd09ced320d5b7242cbd9a79 (patch) | |
tree | 8883ac0c9ebcebd4b825a3ef8c77062efea32d04 | |
parent | feecfe4e731d0335905f0d577722208ad3f4b215 (diff) | |
download | ydb-3998f65e329635acbd09ced320d5b7242cbd9a79.tar.gz |
[YQL-14488] Support plain 'n' suffix for floating point literals (1.0p means 1.0pf8)
ref:3de49027fa2239937fd2e76c9c547dfab4f13aa9
-rw-r--r-- | ydb/library/yql/sql/v1/SQLv1.g.in | 2 | ||||
-rw-r--r-- | ydb/library/yql/sql/v1/sql.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/ydb/library/yql/sql/v1/SQLv1.g.in b/ydb/library/yql/sql/v1/SQLv1.g.in index f1fced62e0..78ed94549e 100644 --- a/ydb/library/yql/sql/v1/SQLv1.g.in +++ b/ydb/library/yql/sql/v1/SQLv1.g.in @@ -1365,7 +1365,7 @@ REAL: DECDIGITS DOT DIGIT* FLOAT_EXP? | DECDIGITS FLOAT_EXP // | DOT DECDIGITS FLOAT_EXP? // Conflicts with tuple element access through DOT - ) (F | P F ('4'|'8') | P N)? + ) (F | P (F ('4'|'8') | N)?)? ; BLOB: X QUOTE_SINGLE HEXDIGIT+ QUOTE_SINGLE; diff --git a/ydb/library/yql/sql/v1/sql.cpp b/ydb/library/yql/sql/v1/sql.cpp index f3a46a34fc..891665d1ea 100644 --- a/ydb/library/yql/sql/v1/sql.cpp +++ b/ydb/library/yql/sql/v1/sql.cpp @@ -3717,6 +3717,8 @@ TNodePtr LiteralReal(TContext& ctx, const TRule_real& node) { auto lower = to_lower(value); if (lower.EndsWith("f")) { return new TLiteralNumberNode<float>(ctx.Pos(), "Float", value.substr(0, value.size()-1)); + } else if (lower.EndsWith("p")) { + return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat8", value.substr(0, value.size()-1)); } else if (lower.EndsWith("pf4")) { return new TLiteralNumberNode<float>(ctx.Pos(), "PgFloat4", value.substr(0, value.size()-3)); } else if (lower.EndsWith("pf8")) { |