From 68db8a7947c3f39baca601b6f2ff8aaab874d463 Mon Sep 17 00:00:00 2001 From: wangpingyun <2418191738@qq.com> Date: Wed, 31 Jul 2024 09:49:25 +0800 Subject: [PATCH] =?UTF-8?q?default=E6=B7=BB=E5=8A=A0=E4=BB=A5f/d=E7=BB=93?= =?UTF-8?q?=E5=B0=BE=E7=9A=84=E6=B5=AE=E7=82=B9=E6=95=B0=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/backend/parser/gram.y | 18 +++++++++++ .../interfaces/libpq/frontend_parser/gram.y | 18 +++++++++++ .../regress/expected/test_binary_suffix.out | 31 +++++++++++++++++++ src/test/regress/sql/test_binary_suffix.sql | 21 +++++++++++++ 4 files changed, 88 insertions(+) diff --git a/src/common/backend/parser/gram.y b/src/common/backend/parser/gram.y index 3a00caa61..f31301087 100644 --- a/src/common/backend/parser/gram.y +++ b/src/common/backend/parser/gram.y @@ -8078,6 +8078,24 @@ ColConstraintElem: n->cooked_expr = NULL; $$ = (Node *)n; } + | DEFAULT FCONST_F + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_DEFAULT; + n->location = @1; + n->raw_expr = makeFloatConst($2, @2); + n->cooked_expr = NULL; + $$ = (Node *)n; + } + | DEFAULT FCONST_D + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_DEFAULT; + n->location = @1; + n->raw_expr = makeFloatConst($2, @2);; + n->cooked_expr = NULL; + $$ = (Node *)n; + } | ON_UPDATE_TIME UPDATE b_expr { #ifndef ENABLE_MULTIPLE_NODES diff --git a/src/common/interfaces/libpq/frontend_parser/gram.y b/src/common/interfaces/libpq/frontend_parser/gram.y index 8d8fa4525..ad545adee 100755 --- a/src/common/interfaces/libpq/frontend_parser/gram.y +++ b/src/common/interfaces/libpq/frontend_parser/gram.y @@ -5560,6 +5560,24 @@ ColConstraintElem: n->cooked_expr = NULL; $$ = (Node *)n; } + | DEFAULT FCONST_F + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_DEFAULT; + n->location = @1; + n->raw_expr = makeFloatConst($2, @2); + n->cooked_expr = NULL; + $$ = (Node *)n; + } + | DEFAULT FCONST_D + { + Constraint *n = makeNode(Constraint); + n->contype = CONSTR_DEFAULT; + n->location = @1; + n->raw_expr = makeFloatConst($2, @2);; + n->cooked_expr = NULL; + $$ = (Node *)n; + } | GENERATED ALWAYS AS '(' a_expr ')' STORED { #ifdef ENABLE_MULTIPLE_NODES diff --git a/src/test/regress/expected/test_binary_suffix.out b/src/test/regress/expected/test_binary_suffix.out index 829f3d54d..c222e3eec 100644 --- a/src/test/regress/expected/test_binary_suffix.out +++ b/src/test/regress/expected/test_binary_suffix.out @@ -950,5 +950,36 @@ create type binary_double_nan AS ( ); drop type binary_double_nan; set disable_keyword_options = ''; +set float_suffix_acceptance = on; +CREATE TABLE employees ( +emp_id INT PRIMARY KEY, +emp_name VARCHAR(100) NOT NULL, +emp_salary DECIMAL(10, 2) DEFAULT 3.14f, +hire_date DATE DEFAULT CURRENT_DATE +); +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "employees_pkey" for table "employees" +INSERT INTO employees (emp_id, emp_name, hire_date) VALUES (1, 'John Doe', '2024-01-01'); +SELECT * FROM employees; + emp_id | emp_name | emp_salary | hire_date +--------+----------+------------+-------------------------- + 1 | John Doe | 3.14 | Mon Jan 01 00:00:00 2024 +(1 row) + +DROP TABLE employees; +CREATE TABLE employees ( +emp_id INT PRIMARY KEY, +emp_name VARCHAR(100) NOT NULL, +emp_salary DECIMAL(10, 2) DEFAULT 3.14d, +hire_date DATE DEFAULT CURRENT_DATE +); +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "employees_pkey" for table "employees" +INSERT INTO employees (emp_id, emp_name, hire_date) VALUES (1, 'John Doe', '2024-01-01'); +SELECT * FROM employees; + emp_id | emp_name | emp_salary | hire_date +--------+----------+------------+-------------------------- + 1 | John Doe | 3.14 | Mon Jan 01 00:00:00 2024 +(1 row) + +DROP TABLE employees; drop schema if exists test_binary cascade; NOTICE: drop cascades to type "binary_double_infinity" diff --git a/src/test/regress/sql/test_binary_suffix.sql b/src/test/regress/sql/test_binary_suffix.sql index b25346156..f09853aef 100644 --- a/src/test/regress/sql/test_binary_suffix.sql +++ b/src/test/regress/sql/test_binary_suffix.sql @@ -362,4 +362,25 @@ create type binary_double_nan AS ( drop type binary_double_nan; set disable_keyword_options = ''; +set float_suffix_acceptance = on; +CREATE TABLE employees ( +emp_id INT PRIMARY KEY, +emp_name VARCHAR(100) NOT NULL, +emp_salary DECIMAL(10, 2) DEFAULT 3.14f, +hire_date DATE DEFAULT CURRENT_DATE +); +INSERT INTO employees (emp_id, emp_name, hire_date) VALUES (1, 'John Doe', '2024-01-01'); +SELECT * FROM employees; +DROP TABLE employees; + +CREATE TABLE employees ( +emp_id INT PRIMARY KEY, +emp_name VARCHAR(100) NOT NULL, +emp_salary DECIMAL(10, 2) DEFAULT 3.14d, +hire_date DATE DEFAULT CURRENT_DATE +); +INSERT INTO employees (emp_id, emp_name, hire_date) VALUES (1, 'John Doe', '2024-01-01'); +SELECT * FROM employees; +DROP TABLE employees; + drop schema if exists test_binary cascade;