You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu> on 2021/06/14 04:30:10 UTC

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

From Cameron Samak <cs...@apache.org>:

Cameron Samak has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925 )


Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................

[ASTERIXDB-2912][SQL] Use modern JavaCC template

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
The default "classic" maintains compatibility with very old versions of
JavaCC.
TokenMgrException is now a checked Exception, not an Error.
Included jj changes avoid compilation issues (mostly unreachable
statements since productions are only allowed one return).

Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
---
M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
M asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
M asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
11 files changed, 68 insertions(+), 69 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/25/11925/1

diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
index c5eb69d..cb43ed4 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
@@ -157,7 +157,7 @@
             duration = (endTime - startTime) / 1000.00;
             out.println(HTML_STATEMENT_SEPARATOR);
             out.println("<PRE>Duration of all jobs: " + duration + " sec</PRE>");
-        } catch (AsterixException | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
+        } catch (AsterixException | org.apache.asterix.lang.sqlpp.parser.TokenMgrException pe) {
             GlobalConfig.ASTERIX_LOGGER.log(Level.INFO, pe.toString(), pe);
             ResultUtil.webUIParseExceptionHandler(out, pe, query);
         } catch (Exception e) {
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index a043050..d369744 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -304,7 +304,7 @@
                 executionState.setStatus(ResultStatus.SUCCESS, HttpResponseStatus.OK);
             }
             errorCount = 0;
