Merge lp:~mmcm/akiban-sql-parser/alter-column-generated into lp:~akiban-technologies/akiban-sql-parser/trunk

Proposed by Mike McMahon
Status: Merged
Approved by: Nathan Williams
Approved revision: 295
Merged at revision: 295
Proposed branch: lp:~mmcm/akiban-sql-parser/alter-column-generated
Merge into: lp:~akiban-technologies/akiban-sql-parser/trunk
Diff against target: 300 lines (+162/-1)
18 files modified
src/main/java/com/akiban/sql/parser/ColumnDefinitionNode.java (+4/-0)
src/main/javacc/SQLGrammar.jj (+3/-1)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.expected (+21/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.sql (+1/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.expected (+21/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.sql (+1/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.expected (+30/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.sql (+1/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.expected (+23/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.sql (+1/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.expected (+23/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.sql (+1/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.expected (+23/-0)
src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.sql (+1/-0)
src/test/resources/com/akiban/sql/parser/create-table-7.expected (+2/-0)
src/test/resources/com/akiban/sql/parser/create-table-sequence-1.expected (+2/-0)
src/test/resources/com/akiban/sql/parser/create-table-sequence-2.expected (+2/-0)
src/test/resources/com/akiban/sql/parser/create-table-sequence-3.expected (+2/-0)
To merge this branch: bzr merge lp:~mmcm/akiban-sql-parser/alter-column-generated
Reviewer Review Type Date Requested Status
Nathan Williams Approve
Review via email: mp+158460@code.launchpad.net

Description of the change

Support ALTER TABLE t ALTER COLUMN c SET GENERATED ...

The actual productions already supported this, but a LOOKAHEAD didn't let it through.

Add a bunch more tests of the various ALTER COLUMN cases.

To post a comment you must log in.
Revision history for this message
Nathan Williams (nwilliams) wrote :

As described.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/main/java/com/akiban/sql/parser/ColumnDefinitionNode.java'
--- src/main/java/com/akiban/sql/parser/ColumnDefinitionNode.java 2012-11-07 17:49:31 +0000
+++ src/main/java/com/akiban/sql/parser/ColumnDefinitionNode.java 2013-04-11 19:44:45 +0000
@@ -178,6 +178,10 @@
178178
179 public String toString() {179 public String toString() {
180 return "type: " + getType() + "\n" +180 return "type: " + getType() + "\n" +
181 (!isAutoincrementColumn() ? "" : (
182 "autoIncrementStart: " + getAutoincrementStart() + "\n" +
183 "autoIncrementIncrement: " + getAutoincrementIncrement() + "\n"
184 )) +
181 super.toString();185 super.toString();
182 }186 }
183187
184188
=== modified file 'src/main/javacc/SQLGrammar.jj'
--- src/main/javacc/SQLGrammar.jj 2013-04-10 23:54:23 +0000
+++ src/main/javacc/SQLGrammar.jj 2013-04-11 19:44:45 +0000
@@ -13459,7 +13459,9 @@
13459 }13459 }
13460|13460|
13461 LOOKAHEAD( { getToken(1).kind == WITH || getToken(1).kind == _DEFAULT ||13461 LOOKAHEAD( { getToken(1).kind == WITH || getToken(1).kind == _DEFAULT ||
13462 (getToken(1).kind == SET && getToken(2).kind == _DEFAULT) } )13462 getToken(1).kind == GENERATED ||
13463 (getToken(1).kind == SET && (getToken(2).kind == _DEFAULT ||
13464 getToken(2).kind == GENERATED)) } )
13463 [<SET>] defaultNode = defaultClause(autoIncrementInfo, columnName)13465 [<SET>] defaultNode = defaultClause(autoIncrementInfo, columnName)
13464 {13466 {
13465 return wrapAlterColumnDefaultValue(defaultNode,13467 return wrapAlterColumnDefaultValue(defaultNode,
1346613468
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.expected'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.expected 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.expected 2013-04-11 19:44:45 +0000
@@ -0,0 +1,21 @@
1com.akiban.sql.parser.AlterTableNode@1e4b2d10
2name: t1
3statementType: ALTER TABLE
4objectName: t1
5compressTable: false
6sequential: false
7truncateTable: false
8purge: false
9defragment: false
10truncateEndOfTable: false
11updateStatistics: false
12updateStatisticsAll: false
13indexNameForUpdateStatistics: null
14tableElementList:
15 com.akiban.sql.parser.TableElementList@597b84f9
16
17 [0]:
18 com.akiban.sql.parser.ModifyColumnNode@3c572554
19 type: DOUBLE
20 name: c
21 elementType: AT_MODIFY_COLUMN
0\ No newline at end of file22\ No newline at end of file
123
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.sql'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.sql 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.sql 2013-04-11 19:44:45 +0000
@@ -0,0 +1,1 @@
1ALTER TABLE t1 ALTER COLUMN c SET DATA TYPE double
0\ No newline at end of file2\ No newline at end of file
13
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.expected'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.expected 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.expected 2013-04-11 19:44:45 +0000
@@ -0,0 +1,21 @@
1com.akiban.sql.parser.AlterTableNode@7d53ccbe
2name: t1
3statementType: ALTER TABLE
4objectName: t1
5compressTable: false
6sequential: false
7truncateTable: false
8purge: false
9defragment: false
10truncateEndOfTable: false
11updateStatistics: false
12updateStatisticsAll: false
13indexNameForUpdateStatistics: null
14tableElementList:
15 com.akiban.sql.parser.TableElementList@8a70e3a
16
17 [0]:
18 com.akiban.sql.parser.ModifyColumnNode@f970646
19 type: null
20 name: c
21 elementType: AT_MODIFY_COLUMN
0\ No newline at end of file22\ No newline at end of file
123
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.sql'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.sql 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.sql 2013-04-11 19:44:45 +0000
@@ -0,0 +1,1 @@
1ALTER TABLE t1 ALTER COLUMN c NOT NULL
0\ No newline at end of file2\ No newline at end of file
13
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.expected'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.expected 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.expected 2013-04-11 19:44:45 +0000
@@ -0,0 +1,30 @@
1com.akiban.sql.parser.AlterTableNode@4dc7f150
2name: t1
3statementType: ALTER TABLE
4objectName: t1
5compressTable: false
6sequential: false
7truncateTable: false
8purge: false
9defragment: false
10truncateEndOfTable: false
11updateStatistics: false
12updateStatisticsAll: false
13indexNameForUpdateStatistics: null
14tableElementList:
15 com.akiban.sql.parser.TableElementList@1b3e315
16
17 [0]:
18 com.akiban.sql.parser.ModifyColumnNode@49017892
19 type: null
20 name: c
21 elementType: AT_MODIFY_COLUMN
22 default:
23 com.akiban.sql.parser.DefaultNode@7f92deaf
24 columnName: null
25 defaultText: 3
26 type: null
27 defaultTree:
28 com.akiban.sql.parser.NumericConstantNode@359f498
29 value: 3
30 type: INTEGER NOT NULL
0\ No newline at end of file31\ No newline at end of file
132
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.sql'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.sql 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.sql 2013-04-11 19:44:45 +0000
@@ -0,0 +1,1 @@
1ALTER TABLE t1 ALTER COLUMN c SET DEFAULT 3
0\ No newline at end of file2\ No newline at end of file
13
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.expected'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.expected 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.expected 2013-04-11 19:44:45 +0000
@@ -0,0 +1,23 @@
1com.akiban.sql.parser.AlterTableNode@9a8d9b
2name: t1
3statementType: ALTER TABLE
4objectName: t1
5compressTable: false
6sequential: false
7truncateTable: false
8purge: false
9defragment: false
10truncateEndOfTable: false
11updateStatistics: false
12updateStatisticsAll: false
13indexNameForUpdateStatistics: null
14tableElementList:
15 com.akiban.sql.parser.TableElementList@22c6bb6c
16
17 [0]:
18 com.akiban.sql.parser.ModifyColumnNode@253ac14a
19 type: null
20 autoIncrementStart: 0
21 autoIncrementIncrement: 2
22 name: c
23 elementType: AT_MODIFY_COLUMN
0\ No newline at end of file24\ No newline at end of file
125
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.sql'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.sql 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.sql 2013-04-11 19:44:45 +0000
@@ -0,0 +1,1 @@
1ALTER TABLE t1 ALTER COLUMN c SET INCREMENT BY 2
0\ No newline at end of file2\ No newline at end of file
13
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.expected'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.expected 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.expected 2013-04-11 19:44:45 +0000
@@ -0,0 +1,23 @@
1com.akiban.sql.parser.AlterTableNode@14dc6233
2name: t1
3statementType: ALTER TABLE
4objectName: t1
5compressTable: false
6sequential: false
7truncateTable: false
8purge: false
9defragment: false
10truncateEndOfTable: false
11updateStatistics: false
12updateStatisticsAll: false
13indexNameForUpdateStatistics: null
14tableElementList:
15 com.akiban.sql.parser.TableElementList@10b30cf8
16
17 [0]:
18 com.akiban.sql.parser.ModifyColumnNode@5b187658
19 type: null
20 autoIncrementStart: 100
21 autoIncrementIncrement: 0
22 name: c
23 elementType: AT_MODIFY_COLUMN
0\ No newline at end of file24\ No newline at end of file
125
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.sql'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.sql 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.sql 2013-04-11 19:44:45 +0000
@@ -0,0 +1,1 @@
1ALTER TABLE t1 ALTER COLUMN c RESTART WITH 100
0\ No newline at end of file2\ No newline at end of file
13
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.expected'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.expected 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.expected 2013-04-11 19:44:45 +0000
@@ -0,0 +1,23 @@
1com.akiban.sql.parser.AlterTableNode@33c36633
2name: t1
3statementType: ALTER TABLE
4objectName: t1
5compressTable: false
6sequential: false
7truncateTable: false
8purge: false
9defragment: false
10truncateEndOfTable: false
11updateStatistics: false
12updateStatisticsAll: false
13indexNameForUpdateStatistics: null
14tableElementList:
15 com.akiban.sql.parser.TableElementList@616ab8d1
16
17 [0]:
18 com.akiban.sql.parser.ModifyColumnNode@258bd34e
19 type: null
20 autoIncrementStart: 100
21 autoIncrementIncrement: 1
22 name: c
23 elementType: AT_MODIFY_COLUMN
0\ No newline at end of file24\ No newline at end of file
125
=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.sql'
--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.sql 1970-01-01 00:00:00 +0000
+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.sql 2013-04-11 19:44:45 +0000
@@ -0,0 +1,1 @@
1ALTER TABLE t1 ALTER COLUMN c SET GENERATED ALWAYS AS IDENTITY (START WITH 100)
0\ No newline at end of file2\ No newline at end of file
13
=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-7.expected'
--- src/test/resources/com/akiban/sql/parser/create-table-7.expected 2012-07-05 20:54:46 +0000
+++ src/test/resources/com/akiban/sql/parser/create-table-7.expected 2013-04-11 19:44:45 +0000
@@ -26,6 +26,8 @@
26 [1]: 26 [1]:
27 com.akiban.sql.parser.ColumnDefinitionNode@20c1f10e27 com.akiban.sql.parser.ColumnDefinitionNode@20c1f10e
28 type: INTEGER NOT NULL28 type: INTEGER NOT NULL
29 autoIncrementStart: 1
30 autoIncrementIncrement: 5
29 name: c131 name: c1
30 elementType: null32 elementType: null
31 default: 33 default:
3234
=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-sequence-1.expected'
--- src/test/resources/com/akiban/sql/parser/create-table-sequence-1.expected 2012-07-18 13:56:57 +0000
+++ src/test/resources/com/akiban/sql/parser/create-table-sequence-1.expected 2013-04-11 19:44:45 +0000
@@ -26,6 +26,8 @@
26 [1]: 26 [1]:
27 com.akiban.sql.parser.ColumnDefinitionNode@25fa1bb627 com.akiban.sql.parser.ColumnDefinitionNode@25fa1bb6
28 type: INTEGER NOT NULL28 type: INTEGER NOT NULL
29 autoIncrementStart: 1
30 autoIncrementIncrement: 1
29 name: c131 name: c1
30 elementType: null32 elementType: null
31 default: 33 default:
3234
=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-sequence-2.expected'
--- src/test/resources/com/akiban/sql/parser/create-table-sequence-2.expected 2012-07-18 13:56:57 +0000
+++ src/test/resources/com/akiban/sql/parser/create-table-sequence-2.expected 2013-04-11 19:44:45 +0000
@@ -26,5 +26,7 @@
26 [1]: 26 [1]:
27 com.akiban.sql.parser.ColumnDefinitionNode@3d9360e227 com.akiban.sql.parser.ColumnDefinitionNode@3d9360e2
28 type: INTEGER NOT NULL28 type: INTEGER NOT NULL
29 autoIncrementStart: 1
30 autoIncrementIncrement: 1
29 name: c131 name: c1
30 elementType: null32 elementType: null
31\ No newline at end of file33\ No newline at end of file
3234
=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-sequence-3.expected'
--- src/test/resources/com/akiban/sql/parser/create-table-sequence-3.expected 2012-07-18 13:56:57 +0000
+++ src/test/resources/com/akiban/sql/parser/create-table-sequence-3.expected 2013-04-11 19:44:45 +0000
@@ -26,5 +26,7 @@
26 [1]: 26 [1]:
27 com.akiban.sql.parser.ColumnDefinitionNode@38b5dac427 com.akiban.sql.parser.ColumnDefinitionNode@38b5dac4
28 type: INTEGER NOT NULL28 type: INTEGER NOT NULL
29 autoIncrementStart: 1
30 autoIncrementIncrement: 0
29 name: c131 name: c1
30 elementType: null32 elementType: null
31\ No newline at end of file33\ No newline at end of file

Subscribers

People subscribed via source and target branches