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
1=== modified file 'src/main/java/com/akiban/sql/parser/ColumnDefinitionNode.java'
2--- src/main/java/com/akiban/sql/parser/ColumnDefinitionNode.java 2012-11-07 17:49:31 +0000
3+++ src/main/java/com/akiban/sql/parser/ColumnDefinitionNode.java 2013-04-11 19:44:45 +0000
4@@ -178,6 +178,10 @@
5
6 public String toString() {
7 return "type: " + getType() + "\n" +
8+ (!isAutoincrementColumn() ? "" : (
9+ "autoIncrementStart: " + getAutoincrementStart() + "\n" +
10+ "autoIncrementIncrement: " + getAutoincrementIncrement() + "\n"
11+ )) +
12 super.toString();
13 }
14
15
16=== modified file 'src/main/javacc/SQLGrammar.jj'
17--- src/main/javacc/SQLGrammar.jj 2013-04-10 23:54:23 +0000
18+++ src/main/javacc/SQLGrammar.jj 2013-04-11 19:44:45 +0000
19@@ -13459,7 +13459,9 @@
20 }
21 |
22 LOOKAHEAD( { getToken(1).kind == WITH || getToken(1).kind == _DEFAULT ||
23- (getToken(1).kind == SET && getToken(2).kind == _DEFAULT) } )
24+ getToken(1).kind == GENERATED ||
25+ (getToken(1).kind == SET && (getToken(2).kind == _DEFAULT ||
26+ getToken(2).kind == GENERATED)) } )
27 [<SET>] defaultNode = defaultClause(autoIncrementInfo, columnName)
28 {
29 return wrapAlterColumnDefaultValue(defaultNode,
30
31=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.expected'
32--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.expected 1970-01-01 00:00:00 +0000
33+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.expected 2013-04-11 19:44:45 +0000
34@@ -0,0 +1,21 @@
35+com.akiban.sql.parser.AlterTableNode@1e4b2d10
36+name: t1
37+statementType: ALTER TABLE
38+objectName: t1
39+compressTable: false
40+sequential: false
41+truncateTable: false
42+purge: false
43+defragment: false
44+truncateEndOfTable: false
45+updateStatistics: false
46+updateStatisticsAll: false
47+indexNameForUpdateStatistics: null
48+tableElementList:
49+ com.akiban.sql.parser.TableElementList@597b84f9
50+
51+ [0]:
52+ com.akiban.sql.parser.ModifyColumnNode@3c572554
53+ type: DOUBLE
54+ name: c
55+ elementType: AT_MODIFY_COLUMN
56\ No newline at end of file
57
58=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.sql'
59--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.sql 1970-01-01 00:00:00 +0000
60+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-1.sql 2013-04-11 19:44:45 +0000
61@@ -0,0 +1,1 @@
62+ALTER TABLE t1 ALTER COLUMN c SET DATA TYPE double
63\ No newline at end of file
64
65=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.expected'
66--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.expected 1970-01-01 00:00:00 +0000
67+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.expected 2013-04-11 19:44:45 +0000
68@@ -0,0 +1,21 @@
69+com.akiban.sql.parser.AlterTableNode@7d53ccbe
70+name: t1
71+statementType: ALTER TABLE
72+objectName: t1
73+compressTable: false
74+sequential: false
75+truncateTable: false
76+purge: false
77+defragment: false
78+truncateEndOfTable: false
79+updateStatistics: false
80+updateStatisticsAll: false
81+indexNameForUpdateStatistics: null
82+tableElementList:
83+ com.akiban.sql.parser.TableElementList@8a70e3a
84+
85+ [0]:
86+ com.akiban.sql.parser.ModifyColumnNode@f970646
87+ type: null
88+ name: c
89+ elementType: AT_MODIFY_COLUMN
90\ No newline at end of file
91
92=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.sql'
93--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.sql 1970-01-01 00:00:00 +0000
94+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-2.sql 2013-04-11 19:44:45 +0000
95@@ -0,0 +1,1 @@
96+ALTER TABLE t1 ALTER COLUMN c NOT NULL
97\ No newline at end of file
98
99=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.expected'
100--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.expected 1970-01-01 00:00:00 +0000
101+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.expected 2013-04-11 19:44:45 +0000
102@@ -0,0 +1,30 @@
103+com.akiban.sql.parser.AlterTableNode@4dc7f150
104+name: t1
105+statementType: ALTER TABLE
106+objectName: t1
107+compressTable: false
108+sequential: false
109+truncateTable: false
110+purge: false
111+defragment: false
112+truncateEndOfTable: false
113+updateStatistics: false
114+updateStatisticsAll: false
115+indexNameForUpdateStatistics: null
116+tableElementList:
117+ com.akiban.sql.parser.TableElementList@1b3e315
118+
119+ [0]:
120+ com.akiban.sql.parser.ModifyColumnNode@49017892
121+ type: null
122+ name: c
123+ elementType: AT_MODIFY_COLUMN
124+ default:
125+ com.akiban.sql.parser.DefaultNode@7f92deaf
126+ columnName: null
127+ defaultText: 3
128+ type: null
129+ defaultTree:
130+ com.akiban.sql.parser.NumericConstantNode@359f498
131+ value: 3
132+ type: INTEGER NOT NULL
133\ No newline at end of file
134
135=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.sql'
136--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.sql 1970-01-01 00:00:00 +0000
137+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-3.sql 2013-04-11 19:44:45 +0000
138@@ -0,0 +1,1 @@
139+ALTER TABLE t1 ALTER COLUMN c SET DEFAULT 3
140\ No newline at end of file
141
142=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.expected'
143--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.expected 1970-01-01 00:00:00 +0000
144+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.expected 2013-04-11 19:44:45 +0000
145@@ -0,0 +1,23 @@
146+com.akiban.sql.parser.AlterTableNode@9a8d9b
147+name: t1
148+statementType: ALTER TABLE
149+objectName: t1
150+compressTable: false
151+sequential: false
152+truncateTable: false
153+purge: false
154+defragment: false
155+truncateEndOfTable: false
156+updateStatistics: false
157+updateStatisticsAll: false
158+indexNameForUpdateStatistics: null
159+tableElementList:
160+ com.akiban.sql.parser.TableElementList@22c6bb6c
161+
162+ [0]:
163+ com.akiban.sql.parser.ModifyColumnNode@253ac14a
164+ type: null
165+ autoIncrementStart: 0
166+ autoIncrementIncrement: 2
167+ name: c
168+ elementType: AT_MODIFY_COLUMN
169\ No newline at end of file
170
171=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.sql'
172--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.sql 1970-01-01 00:00:00 +0000
173+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-4.sql 2013-04-11 19:44:45 +0000
174@@ -0,0 +1,1 @@
175+ALTER TABLE t1 ALTER COLUMN c SET INCREMENT BY 2
176\ No newline at end of file
177
178=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.expected'
179--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.expected 1970-01-01 00:00:00 +0000
180+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.expected 2013-04-11 19:44:45 +0000
181@@ -0,0 +1,23 @@
182+com.akiban.sql.parser.AlterTableNode@14dc6233
183+name: t1
184+statementType: ALTER TABLE
185+objectName: t1
186+compressTable: false
187+sequential: false
188+truncateTable: false
189+purge: false
190+defragment: false
191+truncateEndOfTable: false
192+updateStatistics: false
193+updateStatisticsAll: false
194+indexNameForUpdateStatistics: null
195+tableElementList:
196+ com.akiban.sql.parser.TableElementList@10b30cf8
197+
198+ [0]:
199+ com.akiban.sql.parser.ModifyColumnNode@5b187658
200+ type: null
201+ autoIncrementStart: 100
202+ autoIncrementIncrement: 0
203+ name: c
204+ elementType: AT_MODIFY_COLUMN
205\ No newline at end of file
206
207=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.sql'
208--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.sql 1970-01-01 00:00:00 +0000
209+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-5.sql 2013-04-11 19:44:45 +0000
210@@ -0,0 +1,1 @@
211+ALTER TABLE t1 ALTER COLUMN c RESTART WITH 100
212\ No newline at end of file
213
214=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.expected'
215--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.expected 1970-01-01 00:00:00 +0000
216+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.expected 2013-04-11 19:44:45 +0000
217@@ -0,0 +1,23 @@
218+com.akiban.sql.parser.AlterTableNode@33c36633
219+name: t1
220+statementType: ALTER TABLE
221+objectName: t1
222+compressTable: false
223+sequential: false
224+truncateTable: false
225+purge: false
226+defragment: false
227+truncateEndOfTable: false
228+updateStatistics: false
229+updateStatisticsAll: false
230+indexNameForUpdateStatistics: null
231+tableElementList:
232+ com.akiban.sql.parser.TableElementList@616ab8d1
233+
234+ [0]:
235+ com.akiban.sql.parser.ModifyColumnNode@258bd34e
236+ type: null
237+ autoIncrementStart: 100
238+ autoIncrementIncrement: 1
239+ name: c
240+ elementType: AT_MODIFY_COLUMN
241\ No newline at end of file
242
243=== added file 'src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.sql'
244--- src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.sql 1970-01-01 00:00:00 +0000
245+++ src/test/resources/com/akiban/sql/parser/alter-table-alter-column-6.sql 2013-04-11 19:44:45 +0000
246@@ -0,0 +1,1 @@
247+ALTER TABLE t1 ALTER COLUMN c SET GENERATED ALWAYS AS IDENTITY (START WITH 100)
248\ No newline at end of file
249
250=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-7.expected'
251--- src/test/resources/com/akiban/sql/parser/create-table-7.expected 2012-07-05 20:54:46 +0000
252+++ src/test/resources/com/akiban/sql/parser/create-table-7.expected 2013-04-11 19:44:45 +0000
253@@ -26,6 +26,8 @@
254 [1]:
255 com.akiban.sql.parser.ColumnDefinitionNode@20c1f10e
256 type: INTEGER NOT NULL
257+ autoIncrementStart: 1
258+ autoIncrementIncrement: 5
259 name: c1
260 elementType: null
261 default:
262
263=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-sequence-1.expected'
264--- src/test/resources/com/akiban/sql/parser/create-table-sequence-1.expected 2012-07-18 13:56:57 +0000
265+++ src/test/resources/com/akiban/sql/parser/create-table-sequence-1.expected 2013-04-11 19:44:45 +0000
266@@ -26,6 +26,8 @@
267 [1]:
268 com.akiban.sql.parser.ColumnDefinitionNode@25fa1bb6
269 type: INTEGER NOT NULL
270+ autoIncrementStart: 1
271+ autoIncrementIncrement: 1
272 name: c1
273 elementType: null
274 default:
275
276=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-sequence-2.expected'
277--- src/test/resources/com/akiban/sql/parser/create-table-sequence-2.expected 2012-07-18 13:56:57 +0000
278+++ src/test/resources/com/akiban/sql/parser/create-table-sequence-2.expected 2013-04-11 19:44:45 +0000
279@@ -26,5 +26,7 @@
280 [1]:
281 com.akiban.sql.parser.ColumnDefinitionNode@3d9360e2
282 type: INTEGER NOT NULL
283+ autoIncrementStart: 1
284+ autoIncrementIncrement: 1
285 name: c1
286 elementType: null
287\ No newline at end of file
288
289=== modified file 'src/test/resources/com/akiban/sql/parser/create-table-sequence-3.expected'
290--- src/test/resources/com/akiban/sql/parser/create-table-sequence-3.expected 2012-07-18 13:56:57 +0000
291+++ src/test/resources/com/akiban/sql/parser/create-table-sequence-3.expected 2013-04-11 19:44:45 +0000
292@@ -26,5 +26,7 @@
293 [1]:
294 com.akiban.sql.parser.ColumnDefinitionNode@38b5dac4
295 type: INTEGER NOT NULL
296+ autoIncrementStart: 1
297+ autoIncrementIncrement: 0
298 name: c1
299 elementType: null
300\ No newline at end of file

Subscribers

People subscribed via source and target branches