Skip to content

Commit 6fb5ced

Browse files
authored
[master] fix of issue 612 (IvorySQL#694)
* fix of issue 612 * add regression test case for constraint in parenthesis
1 parent 1e62f6f commit 6fb5ced

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

src/backend/oracle_parser/ora_gram.y

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2745,6 +2745,15 @@ alter_table_cmd:
27452745
n->def = $2;
27462746
$$ = (Node *) n;
27472747
}
2748+
/* ALTER TABLE <name> ADD (CONSTRAINT ...) */
2749+
| ADD_P '(' TableConstraint ')'
2750+
{
2751+
AlterTableCmd *n = makeNode(AlterTableCmd);
2752+
2753+
n->subtype = AT_AddConstraint;
2754+
n->def = $3;
2755+
$$ = (Node *) n;
2756+
}
27482757
/* ALTER TABLE <name> ALTER CONSTRAINT ... */
27492758
| ALTER CONSTRAINT name ConstraintAttributeSpec
27502759
{

src/oracle_test/regress/expected/alter_table.out

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,9 @@ ALTER TABLE onek DROP CONSTRAINT onek_unique1_constraint_foo;
321321
ALTER TABLE onek ADD CONSTRAINT onek_check_constraint CHECK (unique1 >= 0);
322322
ALTER TABLE onek RENAME CONSTRAINT onek_check_constraint TO onek_check_constraint_foo;
323323
ALTER TABLE onek DROP CONSTRAINT onek_check_constraint_foo;
324+
-- support constraint in parenthesis
325+
ALTER TABLE onek ADD (CONSTRAINT onek_check_constraint CHECK (unique1 >= 0));
326+
ALTER TABLE onek DROP CONSTRAINT onek_check_constraint;
324327
-- renaming constraint should rename index as well
325328
ALTER TABLE onek ADD CONSTRAINT onek_unique1_constraint UNIQUE (unique1);
326329
DROP INDEX onek_unique1_constraint; -- to see whether it's there

src/oracle_test/regress/sql/alter_table.sql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,10 @@ ALTER TABLE onek ADD CONSTRAINT onek_check_constraint CHECK (unique1 >= 0);
289289
ALTER TABLE onek RENAME CONSTRAINT onek_check_constraint TO onek_check_constraint_foo;
290290
ALTER TABLE onek DROP CONSTRAINT onek_check_constraint_foo;
291291

292+
-- support constraint in parenthesis
293+
ALTER TABLE onek ADD (CONSTRAINT onek_check_constraint CHECK (unique1 >= 0));
294+
ALTER TABLE onek DROP CONSTRAINT onek_check_constraint;
295+
292296
-- renaming constraint should rename index as well
293297
ALTER TABLE onek ADD CONSTRAINT onek_unique1_constraint UNIQUE (unique1);
294298
DROP INDEX onek_unique1_constraint; -- to see whether it's there

0 commit comments

Comments
 (0)