Hello Anon. E. Moose #1000171, Jenkins, I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/2707 to look at the new patch set (#4). Change subject: [ASTERIXDB-2401][SQLPP] Support parameterized queries ...................................................................... [ASTERIXDB-2401][SQLPP] Support parameterized queries - user model changes: yes - storage format changes: no - interface changes: yes Details: - Support statement parameters: named ($name) and positional ($1 or ?) - Enhance query service API to accept these parameters in the request - Remove [?] index accessor from SQL++ grammar because it conflicts with positional parameters ([0] can be used instead) - Add testcases for parameterized queries Change-Id: Ia612f731cd2370fccd54c4796bd9787fbea16766 --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/base/ILangExpressionToPlanTranslatorFactory.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/AqlCompilationProvider.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/ILangCompilationProvider.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/compiler/provider/SqlppCompilationProvider.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/AqlExpressionToPlanTranslatorFactory.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IRequestParameters.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/IStatementExecutor.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/LangExpressionToPlanTranslator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslatorFactory.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/common/APIFramework.java 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/NCQueryServiceServlet.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/api/http/server/RestApiServlet.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/api/java/AsterixJavaClient.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/translator/QueryTranslator.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/RequestParameters.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/utils/FeedOperations.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/CancellationTestExecutor.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestHelper.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/jsonplan/JsonLogicalPlanTest.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/optimizer/OptimizerTest.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/sqlpp/ParserTestExecutor.java A asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-01.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-02.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/queries/statement-params/statement-params-03.sqlpp A asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-01.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-02.plan A asterixdb/asterix-app/src/test/resources/optimizerts/results/statement-params/statement-params-03.plan M asterixdb/asterix-app/src/test/resources/parserts/queries_sqlpp/ANYInFieldAccessor.sqlpp M asterixdb/asterix-app/src/test/resources/parserts/results_parser_sqlpp/ANYInFieldAccessor.ast M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/custord/customer_q_06/customer_q_06.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/custord/customer_q_07/customer_q_07.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/custord/join_q_03/join_q_03.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/custord/order_q_05/order_q_05.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/custord/order_q_06/order_q_06.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/employee/q_02/q_02.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/list/any-collection-member_01/any-collection-member_01.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/mixed_01/mixed_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/mixed_01/mixed_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/named_01/named_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/named_01/named_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/named_02/named_02.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/named_03/named_03.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_01/positional_01.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_01/positional_01.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_02/positional_02.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_02/positional_02.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_02/positional_02.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_03/positional_02.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_03/positional_02.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_03/positional_02.3.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_04/positional_04.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_04/positional_04.2.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/statement-params/positional_05/positional_05.1.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/mixed_01/mixed_01.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/mixed_01/mixed_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/named_01/named_01.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/named_01/named_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/named_03/named_03.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/positional_01/positional_01.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/positional_01/positional_01.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/positional_02/positional_02.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/positional_02/positional_02.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/positional_02/positional_02.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/statement-params/positional_05/postitional_05.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_06/customer_q_06.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/customer_q_07/customer_q_07.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/join_q_03/join_q_03.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/order_q_05/order_q_05.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/custord/order_q_06/order_q_06.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/employee/q_02/q_02.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/list/any-collection-member_01/any-collection-member_01.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/exceptions/ErrorCode.java M asterixdb/asterix-common/src/main/resources/asx_errormsg/en.properties M asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md M asterixdb/asterix-doc/src/site/markdown/api.md M asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/parser/JSONDataParser.java M asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlQueryRewriter.java M asterixdb/asterix-lang-aql/src/main/java/org/apache/asterix/lang/aql/rewrites/AqlStatementRewriter.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IQueryRewriter.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IReturningStatement.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/IStatementRewriter.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/parser/ScopeChecker.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/InsertStatement.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/statement/Query.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/visitor/AbstractInlineUdfsVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppFunctionBodyRewriter.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppQueryRewriter.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/SqlppStatementRewriter.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/VariableCheckAndRewriteVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/ExpressionToVariableUtil.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppVariableUtil.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/DeepCopyVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/base/AbstractSqlppExpressionScopingVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/pointables/cast/ACastVisitor.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/typecomputer/base/TypeCastUtils.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/GetItemDescriptor.java M asterixdb/asterix-test-framework/src/main/resources/Catalog.xsd 105 files changed, 1,685 insertions(+), 273 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/07/2707/4 -- To view, visit https://asterix-gerrit.ics.uci.edu/2707 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: Ia612f731cd2370fccd54c4796bd9787fbea16766 Gerrit-PatchSet: 4 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Dmitry Lychagin <dmitry.lycha...@couchbase.com> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Dmitry Lychagin <dmitry.lycha...@couchbase.com> Gerrit-Reviewer: Jenkins <jenk...@fulliautomatix.ics.uci.edu> Gerrit-Reviewer: Till Westmann <ti...@apache.org>