-        } catch (Exception | org.apache.asterix.lang.sqlpp.parser.TokenMgrError e) {
+        } catch (Exception e) {
             handleExecuteStatementException(e, executionState, param);
             response.setStatus(executionState.getHttpStatus());
             requestFailed(e, responsePrinter);
@@ -452,7 +452,7 @@
 
     protected void handleExecuteStatementException(Throwable t, RequestExecutionState executionState,
             QueryServiceRequestParameters param) {
-        if (t instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrError || t instanceof AlgebricksException) {
+        if (t instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrException || t instanceof AlgebricksException) {
             if (LOGGER.isDebugEnabled()) {
                 LOGGER.debug("handleException: {}: {}", t.getMessage(), LogRedactionUtil.statement(param.toString()),
                         t);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
index 26aac63..170b1a5 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
@@ -102,7 +102,7 @@
                         compilationProvider, componentProvider, printer);
         try {
             translator.compileAndExecute(ccAppCtx.getHcc(), requestParams);
-        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
+        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrException pe) {
             // we trust that "our" exceptions are serializable and have a comprehensible error message
             GlobalConfig.ASTERIX_LOGGER.log(Level.WARN, pe.getMessage(), pe);
             responseMsg.setError(pe);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
index 29ee76d..4eb4b8d 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
@@ -177,7 +177,7 @@
             responseMsg.setStatementProperties(statementProperties);
             responseMsg.setExecutionPlans(translator.getExecutionPlans());
             responseMsg.setWarnings(warnings);
-        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
+        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrException pe) {
             // we trust that "our" exceptions are serializable and have a comprehensible error message
             GlobalConfig.ASTERIX_LOGGER.log(Level.WARN, pe.getMessage(), pe);
             responseMsg.setError(pe);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
index 6556b61..40b9c56 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
@@ -37,7 +37,7 @@
         Throwable rootCause = ResultUtil.getRootCause(t);
         String msg = rootCause.getMessage();
         if (!(rootCause instanceof AlgebricksException || rootCause instanceof HyracksException
-                || rootCause instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrError)) {
+                || rootCause instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrException)) {
             msg = rootCause.getClass().getSimpleName() + (msg == null ? "" : ": " + msg);
         }
         return new ExecutionError(1, msg);
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
index 1775fbb..76c78a88 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
@@ -18,13 +18,9 @@
  */
 package org.apache.asterix.lang.common.base;
 
-import java.io.Reader;
-
 public interface IParserFactory {
 
     IParser createParser(String query);
 
-    IParser createParser(Reader reader);
-
     String getLanguage();
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index ded91af..05dfe12 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -19,7 +19,6 @@
 
 package org.apache.asterix.lang.common.util;
 
-import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -366,7 +365,7 @@
             throw new CompilationException(ErrorCode.COMPILATION_INCOMPATIBLE_FUNCTION_LANGUAGE, sourceLoc,
                     function.getLanguage(), function.getSignature().toString(), parserFactory.getLanguage());
         }
-        IParser parser = parserFactory.createParser(new StringReader(function.getFunctionBody()));
+        IParser parser = parserFactory.createParser(function.getFunctionBody());
         try {
             FunctionDecl functionDecl =
                     parser.parseFunctionBody(function.getSignature(), function.getParameterNames(), true);
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
index 5b724f2..7fec33c 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
@@ -18,8 +18,6 @@
  */
 package org.apache.asterix.lang.sqlpp.parser;
 
-import java.io.Reader;
-
 import org.apache.asterix.lang.common.base.IParser;
 import org.apache.asterix.lang.common.base.IParserFactory;
 
@@ -30,12 +28,7 @@
 
     @Override
     public IParser createParser(String query) {
-        return new SQLPPParser(query);
-    }
-
-    @Override
-    public IParser createParser(Reader reader) {
-        return new SQLPPParser(reader);
+        return new SQLPPParser(new StringProvider(query));
     }
 
     @Override
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index c4c86f4..0fce612 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -20,6 +20,7 @@
   COMMON_TOKEN_ACTION = true;
   STATIC = false;
   TOKEN_EXTENDS = "org.apache.asterix.lang.sqlpp.parser.SqlppToken";
+  JAVA_TEMPLATE_TYPE = "modern";
 }
 
 PARSER_BEGIN(SQLPPParser)
@@ -29,14 +30,11 @@
 // For SQL++ ParserTokenManager
 import java.util.ArrayDeque;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -333,15 +331,8 @@
       }
     }
 
-    public SQLPPParser(String s) {
-        this(new StringReader(s));
-        super.setInput(s);
-    }
-
-    public static void main(String args[]) throws ParseException, TokenMgrError, IOException, FileNotFoundException, CompilationException {
-        File file = new File(args[0]);
-        Reader fis = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
-        SQLPPParser parser = new SQLPPParser(fis);
+    public static void main(String[] args) throws ParseException, TokenMgrException, IOException, CompilationException {
+        SQLPPParser parser = new SQLPPParser(Files.readString(Paths.get(args[0]), StandardCharsets.UTF_8));
         List<Statement> st = parser.parse();
         //st.accept(new SQLPPPrintVisitor(), 0);
     }
@@ -367,7 +358,7 @@
     }
 
     private static Expression parseExpression(String text) throws CompilationException {
-        return new SQLPPParser(text).parseExpression();
+        return new SQLPPParser(new StringProvider(text)).parseExpression();
     }
 
     @Override
@@ -390,7 +381,7 @@
     }
 
     private static List<String> parseParenthesizedIdentifierList(String text) throws CompilationException {
-        return new SQLPPParser(text).parseParenthesizedIdentifierList();
+        return new SQLPPParser(new StringProvider(text)).parseParenthesizedIdentifierList();
     }
 
     @Override
@@ -689,6 +680,7 @@
         throw pe;
       }
     }
+}}
 }
 
 PARSER_END(SQLPPParser)
