Merge lp:~mmcm/akiban-sql-parser/drop-alias-if-exists into lp:~akiban-technologies/akiban-sql-parser/trunk

Proposed by Mike McMahon
Status: Merged
Approved by: Vy Nguyen
Approved revision: 273
Merged at revision: 273
Proposed branch: lp:~mmcm/akiban-sql-parser/drop-alias-if-exists
Merge into: lp:~akiban-technologies/akiban-sql-parser/trunk
Diff against target: 184 lines (+42/-26)
7 files modified
src/main/java/com/akiban/sql/parser/DropAliasNode.java (+20/-1)
src/main/java/com/akiban/sql/parser/DropTableNode.java (+2/-2)
src/main/javacc/SQLGrammar.jj (+12/-10)
src/test/resources/com/akiban/sql/parser/drop-procedure-1.expected (+2/-1)
src/test/resources/com/akiban/sql/parser/drop-table-1.expected (+2/-4)
src/test/resources/com/akiban/sql/parser/drop-table-2.expected (+2/-4)
src/test/resources/com/akiban/sql/parser/drop-table-3.expected (+2/-4)
To merge this branch: bzr merge lp:~mmcm/akiban-sql-parser/drop-alias-if-exists
Reviewer Review Type Date Requested Status
Vy Nguyen (community) Approve
Review via email: mp+136779@code.launchpad.net

Description of the change

Parse IF EXISTS for DROP PROCEDURE.

To post a comment you must log in.
Revision history for this message
Vy Nguyen (oontvoo) wrote :

