[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