Dmitry Lychagin has uploaded a new change for review. https://asterix-gerrit.ics.uci.edu/2394
Change subject: [ASTERIXDB-2287][SQL] Support SELECT variable.* in SQL++ ...................................................................... [ASTERIXDB-2287][SQL] Support SELECT variable.* in SQL++ - user model changes: yes - storage format changes: no - interface changes: no Details: - Support SELECT variable.* in SQL++ - Include variables defined by LET clauses in the output record created by SELECT * - Add object_concat() function - Add tests for these new features - Fail testcase if its source directory is missing - Fix testcases that did not run previously because their source directories were incorrectly specified Change-Id: I058dc0f45072a1398f6431e0c73ce680c4d8cdc7 --- M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/optimizer/rules/ConstantFoldingRule.java M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/SqlppExpressionToPlanTranslator.java M asterixdb/asterix-app/src/test/java/org/apache/asterix/test/common/TestExecutor.java M asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/ObjectsQueries.xml M asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/get-object-field-value/tiny-social-example/tiny-social-example.4.query.aql M asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/object-merge/tiny-social-example/tiny-social-example.3.update.aql M asterixdb/asterix-app/src/test/resources/runtimets/queries/objects/object-remove-fields/tiny-social-example/tiny-social-example.3.update.aql R asterixdb/asterix-app/src/test/resources/runtimets/queries/open-index-enforced/error-checking/object-type-collision/object-type-collision.1.ddl.aql M asterixdb/asterix-app/src/test/resources/runtimets/queries/temporal/TemporalQueries.xml R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index/validations/keys-same-as-pk-but-different-order/keys-same-as-pk-but-different-order.1.ddl.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index/validations/keys-same-as-pk-in-same-order/keys-same-as-pk-in-same-order.1.ddl.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/index/validations/repetitive-keys/repetitive-keys.1.ddl.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/nested-open-index/index-selection/inverted-index-ngram-edit-distance-word-tokens/inverted-index-ngram-edit-distance-word-tokens.2.update.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/ObjectsQueries.xml M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.4.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/objects/object_concat/object_concat.1.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/from/from.4.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/group_by/group_by.4.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/mixed/mixed.4.query.sqlpp A asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/var_star/var_star.1.ddl.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/var_star/var_star.2.update.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/var_star/var_star.3.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/var_star/var_star.4.query.sqlpp C asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/select-star/var_star_2/var_star_2.1.query.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_orderby_5/union_orderby_5.1.ddl.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_orderby_5/union_orderby_5.2.update.sqlpp R asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/union/union_orderby_5/union_orderby_5.3.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/closed-nullable-fields_issue1616/closed-nullable-fields_issue1616.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/documentation-example/documentation-example.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.4.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.5.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.6.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.7.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.8.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.9.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.4.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.5.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.6.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.7.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.8.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.9.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.4.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.5.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.6.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.7.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.8.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.9.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/object-add-fields/tiny-social-example/tiny-social-example.4.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/object-merge/tiny-social-example/tiny-social-example.4.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/objects/object-remove-fields/tiny-social-example/tiny-social-example.4.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/objects/object_concat/object_concat.1.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/select-star/from/from.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/select-star/group_by/group_by.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/select-star/mixed/mixed.2.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/select-star/var_star/var_star.3.adm A asterixdb/asterix-app/src/test/resources/runtimets/results/select-star/var_star/var_star.4.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/agg_max/agg_max.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/results/temporal/agg_min/agg_min.1.adm M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.10.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.11.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.12.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.4.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.5.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.6.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.7.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.8.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/access-nested-fields/access-nested-fields.9.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/field-access-on-open-field/field-access-on-open-field.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-closed/highly-nested-open.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-mixed/highly-nested-mixed.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/highly-nested-open/highly-nested-open.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-field-value/tiny-social-example/tiny-social-example.4.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.4.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.5.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.6.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.7.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.8.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-no-complex-types/tiny-social-example-no-complex-types.9.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.4.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.5.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.6.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.7.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.8.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-lists/tiny-social-example-only-lists.9.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.4.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.5.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.6.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.7.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.8.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/get-object-fields/tiny-social-example-only-records/tiny-social-example-only-records.9.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-closed-fieldname-conflict_issue173/open-closed-fieldname-conflict_issue173.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/results_parser_sqlpp/objects/open-open-fieldname-conflict_issue173/open-open-fieldname-conflict_issue173.3.ast M asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml M asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp_parser.xml M asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/expression/FieldBinding.java M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/CommonFunctionMapUtil.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/clause/Projection.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/GenerateColumnNameVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/InlineColumnAliasVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/rewrites/visitor/SqlppInlineUdfsVisitor.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/SqlppAstPrintVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppCloneAndSubstituteVariablesVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/visitor/SqlppFormatPrintVisitor.java M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj M asterixdb/asterix-om/src/main/java/org/apache/asterix/builders/RecordBuilder.java M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/functions/BuiltinFunctions.java A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordConcatDescriptor.java A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordConcatEvalFactory.java A asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordConcatStrictDescriptor.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionCollection.java M asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/functions/FunctionTypeInferers.java M hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/string/UTF8StringUtil.java 116 files changed, 1,371 insertions(+), 809 deletions(-) git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/94/2394/1 -- To view, visit https://asterix-gerrit.ics.uci.edu/2394 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I058dc0f45072a1398f6431e0c73ce680c4d8cdc7 Gerrit-PatchSet: 1 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Dmitry Lychagin <dmitry.lycha...@couchbase.com>