@@ -952,15 +944,17 @@
   ( LOOKAHEAD(2) <WITH> <FILTER> <ON>  filterField = NestedField() )?
   ( <WITH> withRecord = RecordConstructor() )?
   {
+    DatasetDecl result;
     try {
       InternalDetailsDecl idd = new InternalDetailsDecl(primaryKeyFields.second, primaryKeyFields.first, autogenerated,
         filterField == null? null : filterField.first, filterField == null? null : filterField.second);
       stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, metaTypeExpr, hints,
         DatasetType.INTERNAL, idd, withRecord, ifNotExists);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -986,13 +980,15 @@
     ExternalDetailsDecl edd = new ExternalDetailsDecl();
     edd.setAdapter(adapterName);
     edd.setProperties(properties);
+    DatasetDecl result;
     try {
       stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, null, hints, DatasetType.EXTERNAL,
         edd, withRecord, ifNotExists);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1590,12 +1586,14 @@
   nameComponents = QualifiedName() ifNotExists = IfNotExists()
   <WITH> withRecord = RecordConstructor()
   {
+    CreateFeedStatement result;
     try {
       stmt = new CreateFeedStatement(nameComponents, withRecord, ifNotExists);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (AlgebricksException e) {
       throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1668,12 +1666,14 @@
     expr = RecordConstructor()
   )
   {
+    CreateFullTextFilterStatement result;
     try {
       stmt = new CreateFullTextFilterStatement(nameComponents.first, nameComponents.second.getValue(), ifNotExists, expr);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1691,12 +1691,14 @@
     expr = RecordConstructor()
   )
   {
+    CreateFullTextConfigStatement result;
     try {
       stmt = new CreateFullTextConfigStatement(nameComponents.first, nameComponents.second.getValue(), ifNotExists, expr);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1729,15 +1731,16 @@
 
 boolean IfNotExists() throws ParseException:
 {
+  boolean result = false;
 }
 {
   ( LOOKAHEAD(1) <IF> <NOT> <EXISTS>
     {
-      return true;
+      result = true;
     }
   )?
     {
-      return false;
+      return result;
     }
 }
 
@@ -2144,15 +2147,16 @@
 
 boolean IfExists() throws ParseException :
 {
+  boolean result = false;
 }
 {
   ( LOOKAHEAD(1) <IF> <EXISTS>
     {
-      return true;
+      result = true;
     }
   )?
     {
-      return false;
+      return result;
     }
 }
 
@@ -2272,10 +2276,10 @@
    | <IF> <LEFTPAREN> condition = Expression() <RIGHTPAREN>
      <THEN> ifbranch = UpdateClause()
      [LOOKAHEAD(1) <ELSE> elsebranch = UpdateClause()]
-     {
-       return new UpdateClause(target, value, is, ds, us, condition, ifbranch, elsebranch);
-     }
    )
+   {
+     return new UpdateClause(target, value, is, ds, us, condition, ifbranch, elsebranch);
+   }
 }
 
 Statement SetStatement() throws ParseException:
@@ -2768,18 +2772,18 @@
 
 String Identifier() throws ParseException:
 {
-  String lit = null;
+  String result;
 }
 {
   (<IDENTIFIER>
     {
-      return token.image;
+      result = token.image;
     }
-  | lit = QuotedString()
-    {
-      return lit;
-    }
+  | result = QuotedString()
   )
+  {
+    return result;
+  }
 }
 
 List<String> ParenthesizedIdentifierList() throws ParseException:
@@ -3993,15 +3997,17 @@
 {
   <IDENTIFIER>
   {
+    WindowExpression.FrameMode result;
     if (isToken(RANGE)) {
-      return WindowExpression.FrameMode.RANGE;
+      result = WindowExpression.FrameMode.RANGE;
     } else if (isToken(ROWS)) {
-      return WindowExpression.FrameMode.ROWS;
+      result = WindowExpression.FrameMode.ROWS;
     } else if (isToken(GROUPS)) {
-      return WindowExpression.FrameMode.GROUPS;
+      result = WindowExpression.FrameMode.GROUPS;
     } else {
       throw createUnexpectedTokenError();
     }
+    return result;
   }
 }
 
@@ -4038,6 +4044,7 @@
 WindowExpression.FrameExclusionKind WindowFrameExclusion() throws ParseException:
 {
   boolean current = false, no = false;
+  WindowExpression.FrameExclusionKind result;
 }
 {
   <IDENTIFIER>
@@ -4047,7 +4054,7 @@
   (
     <GROUP>
     {
-      return WindowExpression.FrameExclusionKind.GROUP;
+      result = WindowExpression.FrameExclusionKind.GROUP;
     }
     |
     (
@@ -4066,15 +4073,18 @@
       <IDENTIFIER>
       {
         if (current && isToken(ROW)) {
-          return WindowExpression.FrameExclusionKind.CURRENT_ROW;
+          result = WindowExpression.FrameExclusionKind.CURRENT_ROW;
         } else if (no && isToken(OTHERS)) {
-          return WindowExpression.FrameExclusionKind.NO_OTHERS;
+          result = WindowExpression.FrameExclusionKind.NO_OTHERS;
         } else {
           throw createUnexpectedTokenError();
         }
       }
     )
   )
+  {
+    return result;
+  }
 }
 
 Expression ParenthesizedExpression() throws ParseException:
@@ -4852,7 +4862,7 @@
          int errorColumn = input_stream.getEndColumn();
          String msg = "Lexical error at line " + errorLine + ", column " + errorColumn + ". Encountered \"" + token
              + "\" but state stack is empty.";
-         throw new TokenMgrError(msg, -1);
+         throw new TokenMgrException(msg, -1);
       }
     }
 
diff --git a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
index 8a1adb0..296d632 100644
--- a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
+++ b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.tools.datagen;
 
 import java.io.File;
+import java.nio.file.Path;
 
 import org.kohsuke.args4j.Argument;
 import org.kohsuke.args4j.CmdLineParser;
@@ -30,7 +31,7 @@
     public static class AdgClientConfig {
 
         @Argument(index = 0, required = true, metaVar = "ARG1", usage = "The file containing the annotated schema.")
-        private File schemaFile;
+        private Path schemaFile;
 
         @Argument(index = 1, required = true, metaVar = "ARG2", usage = "The output directory path.")
         private File outputDir;
diff --git a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
index aa86916..fb02243 100644
--- a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
+++ b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
@@ -21,9 +21,11 @@
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -922,23 +924,21 @@
 
     }
 
-    private final File schemaFile;
+    private final Path schemaFile;
     private final File outputDir;
     private Map<TypeSignature, IAType> typeMap;
     private Map<TypeSignature, TypeDataGen> typeAnnotMap;
     private DataGeneratorContext dgCtx;
     private final IParserFactory parserFactory = new SqlppParserFactory();
 
-    public AdmDataGen(File schemaFile, File outputDir) {
+    public AdmDataGen(Path schemaFile, File outputDir) {
         this.schemaFile = schemaFile;
         this.outputDir = outputDir;
     }
 
     public void init() throws IOException, ACIDException, AlgebricksException {
-        FileReader aql = new FileReader(schemaFile);
-        IParser parser = parserFactory.createParser(aql);
+        IParser parser = parserFactory.createParser(Files.readString(schemaFile, StandardCharsets.UTF_8));
         List<Statement> statements = parser.parse();
-        aql.close();
         // TODO: Need to fix how to use transactions here.
         MetadataTransactionContext mdTxnCtx = new MetadataTransactionContext(new TxnId(-1));
         ADGenDmlTranslator dmlt = new ADGenDmlTranslator(mdTxnCtx, statements);

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 1
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-MessageType: newchange

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Cameron Samak <cs...@apache.org>:

Cameron Samak has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925 )

Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................


Patch Set 3:

Going to fix ASTERIXDB-2915 first then come back to this (fix for that will make this easier).


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 3
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Cameron Samak <cs...@apache.org>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Mon, 14 Jun 2021 16:39:05 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
Gerrit-MessageType: comment

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Cameron Samak <cs...@apache.org>:

Cameron Samak has uploaded this change for review. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925 )


Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................

[ASTERIXDB-2912][SQL] Use modern JavaCC template

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
The default "classic" maintains compatibility with very old versions of
JavaCC.
TokenMgrException is now a checked Exception, not an Error.
Included jj changes avoid compilation issues (mostly unreachable
statements since productions are only allowed one return).

Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
---
M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
M asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
M asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
11 files changed, 68 insertions(+), 69 deletions(-)



  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/25/11925/1

diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
index c5eb69d..cb43ed4 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
@@ -157,7 +157,7 @@
             duration = (endTime - startTime) / 1000.00;
             out.println(HTML_STATEMENT_SEPARATOR);
             out.println("<PRE>Duration of all jobs: " + duration + " sec</PRE>");
-        } catch (AsterixException | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
+        } catch (AsterixException | org.apache.asterix.lang.sqlpp.parser.TokenMgrException pe) {
             GlobalConfig.ASTERIX_LOGGER.log(Level.INFO, pe.toString(), pe);
             ResultUtil.webUIParseExceptionHandler(out, pe, query);
         } catch (Exception e) {
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
index a043050..d369744 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
@@ -304,7 +304,7 @@
                 executionState.setStatus(ResultStatus.SUCCESS, HttpResponseStatus.OK);
             }
             errorCount = 0;
-        } catch (Exception | org.apache.asterix.lang.sqlpp.parser.TokenMgrError e) {
+        } catch (Exception e) {
             handleExecuteStatementException(e, executionState, param);
             response.setStatus(executionState.getHttpStatus());
             requestFailed(e, responsePrinter);
@@ -452,7 +452,7 @@
 
     protected void handleExecuteStatementException(Throwable t, RequestExecutionState executionState,
             QueryServiceRequestParameters param) {
-        if (t instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrError || t instanceof AlgebricksException) {
+        if (t instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrException || t instanceof AlgebricksException) {
             if (LOGGER.isDebugEnabled()) {
                 LOGGER.debug("handleException: {}: {}", t.getMessage(), LogRedactionUtil.statement(param.toString()),
                         t);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
index 26aac63..170b1a5 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
@@ -102,7 +102,7 @@
                         compilationProvider, componentProvider, printer);
         try {
             translator.compileAndExecute(ccAppCtx.getHcc(), requestParams);
-        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
+        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrException pe) {
             // we trust that "our" exceptions are serializable and have a comprehensible error message
             GlobalConfig.ASTERIX_LOGGER.log(Level.WARN, pe.getMessage(), pe);
             responseMsg.setError(pe);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
index 29ee76d..4eb4b8d 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
@@ -177,7 +177,7 @@
             responseMsg.setStatementProperties(statementProperties);
             responseMsg.setExecutionPlans(translator.getExecutionPlans());
             responseMsg.setWarnings(warnings);
-        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrError pe) {
+        } catch (AlgebricksException | HyracksException | org.apache.asterix.lang.sqlpp.parser.TokenMgrException pe) {
             // we trust that "our" exceptions are serializable and have a comprehensible error message
             GlobalConfig.ASTERIX_LOGGER.log(Level.WARN, pe.getMessage(), pe);
             responseMsg.setError(pe);
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
index 6556b61..40b9c56 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
@@ -37,7 +37,7 @@
         Throwable rootCause = ResultUtil.getRootCause(t);
         String msg = rootCause.getMessage();
         if (!(rootCause instanceof AlgebricksException || rootCause instanceof HyracksException
-                || rootCause instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrError)) {
+                || rootCause instanceof org.apache.asterix.lang.sqlpp.parser.TokenMgrException)) {
             msg = rootCause.getClass().getSimpleName() + (msg == null ? "" : ": " + msg);
         }
         return new ExecutionError(1, msg);
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
index 1775fbb..76c78a88 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
@@ -18,13 +18,9 @@
  */
 package org.apache.asterix.lang.common.base;
 
-import java.io.Reader;
-
 public interface IParserFactory {
 
     IParser createParser(String query);
 
-    IParser createParser(Reader reader);
-
     String getLanguage();
 }
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index ded91af..05dfe12 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -19,7 +19,6 @@
 
 package org.apache.asterix.lang.common.util;
 
-import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -366,7 +365,7 @@
             throw new CompilationException(ErrorCode.COMPILATION_INCOMPATIBLE_FUNCTION_LANGUAGE, sourceLoc,
                     function.getLanguage(), function.getSignature().toString(), parserFactory.getLanguage());
         }
-        IParser parser = parserFactory.createParser(new StringReader(function.getFunctionBody()));
+        IParser parser = parserFactory.createParser(function.getFunctionBody());
         try {
             FunctionDecl functionDecl =
                     parser.parseFunctionBody(function.getSignature(), function.getParameterNames(), true);
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
index 5b724f2..7fec33c 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
@@ -18,8 +18,6 @@
  */
 package org.apache.asterix.lang.sqlpp.parser;
 
-import java.io.Reader;
-
 import org.apache.asterix.lang.common.base.IParser;
 import org.apache.asterix.lang.common.base.IParserFactory;
 
@@ -30,12 +28,7 @@
 
     @Override
     public IParser createParser(String query) {
-        return new SQLPPParser(query);
-    }
-
-    @Override
-    public IParser createParser(Reader reader) {
-        return new SQLPPParser(reader);
+        return new SQLPPParser(new StringProvider(query));
     }
 
     @Override
diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
index c4c86f4..0fce612 100644
--- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
+++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
@@ -20,6 +20,7 @@
   COMMON_TOKEN_ACTION = true;
   STATIC = false;
   TOKEN_EXTENDS = "org.apache.asterix.lang.sqlpp.parser.SqlppToken";
+  JAVA_TEMPLATE_TYPE = "modern";
 }
 
 PARSER_BEGIN(SQLPPParser)
@@ -29,14 +30,11 @@
 // For SQL++ ParserTokenManager
 import java.util.ArrayDeque;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -333,15 +331,8 @@
       }
     }
 
-    public SQLPPParser(String s) {
-        this(new StringReader(s));
-        super.setInput(s);
-    }
-
-    public static void main(String args[]) throws ParseException, TokenMgrError, IOException, FileNotFoundException, CompilationException {
-        File file = new File(args[0]);
-        Reader fis = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
-        SQLPPParser parser = new SQLPPParser(fis);
+    public static void main(String[] args) throws ParseException, TokenMgrException, IOException, CompilationException {
+        SQLPPParser parser = new SQLPPParser(Files.readString(Paths.get(args[0]), StandardCharsets.UTF_8));
         List<Statement> st = parser.parse();
         //st.accept(new SQLPPPrintVisitor(), 0);
     }
@@ -367,7 +358,7 @@
     }
 
     private static Expression parseExpression(String text) throws CompilationException {
-        return new SQLPPParser(text).parseExpression();
+        return new SQLPPParser(new StringProvider(text)).parseExpression();
     }
 
     @Override
@@ -390,7 +381,7 @@
     }
 
     private static List<String> parseParenthesizedIdentifierList(String text) throws CompilationException {
-        return new SQLPPParser(text).parseParenthesizedIdentifierList();
+        return new SQLPPParser(new StringProvider(text)).parseParenthesizedIdentifierList();
     }
 
     @Override
