Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit128ce8e

Browse files
committed
Fix ADD IF NOT EXISTS used in conjunction with ALTER TABLE ONLY
The flag for IF NOT EXISTS was only being passed down in the normalrecursing case. It's been this way since originally added in 9.6 incommit2cd40ad so backpatch back to 9.6.
1 parentc9a1c55 commit128ce8e

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

‎src/backend/commands/tablecmds.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4042,7 +4042,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
40424042
caseAT_AddColumnToView:/* add column via CREATE OR REPLACE VIEW */
40434043
address=ATExecAddColumn(wqueue,tab,rel, (ColumnDef*)cmd->def,
40444044
false, false, false,
4045-
false,lockmode);
4045+
cmd->missing_ok,lockmode);
40464046
break;
40474047
caseAT_AddColumnRecurse:
40484048
address=ATExecAddColumn(wqueue,tab,rel, (ColumnDef*)cmd->def,

‎src/test/regress/expected/alter_table.out

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3306,6 +3306,9 @@ ALTER TABLE test_add_column
33063306
ALTER TABLE test_add_column
33073307
ADD COLUMN c2 integer; -- fail because c2 already exists
33083308
ERROR: column "c2" of relation "test_add_column" already exists
3309+
ALTER TABLE ONLY test_add_column
3310+
ADD COLUMN c2 integer; -- fail because c2 already exists
3311+
ERROR: column "c2" of relation "test_add_column" already exists
33093312
\d test_add_column
33103313
Table "public.test_add_column"
33113314
Column | Type | Collation | Nullable | Default
@@ -3316,6 +3319,9 @@ ERROR: column "c2" of relation "test_add_column" already exists
33163319
ALTER TABLE test_add_column
33173320
ADD COLUMN IF NOT EXISTS c2 integer; -- skipping because c2 already exists
33183321
NOTICE: column "c2" of relation "test_add_column" already exists, skipping
3322+
ALTER TABLE ONLY test_add_column
3323+
ADD COLUMN IF NOT EXISTS c2 integer; -- skipping because c2 already exists
3324+
NOTICE: column "c2" of relation "test_add_column" already exists, skipping
33193325
\d test_add_column
33203326
Table "public.test_add_column"
33213327
Column | Type | Collation | Nullable | Default

‎src/test/regress/sql/alter_table.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2054,9 +2054,13 @@ ALTER TABLE test_add_column
20542054
\d test_add_column
20552055
ALTERTABLE test_add_column
20562056
ADD COLUMN c2integer;-- fail because c2 already exists
2057+
ALTERTABLE ONLY test_add_column
2058+
ADD COLUMN c2integer;-- fail because c2 already exists
20572059
\d test_add_column
20582060
ALTERTABLE test_add_column
20592061
ADD COLUMN IF NOT EXISTS c2integer;-- skipping because c2 already exists
2062+
ALTERTABLE ONLY test_add_column
2063+
ADD COLUMN IF NOT EXISTS c2integer;-- skipping because c2 already exists
20602064
\d test_add_column
20612065
ALTERTABLE test_add_column
20622066
ADD COLUMN c2integer,-- fail because c2 already exists

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp