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

Commit9e6cd79

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 parent4aad981 commit9e6cd79

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
@@ -3832,7 +3832,7 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab, Relation rel,
38323832
caseAT_AddColumnToView:/* add column via CREATE OR REPLACE VIEW */
38333833
address=ATExecAddColumn(wqueue,tab,rel, (ColumnDef*)cmd->def,
38343834
false, false, false,
3835-
false,lockmode);
3835+
cmd->missing_ok,lockmode);
38363836
break;
38373837
caseAT_AddColumnRecurse:
38383838
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
@@ -3153,6 +3153,9 @@ ALTER TABLE test_add_column
31533153
ALTER TABLE test_add_column
31543154
ADD COLUMN c2 integer; -- fail because c2 already exists
31553155
ERROR: column "c2" of relation "test_add_column" already exists
3156+
ALTER TABLE ONLY test_add_column
3157+
ADD COLUMN c2 integer; -- fail because c2 already exists
3158+
ERROR: column "c2" of relation "test_add_column" already exists
31563159
\d test_add_column
31573160
Table "public.test_add_column"
31583161
Column | Type | Collation | Nullable | Default
@@ -3163,6 +3166,9 @@ ERROR: column "c2" of relation "test_add_column" already exists
31633166
ALTER TABLE test_add_column
31643167
ADD COLUMN IF NOT EXISTS c2 integer; -- skipping because c2 already exists
31653168
NOTICE: column "c2" of relation "test_add_column" already exists, skipping
3169+
ALTER TABLE ONLY test_add_column
3170+
ADD COLUMN IF NOT EXISTS c2 integer; -- skipping because c2 already exists
3171+
NOTICE: column "c2" of relation "test_add_column" already exists, skipping
31663172
\d test_add_column
31673173
Table "public.test_add_column"
31683174
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
@@ -1970,9 +1970,13 @@ ALTER TABLE test_add_column
19701970
\d test_add_column
19711971
ALTERTABLE test_add_column
19721972
ADD COLUMN c2integer;-- fail because c2 already exists
1973+
ALTERTABLE ONLY test_add_column
1974+
ADD COLUMN c2integer;-- fail because c2 already exists
19731975
\d test_add_column
19741976
ALTERTABLE test_add_column
19751977
ADD COLUMN IF NOT EXISTS c2integer;-- skipping because c2 already exists
1978+
ALTERTABLE ONLY test_add_column
1979+
ADD COLUMN IF NOT EXISTS c2integer;-- skipping because c2 already exists
19761980
\d test_add_column
19771981
ALTERTABLE test_add_column
19781982
ADD COLUMN c2integer,-- fail because c2 already exists

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp