From f9a294bc2eb90101b5868ce4e5b69274cf56223c Mon Sep 17 00:00:00 2001 From: zhang_xubo <2578876417@qq.com> Date: Fri, 25 Mar 2022 16:22:43 +0800 Subject: [PATCH] support CreateDomainStmt for openGauss --- src/gausskernel/process/tcop/utility.cpp | 2 ++ src/test/regress/expected/drop_if_exists.out | 2 -- src/test/regress/expected/generated_col.out | 16 +++------------- src/test/regress/sql/generated_col.sql | 2 +- 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/src/gausskernel/process/tcop/utility.cpp b/src/gausskernel/process/tcop/utility.cpp index 328dca910..d230593fd 100755 --- a/src/gausskernel/process/tcop/utility.cpp +++ b/src/gausskernel/process/tcop/utility.cpp @@ -5720,8 +5720,10 @@ void standard_ProcessUtility(Node* parse_tree, const char* query_string, ParamLi * ******************************** DOMAIN statements **** */ case T_CreateDomainStmt: +#ifdef ENABLE_MULTIPLE_NODES if (!IsInitdb && !u_sess->attr.attr_common.IsInplaceUpgrade) ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("domain is not yet supported."))); +#endif DefineDomain((CreateDomainStmt*)parse_tree); #ifdef PGXC if (IS_PGXC_COORDINATOR) diff --git a/src/test/regress/expected/drop_if_exists.out b/src/test/regress/expected/drop_if_exists.out index 4e572f0dc..6b3fe60f9 100644 --- a/src/test/regress/expected/drop_if_exists.out +++ b/src/test/regress/expected/drop_if_exists.out @@ -58,9 +58,7 @@ ERROR: type "test_domain_exists" does not exist DROP DOMAIN IF EXISTS test_domain_exists; NOTICE: type "test_domain_exists" does not exist, skipping CREATE domain test_domain_exists as int not null check (value > 0); -ERROR: domain is not yet supported. DROP DOMAIN IF EXISTS test_domain_exists; -NOTICE: type "test_domain_exists" does not exist, skipping DROP DOMAIN test_domain_exists; ERROR: type "test_domain_exists" does not exist --- diff --git a/src/test/regress/expected/generated_col.out b/src/test/regress/expected/generated_col.out index aa9fc65d8..874068f17 100644 --- a/src/test/regress/expected/generated_col.out +++ b/src/test/regress/expected/generated_col.out @@ -473,25 +473,15 @@ INSERT INTO gtest23q VALUES (2, 5); -- error ERROR: insert or update on table "gtest23q" violates foreign key constraint "gtest23q_b_fkey" DETAIL: Key (b)=(5) is not present in table "gtest23p". DROP TABLE gtest23q; --- domains (domain is not yet supported.) +-- domains CREATE DOMAIN gtestdomain1 AS int CHECK (VALUE < 10); -ERROR: domain is not yet supported. CREATE TABLE gtest24 (a int PRIMARY KEY, b gtestdomain1 GENERATED ALWAYS AS (a * 2) STORED); -ERROR: type "gtestdomain1" does not exist -LINE 1: CREATE TABLE gtest24 (a int PRIMARY KEY, b gtestdomain1 GENE... - ^ +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "gtest24_pkey" for table "gtest24" INSERT INTO gtest24 (a) VALUES (4); -- ok -ERROR: relation "gtest24" does not exist on datanode1 -LINE 1: INSERT INTO gtest24 (a) VALUES (4); - ^ INSERT INTO gtest24 (a) VALUES (6); -- error -ERROR: relation "gtest24" does not exist on datanode1 -LINE 1: INSERT INTO gtest24 (a) VALUES (6); - ^ +ERROR: value for domain gtestdomain1 violates check constraint "gtestdomain1_check" DROP TABLE gtest24; -ERROR: table "gtest24" does not exist DROP DOMAIN gtestdomain1; -ERROR: type "gtestdomain1" does not exist -- typed tables (currently not supported) CREATE TYPE gtest_type AS (f1 integer, f2 text, f3 bigint); CREATE TABLE gtest28 OF gtest_type (f1 WITH OPTIONS GENERATED ALWAYS AS (f2 *2) STORED); diff --git a/src/test/regress/sql/generated_col.sql b/src/test/regress/sql/generated_col.sql index 7a20278bf..28f1c4681 100644 --- a/src/test/regress/sql/generated_col.sql +++ b/src/test/regress/sql/generated_col.sql @@ -266,7 +266,7 @@ INSERT INTO gtest23q VALUES (2, 5); -- error DROP TABLE gtest23q; --- domains (domain is not yet supported.) +-- domains CREATE DOMAIN gtestdomain1 AS int CHECK (VALUE < 10); CREATE TABLE gtest24 (a int PRIMARY KEY, b gtestdomain1 GENERATED ALWAYS AS (a * 2) STORED); INSERT INTO gtest24 (a) VALUES (4); -- ok