[teiid-commits] teiid SVN: r2914 - in trunk/engine/src/main: javacc/org/teiid/query/parser and 1 other directory.
teiid-commits at lists.jboss.org
teiid-commits at lists.jboss.org
Thu Feb 17 10:12:44 EST 2011
Author: shawkins
Date: 2011-02-17 10:12:44 -0500 (Thu, 17 Feb 2011)
New Revision: 2914
Modified:
trunk/engine/src/main/java/org/teiid/query/parser/QueryParser.java
trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj
Log:
TEIIDDES-806 adding a parsing hook for all designer commands
Modified: trunk/engine/src/main/java/org/teiid/query/parser/QueryParser.java
===================================================================
--- trunk/engine/src/main/java/org/teiid/query/parser/QueryParser.java 2011-02-16 21:32:50 UTC (rev 2913)
+++ trunk/engine/src/main/java/org/teiid/query/parser/QueryParser.java 2011-02-17 15:12:44 UTC (rev 2914)
@@ -114,14 +114,26 @@
* @throws QueryParserException if parsing fails
* @throws IllegalArgumentException if sql is null
*/
- public Command parseCommand(String sql, ParseInfo parseInfo) throws QueryParserException {
+ public Command parseCommand(String sql, ParseInfo parseInfo) throws QueryParserException {
+ return parseCommand(sql, parseInfo, false);
+ }
+
+ public Command parseDesignerCommand(String sql) throws QueryParserException {
+ return parseCommand(sql, new ParseInfo(), true);
+ }
+
+ public Command parseCommand(String sql, ParseInfo parseInfo, boolean designerCommands) throws QueryParserException {
if(sql == null || sql.length() == 0) {
throw new QueryParserException(QueryPlugin.Util.getString("QueryParser.emptysql")); //$NON-NLS-1$
}
Command result = null;
try{
- result = getSqlParser(sql).command(parseInfo);
+ if (designerCommands) {
+ result = getSqlParser(sql).designerCommand(parseInfo);
+ } else {
+ result = getSqlParser(sql).command(parseInfo);
+ }
result.setCacheHint(SQLParserUtil.getQueryCacheOption(sql));
} catch(ParseException pe) {
if(sql.startsWith(XML_OPEN_BRACKET) || sql.startsWith(XQUERY_DECLARE)) {
Modified: trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj
===================================================================
--- trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj 2011-02-16 21:32:50 UTC (rev 2913)
+++ trunk/engine/src/main/javacc/org/teiid/query/parser/SQLParser.jj 2011-02-17 15:12:44 UTC (rev 2914)
@@ -454,6 +454,21 @@
}
}
+Command designerCommand(ParseInfo info) :
+{
+ Command command = null;
+}
+{
+ (LOOKAHEAD(2) command = updateProcedure(info) |
+ command = userCommand(info)
+ )
+ [<SEMICOLON>]
+ <EOF>
+ {
+ return command;
+ }
+}
+
Command updateProcedure(ParseInfo info) :
{
Command command = null;
More information about the teiid-commits
mailing list