diff --git a/src/common/backend/parser/analyze.cpp b/src/common/backend/parser/analyze.cpp index a853dfb3b..0d38ba9e3 100644 --- a/src/common/backend/parser/analyze.cpp +++ b/src/common/backend/parser/analyze.cpp @@ -3967,7 +3967,7 @@ static Query* transformUpdateStmt(ParseState* pstate, UpdateStmt* stmt) } /* non-supported IGNORE cases */ - Relation rel = ((Relation)linitial(pstate->p_target_relation)); + Relation rel = ((Relation)linitial2(pstate->p_target_relation)); if (pstate->p_has_ignore && rel != NULL) { if (RelationIsColumnFormat(rel)) { ereport(ERROR, ((errcode(ERRCODE_FEATURE_NOT_SUPPORTED), diff --git a/src/common/backend/utils/error/elog.cpp b/src/common/backend/utils/error/elog.cpp index 882be89cb..989e07171 100644 --- a/src/common/backend/utils/error/elog.cpp +++ b/src/common/backend/utils/error/elog.cpp @@ -5369,14 +5369,13 @@ void gramShowWarningsErrors(int offset, int count, DestReceiver *dest, bool isSh Assert(lc != NULL); DolphinErrorData *eData = (DolphinErrorData *)lfirst(lc); values[1] = Int32GetDatum(eData->errorcode); - if (eData->message) { - values[2] = CStringGetTextDatum(eData->message); - } else { - values[2] = CStringGetTextDatum(""); - } + if (isShowErrors) { if (eData->elevel == enum_dolphin_error_level::B_ERROR) { values[0] = CStringGetTextDatum("Error"); + } else { + currIdx++; + continue; } } else { switch (eData->elevel) { @@ -5392,6 +5391,12 @@ void gramShowWarningsErrors(int offset, int count, DestReceiver *dest, bool isSh break; } } + + if (eData->message) { + values[2] = CStringGetTextDatum(eData->message); + } else { + values[2] = CStringGetTextDatum(""); + } limit--; currIdx++; do_tup_output(tstate, values, NUM_SHOW_WARNINGS_COLUMNS, nulls, NUM_SHOW_WARNINGS_COLUMNS); diff --git a/src/test/regress/expected/show_warnings.out b/src/test/regress/expected/show_warnings.out index a2bcce593..a118d40ea 100644 --- a/src/test/regress/expected/show_warnings.out +++ b/src/test/regress/expected/show_warnings.out @@ -69,6 +69,46 @@ show warnings; Note | 0 | TEST CHAR VALUE IS abc (1 row) +drop table if exists t_showtest; +NOTICE: table "t_showtest" does not exist, skipping +create table t_showtest(a int, primary key(a)); +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t_showtest_pkey" for table "t_showtest" +show errors; + level | code | message +-------+------+--------- +(0 rows) + +show errors limit 10; + level | code | message +-------+------+--------- +(0 rows) + +drop table if exists t_showtest; +create table t_showtest(a int, primary key(a)); +NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t_showtest_pkey" for table "t_showtest" +show warnings; + level | code | message +-------+------+------------------------------------------------------------------------------------------------ + Note | 0 | CREATE TABLE / PRIMARY KEY will create implicit index "t_showtest_pkey" for table "t_showtest" +(1 row) + +drop table if exists t_showtest; +update user set b = 'x' where a = 1; +ERROR: column "a" does not exist +LINE 1: update user set b = 'x' where a = 1; + ^ +show warnings; + level | code | message +-------+----------+--------------------------- + Error | 50360452 | column "a" does not exist +(1 row) + +show errors; + level | code | message +-------+----------+--------------------------- + Error | 50360452 | column "a" does not exist +(1 row) + set sql_note=false; select TEST_FUNC('abc'::clob); INFO: TEST CHAR VALUE IS abc diff --git a/src/test/regress/sql/show_warnings.sql b/src/test/regress/sql/show_warnings.sql index ebedfd30a..7637c60d2 100644 --- a/src/test/regress/sql/show_warnings.sql +++ b/src/test/regress/sql/show_warnings.sql @@ -22,6 +22,21 @@ $$ LANGUAGE plpgsql; select TEST_FUNC('abc'::clob); show warnings; + +drop table if exists t_showtest; +create table t_showtest(a int, primary key(a)); +show errors; +show errors limit 10; + +drop table if exists t_showtest; +create table t_showtest(a int, primary key(a)); +show warnings; +drop table if exists t_showtest; + +update user set b = 'x' where a = 1; +show warnings; +show errors; + set sql_note=false; select TEST_FUNC('abc'::clob); show warnings;