@@ -689,6 +680,7 @@
         throw pe;
       }
     }
+}}
 }
 
 PARSER_END(SQLPPParser)
@@ -952,15 +944,17 @@
   ( LOOKAHEAD(2) <WITH> <FILTER> <ON>  filterField = NestedField() )?
   ( <WITH> withRecord = RecordConstructor() )?
   {
+    DatasetDecl result;
     try {
       InternalDetailsDecl idd = new InternalDetailsDecl(primaryKeyFields.second, primaryKeyFields.first, autogenerated,
         filterField == null? null : filterField.first, filterField == null? null : filterField.second);
       stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, metaTypeExpr, hints,
         DatasetType.INTERNAL, idd, withRecord, ifNotExists);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -986,13 +980,15 @@
     ExternalDetailsDecl edd = new ExternalDetailsDecl();
     edd.setAdapter(adapterName);
     edd.setProperties(properties);
+    DatasetDecl result;
     try {
       stmt = new DatasetDecl(nameComponents.first, nameComponents.second, typeExpr, null, hints, DatasetType.EXTERNAL,
         edd, withRecord, ifNotExists);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1590,12 +1586,14 @@
   nameComponents = QualifiedName() ifNotExists = IfNotExists()
   <WITH> withRecord = RecordConstructor()
   {
+    CreateFeedStatement result;
     try {
       stmt = new CreateFeedStatement(nameComponents, withRecord, ifNotExists);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (AlgebricksException e) {
       throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1668,12 +1666,14 @@
     expr = RecordConstructor()
   )
   {
+    CreateFullTextFilterStatement result;
     try {
       stmt = new CreateFullTextFilterStatement(nameComponents.first, nameComponents.second.getValue(), ifNotExists, expr);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1691,12 +1691,14 @@
     expr = RecordConstructor()
   )
   {
+    CreateFullTextConfigStatement result;
     try {
       stmt = new CreateFullTextConfigStatement(nameComponents.first, nameComponents.second.getValue(), ifNotExists, expr);
-      return addSourceLocation(stmt, startStmtToken);
+      result = addSourceLocation(stmt, startStmtToken);
     } catch (CompilationException e) {
        throw new SqlppParseException(getSourceLocation(startStmtToken), e.getMessage());
     }
+    return result;
   }
 }
 
@@ -1729,15 +1731,16 @@
 
 boolean IfNotExists() throws ParseException:
 {
+  boolean result = false;
 }
 {
   ( LOOKAHEAD(1) <IF> <NOT> <EXISTS>
     {
-      return true;
+      result = true;
     }
   )?
     {
-      return false;
+      return result;
     }
 }
 
@@ -2144,15 +2147,16 @@
 
 boolean IfExists() throws ParseException :
 {
+  boolean result = false;
 }
 {
   ( LOOKAHEAD(1) <IF> <EXISTS>
     {
-      return true;
+      result = true;
     }
   )?
     {
-      return false;
+      return result;
     }
 }
 
@@ -2272,10 +2276,10 @@
    | <IF> <LEFTPAREN> condition = Expression() <RIGHTPAREN>
      <THEN> ifbranch = UpdateClause()
      [LOOKAHEAD(1) <ELSE> elsebranch = UpdateClause()]
-     {
-       return new UpdateClause(target, value, is, ds, us, condition, ifbranch, elsebranch);
-     }
    )
+   {
+     return new UpdateClause(target, value, is, ds, us, condition, ifbranch, elsebranch);
+   }
 }
 
 Statement SetStatement() throws ParseException:
@@ -2768,18 +2772,18 @@
 
 String Identifier() throws ParseException:
 {
-  String lit = null;
+  String result;
 }
 {
   (<IDENTIFIER>
     {
-      return token.image;
+      result = token.image;
     }
-  | lit = QuotedString()
-    {
-      return lit;
-    }
+  | result = QuotedString()
   )
+  {
+    return result;
+  }
 }
 
 List<String> ParenthesizedIdentifierList() throws ParseException:
@@ -3993,15 +3997,17 @@
 {
   <IDENTIFIER>
   {
+    WindowExpression.FrameMode result;
     if (isToken(RANGE)) {
-      return WindowExpression.FrameMode.RANGE;
+      result = WindowExpression.FrameMode.RANGE;
     } else if (isToken(ROWS)) {
-      return WindowExpression.FrameMode.ROWS;
+      result = WindowExpression.FrameMode.ROWS;
     } else if (isToken(GROUPS)) {
-      return WindowExpression.FrameMode.GROUPS;
+      result = WindowExpression.FrameMode.GROUPS;
     } else {
       throw createUnexpectedTokenError();
     }
+    return result;
   }
 }
 
@@ -4038,6 +4044,7 @@
 WindowExpression.FrameExclusionKind WindowFrameExclusion() throws ParseException:
 {
   boolean current = false, no = false;
+  WindowExpression.FrameExclusionKind result;
 }
 {
   <IDENTIFIER>
@@ -4047,7 +4054,7 @@
   (
     <GROUP>
     {
-      return WindowExpression.FrameExclusionKind.GROUP;
+      result = WindowExpression.FrameExclusionKind.GROUP;
     }
     |
     (
@@ -4066,15 +4073,18 @@
       <IDENTIFIER>
       {
         if (current && isToken(ROW)) {
-          return WindowExpression.FrameExclusionKind.CURRENT_ROW;
+          result = WindowExpression.FrameExclusionKind.CURRENT_ROW;
         } else if (no && isToken(OTHERS)) {
-          return WindowExpression.FrameExclusionKind.NO_OTHERS;
+          result = WindowExpression.FrameExclusionKind.NO_OTHERS;
         } else {
           throw createUnexpectedTokenError();
         }
       }
     )
   )
+  {
+    return result;
+  }
 }
 
 Expression ParenthesizedExpression() throws ParseException:
@@ -4852,7 +4862,7 @@
          int errorColumn = input_stream.getEndColumn();
          String msg = "Lexical error at line " + errorLine + ", column " + errorColumn + ". Encountered \"" + token
              + "\" but state stack is empty.";
-         throw new TokenMgrError(msg, -1);
+         throw new TokenMgrException(msg, -1);
       }
     }
 
