diff --git a/GNUmakefile.in b/GNUmakefile.in index 47a30ae1f..f7d5da01c 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -107,6 +107,13 @@ install: @if test -d contrib/gms_profiler; then $(MAKE) -C contrib/gms_profiler $@; fi @if test -d contrib/gms_output; then $(MAKE) -C contrib/gms_output $@; fi @if test -d contrib/timescaledb; then (./contrib/timescaledb/run_to_build.sh && $(MAKE) -C contrib/timescaledb/build $@); fi + @if test -d contrib/chparser; then \ + if command -v scws &> /dev/null; then \ + $(MAKE) -C contrib/chparser $@; \ + else \ + echo "SCWS is not installed, skipping chparser build."; \ + fi \ + fi +@echo "openGauss installation complete." endif endif diff --git a/build/script/aarch64_opengauss_list b/build/script/aarch64_opengauss_list index 3ad9f4904..eb7a81aba 100644 --- a/build/script/aarch64_opengauss_list +++ b/build/script/aarch64_opengauss_list @@ -99,6 +99,8 @@ ./share/postgresql/extension/age.control ./share/postgresql/extension/datavec--1.0.sql ./share/postgresql/extension/datavec.control +./share/postgresql/extension/chparser--1.0.sql +./share/postgresql/extension/chparser.control ./share/postgresql/extension/assessment--1.0.sql ./share/postgresql/extension/assessment.control ./share/postgresql/extension/file_fdw--1.0.sql @@ -737,6 +739,7 @@ ./share/postgresql/tsearch_data/swedish.stop ./share/postgresql/tsearch_data/ispell_sample.dict ./share/postgresql/tsearch_data/italian.stop +./share/postgresql/tsearch_data/dict.utf8.xdb ./share/postgresql/information_schema.sql ./share/postgresql/timezonesets/Antarctica.txt ./share/postgresql/timezonesets/Australia.txt @@ -816,6 +819,7 @@ ./lib/postgresql/dolphin.so ./lib/postgresql/age.so ./lib/postgresql/datavec.so +./lib/postgresql/chparser.so ./lib/postgresql/pg_upgrade_support.so ./lib/postgresql/java/pljava.jar ./lib/postgresql/postgres_fdw.so diff --git a/build/script/opengauss_release_list_ubuntu_single b/build/script/opengauss_release_list_ubuntu_single index 36a617c8c..00208c25c 100644 --- a/build/script/opengauss_release_list_ubuntu_single +++ b/build/script/opengauss_release_list_ubuntu_single @@ -84,6 +84,8 @@ ./share/postgresql/extension/age.control ./share/postgresql/extension/datavec--1.0.sql ./share/postgresql/extension/datavec.control +./share/postgresql/extension/chparser--1.0.sql +./share/postgresql/extension/chparser.control ./share/postgresql/extension/file_fdw--1.0.sql ./share/postgresql/extension/plpgsql.control ./share/postgresql/extension/dist_fdw.control @@ -724,6 +726,7 @@ ./share/postgresql/tsearch_data/swedish.stop ./share/postgresql/tsearch_data/ispell_sample.dict ./share/postgresql/tsearch_data/italian.stop +./share/postgresql/tsearch_data/dict.utf8.xdb ./share/postgresql/information_schema.sql ./share/postgresql/timezonesets/Antarctica.txt ./share/postgresql/timezonesets/Australia.txt @@ -788,6 +791,7 @@ ./lib/postgresql/dolphin.so ./lib/postgresql/age.so ./lib/postgresql/datavec.so +./lib/postgresql/chparser.so ./lib/postgresql/pg_upgrade_support.so ./lib/postgresql/java/pljava.jar ./lib/postgresql/postgres_fdw.so diff --git a/build/script/x86_64_opengauss_list b/build/script/x86_64_opengauss_list index cf7609e05..e9cebf57d 100644 --- a/build/script/x86_64_opengauss_list +++ b/build/script/x86_64_opengauss_list @@ -99,6 +99,8 @@ ./share/postgresql/extension/timescaledb--1.7.4.sql ./share/postgresql/extension/datavec--1.0.sql ./share/postgresql/extension/datavec.control +./share/postgresql/extension/chparser--1.0.sql +./share/postgresql/extension/chparser.control ./share/postgresql/extension/assessment--1.0.sql ./share/postgresql/extension/assessment.control ./share/postgresql/extension/file_fdw--1.0.sql @@ -737,6 +739,7 @@ ./share/postgresql/tsearch_data/swedish.stop ./share/postgresql/tsearch_data/ispell_sample.dict ./share/postgresql/tsearch_data/italian.stop +./share/postgresql/tsearch_data/dict.utf8.xdb ./share/postgresql/information_schema.sql ./share/postgresql/timezonesets/Antarctica.txt ./share/postgresql/timezonesets/Australia.txt @@ -816,6 +819,7 @@ ./lib/postgresql/dolphin.so ./lib/postgresql/age.so ./lib/postgresql/datavec.so +./lib/postgresql/chparser.so ./lib/postgresql/pg_upgrade_support.so ./lib/postgresql/java/pljava.jar ./lib/postgresql/postgres_fdw.so diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index 7777f0625..ace80fcfe 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -26,6 +26,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/ndpplugin ${CMAKE_CURRENT_SOURCE_DIR}/spq_plugin ${CMAKE_CURRENT_SOURCE_DIR}/datavec + ${CMAKE_CURRENT_SOURCE_DIR}/chparser ${CMAKE_CURRENT_SOURCE_DIR}/gms_stats ${CMAKE_CURRENT_SOURCE_DIR}/gms_profiler ) @@ -57,4 +58,7 @@ endif() if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/datavec) add_subdirectory(datavec) endif() +if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/chparser) + add_subdirectory(chparser) +endif() add_subdirectory(gms_profiler) diff --git a/src/common/backend/parser/gram.y b/src/common/backend/parser/gram.y index ea91ef32e..e78d0f213 100644 --- a/src/common/backend/parser/gram.y +++ b/src/common/backend/parser/gram.y @@ -22971,14 +22971,6 @@ InsertStmt: opt_with_clause INSERT hint_string INTO insert_target insert_rest re } | opt_with_clause INSERT hint_string INTO insert_target insert_rest upsert_clause returning_clause { - if ($8 != NIL) { - const char* message = "RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."; - InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); - ereport(errstate, - (errmodule(MOD_PARSER), - errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."))); - } if ($1 != NULL) { const char* message = "WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement."; InsertErrorMessage(message, u_sess->plsql_cxt.plpgsql_yylloc); diff --git a/src/gausskernel/optimizer/commands/dropcmds.cpp b/src/gausskernel/optimizer/commands/dropcmds.cpp index f68c70563..cbe090463 100644 --- a/src/gausskernel/optimizer/commands/dropcmds.cpp +++ b/src/gausskernel/optimizer/commands/dropcmds.cpp @@ -80,6 +80,7 @@ static void DropExtensionInListIsSupported(List* objname) "packages", "ndpplugin", "datavec", + "chparser", #ifndef ENABLE_MULTIPLE_NODES "mysql_fdw", "oracle_fdw", diff --git a/src/gausskernel/process/tcop/utility.cpp b/src/gausskernel/process/tcop/utility.cpp index d413deede..d10735c58 100755 --- a/src/gausskernel/process/tcop/utility.cpp +++ b/src/gausskernel/process/tcop/utility.cpp @@ -6725,7 +6725,7 @@ ProcessUtilitySlow(Node *parse_tree, break; case OBJECT_TSPARSER: #ifdef PGXC - if (!IsInitdb) { + if (!IsInitdb && !u_sess->attr.attr_common.IsInplaceUpgrade && !u_sess->exec_cxt.extension_is_valid) { ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), errmsg("user-defined text search parser is not yet supported."))); diff --git a/src/test/regress/expected/insert_update_001_ustore_1.out b/src/test/regress/expected/insert_update_001_ustore_1.out index 0513028b2..d6089a183 100644 --- a/src/test/regress/expected/insert_update_001_ustore_1.out +++ b/src/test/regress/expected/insert_update_001_ustore_1.out @@ -260,9 +260,6 @@ WITH RECURSIVE rq AS ) INSERT INTO t03 SELECT * FROM rq ON DUPLICATE KEY UPDATE col1 = rq.col1; ERROR: WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. ---- error: test returning clause -INSERT INTO t01 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 1 RETURNING NOT(1::bool); -ERROR: RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. --- error: distribute key are not allowed to UPDATE CREATE TABLE t04 (col1 INT, col2 INT) with(storage_type=ustore); INSERT INTO t04 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 5; diff --git a/src/test/regress/expected/upsert_001.out b/src/test/regress/expected/upsert_001.out index 4b9d90962..08b2d666f 100755 --- a/src/test/regress/expected/upsert_001.out +++ b/src/test/regress/expected/upsert_001.out @@ -279,9 +279,6 @@ WITH RECURSIVE rq AS ) INSERT INTO t03 SELECT * FROM rq ON DUPLICATE KEY UPDATE col1 = rq.col1; ERROR: WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. ---- error: test returning clause -INSERT INTO t01 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 1 RETURNING NOT(1::bool); -ERROR: RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. --- error: distribute key are not allowed to UPDATE CREATE TABLE t04 (col1 INT, col2 INT) ; INSERT INTO t04 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 5; diff --git a/src/test/regress/expected/upsert_restriction.out b/src/test/regress/expected/upsert_restriction.out index eb88a58be..2a69cb8b4 100644 --- a/src/test/regress/expected/upsert_restriction.out +++ b/src/test/regress/expected/upsert_restriction.out @@ -9,7 +9,6 @@ index DEFERABLE index insert stmt - returning with with recur update stmt @@ -55,9 +54,6 @@ ERROR: INSERT ON DUPLICATE KEY UPDATE does not support deferrable unique constr insert into up_neg_03 values(1) on duplicate key update c1 = 1; ERROR: INSERT ON DUPLICATE KEY UPDATE does not support deferrable unique constraints/exclusion constraints. -- insert stmt -----returning -insert into up_neg_04 values(1,1,1) on duplicate key update c1 = 1 returning c1; -ERROR: RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. ----with with sub as (select *from up_neg_04) insert into up_neg_04 select *from sub on duplicate key update c1 =1; @@ -66,9 +62,6 @@ ERROR: WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE with RECURSIVE sub as (select *from up_neg_04) insert into up_neg_04 select *from sub on duplicate key update c1 =1; ERROR: WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. -with sub as (select *from up_neg_04) -insert into up_neg_04 select *from sub on duplicate key update c1 =1 returning c1; -ERROR: RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. -- update stmt ---- VALUES with expr insert into up_neg_05 values(1,1,1,1) on duplicate key update c3 = values(1+100); diff --git a/src/test/regress/expected/upsert_returning.out b/src/test/regress/expected/upsert_returning.out new file mode 100644 index 000000000..50db04407 --- /dev/null +++ b/src/test/regress/expected/upsert_returning.out @@ -0,0 +1,99 @@ +DROP SCHEMA test_upsert_returning CASCADE; +ERROR: schema "test_upsert_returning" does not exist +CREATE SCHEMA test_upsert_returning; +CREATE SCHEMA +SET CURRENT_SCHEMA TO test_upsert_returning; +CREATE TEMP TABLE foo (f1 int unique, f2 text, f3 int default 42); +NOTICE: CREATE TABLE / UNIQUE will create implicit index "foo_f1_key" for table "foo" +CREATE TEMP TABLE foo_2 (a int, b int); +INSERT INTO foo_2 select generate_series(1, 5), generate_series(1, 2); +INSERT INTO foo (f1, f2, f3) + VALUES (1, 'test', DEFAULT), (2, 'More', 11), (3, upper('more'), 7+9) ON DUPLICATE KEY UPDATE f3 = f3+1 + RETURNING *, f1+f3 AS sum; + f1 | f2 | f3 | sum +----+------+----+----- + 1 | test | 42 | 43 + 2 | More | 11 | 13 + 3 | MORE | 16 | 19 +(3 rows) + +SELECT * FROM foo ORDER BY f1; + f1 | f2 | f3 +----+------+---- + 1 | test | 42 + 2 | More | 11 + 3 | MORE | 16 +(3 rows) + +with t as +( + INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 on ON DUPLICATE KEY UPDATE f3 = f3+10 RETURNING foo.*, '1' +) +select * from t; + f1 | f2 | f3 | ?column? +----+------+----+---------- + 3 | MORE | 26 | 1 + 4 | MORE | 18 | 1 + 2 | More | 21 | 1 +(3 rows) + +-- error +INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 ON DUPLICATE KEY UPDATE f1 = f1+1 RETURNING f3, f2, f1, least(f1,f3); +ERROR: INSERT ON DUPLICATE KEY UPDATE don't allow update on primary key or unique key. +INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 ON DUPLICATE KEY UPDATE f3 = f3+1 RETURNING f3, f2, f1, least(f1,f3); + f3 | f2 | f1 | least +----+------+----+------- + 20 | MORE | 5 | 5 + 27 | MORE | 3 | 3 + 19 | MORE | 4 | 4 + 22 | More | 2 | 2 +(4 rows) + +-- update nothing +INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 ON DUPLICATE KEY UPDATE f3 = f3 RETURNING f3, f2, f1, least(f1,f3); + f3 | f2 | f1 | least +----+------+----+------- + 20 | MORE | 5 | 5 + 22 | MORE | 6 | 6 + 27 | MORE | 3 | 3 + 19 | MORE | 4 | 4 + 22 | More | 2 | 2 +(5 rows) + +SELECT * FROM foo ORDER BY f1; + f1 | f2 | f3 +----+------+---- + 1 | test | 42 + 2 | More | 22 + 3 | MORE | 27 + 4 | MORE | 19 + 5 | MORE | 20 + 6 | MORE | 22 +(6 rows) + +-- Subplans and initplans in the RETURNING list +INSERT INTO foo SELECT f1+1, f2, f3+99 FROM foo order by 1, 2, 3 ON DUPLICATE KEY UPDATE f3 =f3+10 RETURNING *, f1 - 3 IN +(SELECT b FROM foo_2) AS subplan, EXISTS(SELECT * FROM foo_2) AS initplan; + f1 | f2 | f3 | subplan | initplan +----+------+-----+---------+---------- + 2 | More | 32 | f | t + 3 | MORE | 37 | f | t + 4 | MORE | 29 | t | t + 5 | MORE | 30 | t | t + 6 | MORE | 32 | f | t + 7 | MORE | 121 | f | t +(6 rows) + +SELECT * FROM foo order by 1,2,3; + f1 | f2 | f3 +----+------+----- + 1 | test | 42 + 2 | More | 32 + 3 | MORE | 37 + 4 | MORE | 29 + 5 | MORE | 30 + 6 | MORE | 32 + 7 | MORE | 121 +(7 rows) + +DROP SCHEMA test_upsert_returning CASCADE; \ No newline at end of file diff --git a/src/test/regress/sql/upsert_001.sql b/src/test/regress/sql/upsert_001.sql index 0205e4b8a..2d510229c 100644 --- a/src/test/regress/sql/upsert_001.sql +++ b/src/test/regress/sql/upsert_001.sql @@ -145,9 +145,6 @@ WITH RECURSIVE rq AS ) INSERT INTO t03 SELECT * FROM rq ON DUPLICATE KEY UPDATE col1 = rq.col1; ---- error: test returning clause -INSERT INTO t01 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 1 RETURNING NOT(1::bool); - --- error: distribute key are not allowed to UPDATE CREATE TABLE t04 (col1 INT, col2 INT) ; INSERT INTO t04 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 5; diff --git a/src/test/regress/sql/upsert_restriction.sql b/src/test/regress/sql/upsert_restriction.sql index 7c5c1012d..2d5bed7c1 100644 --- a/src/test/regress/sql/upsert_restriction.sql +++ b/src/test/regress/sql/upsert_restriction.sql @@ -9,7 +9,6 @@ index DEFERABLE index insert stmt - returning with with recur update stmt @@ -55,8 +54,6 @@ insert into up_neg_03 values(1,2,3) on duplicate key update c1 = 1; insert into up_neg_03 values(1) on duplicate key update c1 = 1; -- insert stmt -----returning -insert into up_neg_04 values(1,1,1) on duplicate key update c1 = 1 returning c1; ----with with sub as (select *from up_neg_04) insert into up_neg_04 select *from sub on duplicate key update c1 =1; @@ -65,9 +62,6 @@ insert into up_neg_04 select *from sub on duplicate key update c1 =1; with RECURSIVE sub as (select *from up_neg_04) insert into up_neg_04 select *from sub on duplicate key update c1 =1; -with sub as (select *from up_neg_04) -insert into up_neg_04 select *from sub on duplicate key update c1 =1 returning c1; - -- update stmt ---- VALUES with expr insert into up_neg_05 values(1,1,1,1) on duplicate key update c3 = values(1+100); diff --git a/src/test/regress/sql/upsert_returning.sql b/src/test/regress/sql/upsert_returning.sql new file mode 100644 index 000000000..069b901ab --- /dev/null +++ b/src/test/regress/sql/upsert_returning.sql @@ -0,0 +1,40 @@ +DROP SCHEMA test_upsert_returning CASCADE; +CREATE SCHEMA test_upsert_returning; +SET CURRENT_SCHEMA TO test_upsert_returning; + + +CREATE TEMP TABLE foo (f1 int unique, f2 text, f3 int default 42); +CREATE TEMP TABLE foo_2 (a int, b int); +INSERT INTO foo_2 select generate_series(1, 5), generate_series(1, 2); + +INSERT INTO foo (f1, f2, f3) + VALUES (1, 'test', DEFAULT), (2, 'More', 11), (3, upper('more'), 7+9) ON DUPLICATE KEY UPDATE f3 = f3+1 + RETURNING *, f1+f3 AS sum; + +SELECT * FROM foo ORDER BY f1; + +with t as +( + INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 ON DUPLICATE KEY UPDATE f3 = f3+10 RETURNING foo.*, '1' +) +select * from t; + + +-- error +INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 ON DUPLICATE KEY UPDATE f1 = f1+1 RETURNING f3, f2, f1, least(f1,f3); + +INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 ON DUPLICATE KEY UPDATE f3 = f3+1 RETURNING f3, f2, f1, least(f1,f3); + +-- update nothing +INSERT INTO foo SELECT f1+1, f2, f3+2 FROM foo order by f3 ON DUPLICATE KEY UPDATE f3 = f3 RETURNING f3, f2, f1, least(f1,f3); + +SELECT * FROM foo ORDER BY f1; + +-- Subplans and initplans in the RETURNING list + +INSERT INTO foo SELECT f1+1, f2, f3+99 FROM foo order by 1, 2, 3 ON DUPLICATE KEY UPDATE f3 =f3+10 RETURNING *, f1 - 3 IN +(SELECT b FROM foo_2) AS subplan, EXISTS(SELECT * FROM foo_2) AS initplan; + +SELECT * FROM foo order by 1,2,3; + +DROP SCHEMA test_upsert_returning CASCADE; \ No newline at end of file diff --git a/src/test/regress/wastebin/expected/insert_update_001.out b/src/test/regress/wastebin/expected/insert_update_001.out index 138d68059..69cea0349 100644 --- a/src/test/regress/wastebin/expected/insert_update_001.out +++ b/src/test/regress/wastebin/expected/insert_update_001.out @@ -271,9 +271,6 @@ WITH RECURSIVE rq AS ) INSERT INTO t03 SELECT * FROM rq ON DUPLICATE KEY UPDATE col1 = rq.col1; ERROR: WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. ---- error: test returning clause -INSERT INTO t01 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 1 RETURNING NOT(1::bool); -ERROR: RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. --- error: distribute key are not allowed to UPDATE CREATE TABLE t04 (col1 INT, col2 INT) ; INSERT INTO t04 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 5; diff --git a/src/test/regress/wastebin/expected/insert_update_001_ustore.out b/src/test/regress/wastebin/expected/insert_update_001_ustore.out index 4390c6d95..f49d09832 100644 --- a/src/test/regress/wastebin/expected/insert_update_001_ustore.out +++ b/src/test/regress/wastebin/expected/insert_update_001_ustore.out @@ -252,9 +252,6 @@ WITH RECURSIVE rq AS ) INSERT INTO t03 SELECT * FROM rq ON DUPLICATE KEY UPDATE col1 = rq.col1; ERROR: WITH clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. ---- error: test returning clause -INSERT INTO t01 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 1 RETURNING NOT(1::bool); -ERROR: RETURNING clause is not yet supported whithin INSERT ON DUPLICATE KEY UPDATE statement. --- error: distribute key are not allowed to UPDATE CREATE TABLE t04 (col1 INT, col2 INT) with(storage_type=ustore); INSERT INTO t04 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 5; diff --git a/src/test/regress/wastebin/sql/insert_update_001.sql b/src/test/regress/wastebin/sql/insert_update_001.sql index 031c4976c..4e66781be 100644 --- a/src/test/regress/wastebin/sql/insert_update_001.sql +++ b/src/test/regress/wastebin/sql/insert_update_001.sql @@ -150,9 +150,6 @@ WITH RECURSIVE rq AS ) INSERT INTO t03 SELECT * FROM rq ON DUPLICATE KEY UPDATE col1 = rq.col1; ---- error: test returning clause -INSERT INTO t01 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 1 RETURNING NOT(1::bool); - --- error: distribute key are not allowed to UPDATE CREATE TABLE t04 (col1 INT, col2 INT) ; INSERT INTO t04 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 5; diff --git a/src/test/regress/wastebin/sql/insert_update_001_ustore.sql b/src/test/regress/wastebin/sql/insert_update_001_ustore.sql index 629bb0527..6d29ebf3d 100644 --- a/src/test/regress/wastebin/sql/insert_update_001_ustore.sql +++ b/src/test/regress/wastebin/sql/insert_update_001_ustore.sql @@ -146,9 +146,6 @@ WITH RECURSIVE rq AS ) INSERT INTO t03 SELECT * FROM rq ON DUPLICATE KEY UPDATE col1 = rq.col1; ---- error: test returning clause -INSERT INTO t01 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 1 RETURNING NOT(1::bool); - --- error: distribute key are not allowed to UPDATE CREATE TABLE t04 (col1 INT, col2 INT) with(storage_type=ustore); INSERT INTO t04 VALUES (1) ON DUPLICATE KEY UPDATE col1 = 5;