straight-forward addition.

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/DropAliasNode.java'
2--- src/main/java/com/akiban/sql/parser/DropAliasNode.java 2012-11-07 17:49:31 +0000
3+++ src/main/java/com/akiban/sql/parser/DropAliasNode.java 2012-11-28 20:32:20 +0000
4@@ -51,6 +51,7 @@
5 public class DropAliasNode extends DDLStatementNode
6 {
7 private AliasInfo.Type aliasType;
8+ private ExistenceCheck existenceCheck;
9
10 /**
11 * Initializer for a DropAliasNode
12@@ -60,10 +61,11 @@
13 *
14 * @exception StandardException
15 */
16- public void init(Object dropAliasName, Object aliasType) throws StandardException {
17+ public void init(Object dropAliasName, Object aliasType, Object existenceCheck) throws StandardException {
18 TableName dropItem = (TableName)dropAliasName;
19 initAndCheck(dropItem);
20 this.aliasType = (AliasInfo.Type)aliasType;
21+ this.existenceCheck = (ExistenceCheck)existenceCheck;
22 }
23
24 /**
25@@ -74,12 +76,29 @@
26
27 DropAliasNode other = (DropAliasNode)node;
28 this.aliasType = other.aliasType;
29+ this.existenceCheck = other.existenceCheck;
30 }
31
32 public AliasInfo.Type getAliasType() {
33 return aliasType;
34 }
35
36+ public ExistenceCheck getExistenceCheck()
37+ {
38+ return existenceCheck;
39+ }
40+
41+ /**
42+ * Convert this object to a String. See comments in QueryTreeNode.java
43+ * for how this should be done for tree printing.
44+ *
45+ * @return This object as a String
46+ */
47+ public String toString() {
48+ return super.toString() +
49+ "existenceCheck: " + existenceCheck + "\n";
50+ }
51+
52 public String statementToString() {
53 return "DROP " + aliasTypeName(aliasType);
54 }
55
56=== modified file 'src/main/java/com/akiban/sql/parser/DropTableNode.java'
57--- src/main/java/com/akiban/sql/parser/DropTableNode.java 2012-11-07 17:49:31 +0000
58+++ src/main/java/com/akiban/sql/parser/DropTableNode.java 2012-11-28 20:32:20 +0000
59@@ -96,8 +96,8 @@
60 */
61 public String toString() {
62 return super.toString() +
63- "dropBehavior: " + "\n" + dropBehavior + "\n"
64- + "existenceChec: " + "\n" + existenceCheck + "\n";
65+ "dropBehavior: " + dropBehavior + "\n"
66+ + "existenceCheck: " + existenceCheck + "\n";
67 }
68
69 public String statementToString() {
70
71=== modified file 'src/main/javacc/SQLGrammar.jj'
72--- src/main/javacc/SQLGrammar.jj 2012-11-09 19:27:35 +0000
73+++ src/main/javacc/SQLGrammar.jj 2012-11-28 20:32:20 +0000
74@@ -1426,11 +1426,12 @@
75 }
76
77 /** Create a node for the drop alias/procedure call. */
78- StatementNode dropAliasNode(Object aliasName, AliasInfo.Type type) throws StandardException {
79+ StatementNode dropAliasNode(TableName aliasName, AliasInfo.Type type, ExistenceCheck cond) throws StandardException {
80
81 StatementNode stmt = (StatementNode)nodeFactory.getNode(NodeTypes.DROP_ALIAS_NODE,
82 aliasName,
83 type,
84+ cond,
85 parserContext);
86
87 return stmt;
88@@ -13530,27 +13531,28 @@
89 StatementNode
90 dropAliasStatement() throws StandardException :
91 {
92- Object aliasName;
93+ TableName aliasName;
94+ ExistenceCheck cond;
95 }
96 {
97- <PROCEDURE> aliasName = qualifiedName()
98+ <PROCEDURE> cond = dropCondition() aliasName = qualifiedName()
99 {
100- return dropAliasNode(aliasName, AliasInfo.Type.PROCEDURE);
101+ return dropAliasNode(aliasName, AliasInfo.Type.PROCEDURE, cond);
102 }
103 |
104- <FUNCTION> aliasName = qualifiedName()
105+ <FUNCTION> cond = dropCondition() aliasName = qualifiedName()
106 {
107- return dropAliasNode(aliasName, AliasInfo.Type.FUNCTION);
108+ return dropAliasNode(aliasName, AliasInfo.Type.FUNCTION, cond);
109 }
110 |
111- <SYNONYM> aliasName = qualifiedName()
112+ <SYNONYM> cond = dropCondition() aliasName = qualifiedName()
113 {
114- return dropAliasNode(aliasName, AliasInfo.Type.SYNONYM);
115+ return dropAliasNode(aliasName, AliasInfo.Type.SYNONYM, cond);
116 }
117 |
118- <TYPE> aliasName = qualifiedName() <RESTRICT>
119+ <TYPE> cond = dropCondition() aliasName = qualifiedName() <RESTRICT>
120 {
121- return dropAliasNode(aliasName, AliasInfo.Type.UDT);
122+ return dropAliasNode(aliasName, AliasInfo.Type.UDT, cond);
123 }
124 }
125
126
127=== modified file 'src/test/resources/com/akiban/sql/parser/drop-procedure-1.expected'
128--- src/test/resources/com/akiban/sql/parser/drop-procedure-1.expected 2012-09-29 19:00:44 +0000
129+++ src/test/resources/com/akiban/sql/parser/drop-procedure-1.expected 2012-11-28 20:32:20 +0000
130@@ -1,3 +1,4 @@
131 com.akiban.sql.parser.DropAliasNode@476020ed
132 name: test.foo_bar
133-statementType: DROP PROCEDURE
134\ No newline at end of file
135+statementType: DROP PROCEDURE
136+existenceCheck: NO_CONDITION
137
138=== modified file 'src/test/resources/com/akiban/sql/parser/drop-table-1.expected'
139--- src/test/resources/com/akiban/sql/parser/drop-table-1.expected 2012-07-05 22:01:12 +0000
140+++ src/test/resources/com/akiban/sql/parser/drop-table-1.expected 2012-11-28 20:32:20 +0000
141@@ -1,7 +1,5 @@
142 com.akiban.sql.parser.DropTableNode@2d04faf8
143 name: test
144 statementType: DROP TABLE
145-dropBehavior:
146-2
147-existenceChec:
148-NO_CONDITION
149\ No newline at end of file
150+dropBehavior: 2
151+existenceCheck: NO_CONDITION
152\ No newline at end of file
153
154=== modified file 'src/test/resources/com/akiban/sql/parser/drop-table-2.expected'
155--- src/test/resources/com/akiban/sql/parser/drop-table-2.expected 2012-07-05 22:01:12 +0000
156+++ src/test/resources/com/akiban/sql/parser/drop-table-2.expected 2012-11-28 20:32:20 +0000
157@@ -1,7 +1,5 @@
158 com.akiban.sql.parser.DropTableNode@b23b25c
159 name: test.t1
160 statementType: DROP TABLE
161-dropBehavior:
162-2
163-existenceChec:
164-NO_CONDITION
165\ No newline at end of file
166+dropBehavior: 2
167+existenceCheck: NO_CONDITION
168\ No newline at end of file
169
170=== modified file 'src/test/resources/com/akiban/sql/parser/drop-table-3.expected'
171--- src/test/resources/com/akiban/sql/parser/drop-table-3.expected 2012-07-05 22:01:12 +0000
172+++ src/test/resources/com/akiban/sql/parser/drop-table-3.expected 2012-11-28 20:32:20 +0000
173@@ -1,7 +1,5 @@
174 com.akiban.sql.parser.DropTableNode@2d04faf8
175 name: test
176 statementType: DROP TABLE
177-dropBehavior:
178-2
179-existenceChec:
180-IF_EXISTS
181\ No newline at end of file
182+dropBehavior: 2
183+existenceCheck: IF_EXISTS
184\ No newline at end of file

Subscribers

People subscribed via source and target branches