diff --git a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
index 8a1adb0..296d632 100644
--- a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
+++ b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
@@ -19,6 +19,7 @@
 package org.apache.asterix.tools.datagen;
 
 import java.io.File;
+import java.nio.file.Path;
 
 import org.kohsuke.args4j.Argument;
 import org.kohsuke.args4j.CmdLineParser;
@@ -30,7 +31,7 @@
     public static class AdgClientConfig {
 
         @Argument(index = 0, required = true, metaVar = "ARG1", usage = "The file containing the annotated schema.")
-        private File schemaFile;
+        private Path schemaFile;
 
         @Argument(index = 1, required = true, metaVar = "ARG2", usage = "The output directory path.")
         private File outputDir;
diff --git a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
index aa86916..fb02243 100644
--- a/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
+++ b/asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
@@ -21,9 +21,11 @@
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.PrintStream;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -922,23 +924,21 @@
 
     }
 
-    private final File schemaFile;
+    private final Path schemaFile;
     private final File outputDir;
     private Map<TypeSignature, IAType> typeMap;
     private Map<TypeSignature, TypeDataGen> typeAnnotMap;
     private DataGeneratorContext dgCtx;
     private final IParserFactory parserFactory = new SqlppParserFactory();
 
-    public AdmDataGen(File schemaFile, File outputDir) {
+    public AdmDataGen(Path schemaFile, File outputDir) {
         this.schemaFile = schemaFile;
         this.outputDir = outputDir;
     }
 
     public void init() throws IOException, ACIDException, AlgebricksException {
-        FileReader aql = new FileReader(schemaFile);
-        IParser parser = parserFactory.createParser(aql);
+        IParser parser = parserFactory.createParser(Files.readString(schemaFile, StandardCharsets.UTF_8));
         List<Statement> statements = parser.parse();
-        aql.close();
         // TODO: Need to fix how to use transactions here.
         MetadataTransactionContext mdTxnCtx = new MetadataTransactionContext(new TxnId(-1));
         ADGenDmlTranslator dmlt = new ADGenDmlTranslator(mdTxnCtx, statements);

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 1
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-MessageType: newchange

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Jenkins <je...@fulliautomatix.ics.uci.edu>:

Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925 )

Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................


Patch Set 1: Integration-Tests-1

Integration Tests Failed

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/12086/ : FAILURE


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 1
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Mon, 14 Jun 2021 04:34:51 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
Anon. E. Moose #1000171 has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925 )

Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................


Patch Set 1: Contrib-2

Analytics Compatibility Compilation Failed
https://cbjenkins.page.link/YWutvjHpPjDG5ZmW6 : UNSTABLE


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 1
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-CC: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Mon, 14 Jun 2021 04:33:26 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Cameron Samak <cs...@apache.org>:

Hello Anon. E. Moose #1000171, Jenkins, 

I'd like you to reexamine a change. Please visit

    https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925

to look at the new patch set (#2).

Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................

[ASTERIXDB-2912][SQL] Use modern JavaCC template

- user model changes: no
- storage format changes: no
- interface changes: yes

Details:
The default "classic" maintains compatibility with very old versions of
JavaCC.
TokenMgrException is now a checked Exception, not an Error.
Included jj changes avoid compilation issues (mostly unreachable
statements since productions are only allowed one return).

Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
---
M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/ApiServlet.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/http/server/QueryServiceServlet.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AbstractInternalRequestMessage.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/ExecuteStatementRequestMessage.java
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/result/ExecutionError.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IParserFactory.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/parser/SqlppParserFactory.java
M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj
M asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdgClientDriver.java
M asterixdb/asterix-tools/src/test/java/org/apache/asterix/tools/datagen/AdmDataGen.java
11 files changed, 68 insertions(+), 69 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/25/11925/2
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 2
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-MessageType: newpatchset

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
From Jenkins <je...@fulliautomatix.ics.uci.edu>:

Jenkins has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925 )

Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................


Patch Set 2: Integration-Tests-1

Integration Tests Failed

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/12087/ : FAILURE


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 2
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Mon, 14 Jun 2021 04:41:54 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment

Change in asterixdb[master]: [ASTERIXDB-2912][SQL] Use modern JavaCC template

Posted by AsterixDB Code Review <do...@asterix-gerrit.ics.uci.edu>.
Anon. E. Moose #1000171 has posted comments on this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925 )

Change subject: [ASTERIXDB-2912][SQL] Use modern JavaCC template
......................................................................


Patch Set 2: Contrib-2

Analytics Compatibility Compilation Failed
https://cbjenkins.page.link/7Hhkoiu87C1k8vGL8 : UNSTABLE


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/11925
To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: Icd942df4adc2699f4787d4348acb9b24584039a6
Gerrit-Change-Number: 11925
Gerrit-PatchSet: 2
Gerrit-Owner: Cameron Samak <cs...@apache.org>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Comment-Date: Mon, 14 Jun 2021 04:40:27 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment