You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mh...@apache.org on 2019/04/09 19:35:39 UTC

[asterixdb] 05/05: Merge commit '153b2ce970' from 'stabilization-f69489'

This is an automated email from the ASF dual-hosted git repository.

mhubail pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git

commit 48a72752708891ff6a2bbea0cbe76bebb3788bab
Merge: 0728004 153b2ce
Author: Michael Blow <mb...@apache.org>
AuthorDate: Mon Apr 8 11:53:20 2019 -0400

    Merge commit '153b2ce970' from 'stabilization-f69489'
    
    Change-Id: I5b0d2756d839b0bc2e7c59723306921e698a7630

 .../asterix/app/bootstrap/TestNodeController.java  |  2 +-
 .../PersistentLocalResourceRepositoryTest.java     | 30 +++++++------
 .../group-by/sugar-09/sugar-09.1.ddl.sqlpp         | 50 ++++++++++++++++++++++
 .../group-by/sugar-09/sugar-09.2.update.sqlpp      | 26 +++++++++++
 .../group-by/sugar-09/sugar-09.3.query.sqlpp       | 27 ++++++++++++
 .../results/group-by/sugar-09/sugar-09.3.adm       |  1 +
 .../test/resources/runtimets/testsuite_sqlpp.xml   |  5 +++
 .../ExternalIndexBulkLoadOperatorDescriptor.java   |  8 +++-
 .../ExternalIndexBulkLoadOperatorNodePushable.java |  7 +--
 .../ExternalIndexBulkModifyOperatorDescriptor.java | 10 +++--
 ...xternalIndexBulkModifyOperatorNodePushable.java |  6 ++-
 .../asterix/lang/sqlpp/util/SqlppVariableUtil.java | 11 +++++
 .../lang/sqlpp/visitor/FreeVariableVisitor.java    |  8 +++-
 .../metadata/declared/MetadataProvider.java        | 10 ++---
 .../utils/SecondaryIndexOperationsHelper.java      |  8 ++--
 .../LSMIndexBulkLoadOperatorDescriptor.java        | 10 ++++-
 .../LSMIndexBulkLoadOperatorNodePushable.java      |  8 ++--
 .../LSMSecondaryUpsertOperatorNodePushable.java    | 16 ++++---
 .../src/main/opt/local/bin/start-sample-cluster.sh |  2 +-
 .../PersistentLocalResourceRepository.java         |  8 ++--
 .../IndexBulkLoadOperatorNodePushable.java         | 22 ++++++++--
 .../TreeIndexBulkLoadOperatorDescriptor.java       | 13 +++++-
 22 files changed, 232 insertions(+), 56 deletions(-)

diff --cc asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
index 567b739,4fcf9f8..07da3f9
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite_sqlpp.xml
@@@ -4820,12 -3170,11 +4820,17 @@@
        </compilation-unit>
      </test-case>
      <test-case FilePath="group-by">
 +      <compilation-unit name="sugar-08-negative">
 +        <output-dir compare="Text">core-01</output-dir>
 +        <expected-error>ASX1103: Illegal use of identifier: x</expected-error>
 +      </compilation-unit>
 +    </test-case>
 +    <test-case FilePath="group-by">
+       <compilation-unit name="sugar-09">
+         <output-dir compare="Text">sugar-09</output-dir>
+       </compilation-unit>
+     </test-case>
+     <test-case FilePath="group-by">
        <compilation-unit name="null">
          <output-dir compare="Text">null</output-dir>
        </compilation-unit>
diff --cc asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppVariableUtil.java
index a186cba,28c9b73..3fc5683
--- a/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppVariableUtil.java
+++ b/asterixdb/asterix-lang-sqlpp/src/main/java/org/apache/asterix/lang/sqlpp/util/SqlppVariableUtil.java
@@@ -34,8 -29,9 +34,10 @@@ import org.apache.asterix.lang.common.b
  import org.apache.asterix.lang.common.clause.GroupbyClause;
  import org.apache.asterix.lang.common.clause.LetClause;
  import org.apache.asterix.lang.common.expression.GbyVariableExpressionPair;
+ import org.apache.asterix.lang.common.expression.QuantifiedExpression;
  import org.apache.asterix.lang.common.expression.VariableExpr;
 +import org.apache.asterix.lang.common.struct.Identifier;
+ import org.apache.asterix.lang.common.struct.QuantifiedPair;
  import org.apache.asterix.lang.common.struct.VarIdentifier;
  import org.apache.asterix.lang.sqlpp.clause.AbstractBinaryCorrelateClause;
  import org.apache.asterix.lang.sqlpp.clause.FromClause;
@@@ -192,18 -169,12 +194,27 @@@ public class SqlppVariableUtil 
          return bindingVars;
      }
  
+     public static List<VariableExpr> getBindingVariables(QuantifiedExpression qe) {
+         List<QuantifiedPair> quantifiedList = qe.getQuantifiedList();
+         List<VariableExpr> bindingVars = new ArrayList<>(quantifiedList.size());
+         for (QuantifiedPair qp : quantifiedList) {
+             bindingVars.add(qp.getVarExpr());
+         }
+         return bindingVars;
+     }
++
 +    public static Map<Expression, Identifier> createFieldVariableMap(List<Pair<Expression, Identifier>> fieldList) {
 +        Map<Expression, Identifier> fieldVars = new HashMap<>();
 +        for (Pair<Expression, Identifier> p : fieldList) {
 +            fieldVars.put(p.first, p.second);
 +        }
 +        return fieldVars;
 +    }
 +
 +    public static void addToFieldVariableList(VariableExpr varExpr, List<Pair<Expression, Identifier>> outFieldList) {
 +        VarIdentifier var = varExpr.getVar();
 +        VariableExpr newVarExpr = new VariableExpr(var);
 +        newVarExpr.setSourceLocation(varExpr.getSourceLocation());
 +        outFieldList.add(new Pair<>(newVarExpr, toUserDefinedVariableName(var)));
 +    }
  }
diff --cc asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryIndexOperationsHelper.java
index aaea111,efee1db..318814c
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryIndexOperationsHelper.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/utils/SecondaryIndexOperationsHelper.java
@@@ -356,13 -357,14 +356,13 @@@ public abstract class SecondaryIndexOpe
      }
  
      protected LSMIndexBulkLoadOperatorDescriptor createTreeIndexBulkLoadOp(JobSpecification spec,
 -            int[] fieldPermutation, IIndexDataflowHelperFactory dataflowHelperFactory, float fillFactor)
 -            throws AlgebricksException {
 +            int[] fieldPermutation, IIndexDataflowHelperFactory dataflowHelperFactory, float fillFactor) {
          IndexDataflowHelperFactory primaryIndexDataflowHelperFactory = new IndexDataflowHelperFactory(
                  metadataProvider.getStorageComponentProvider().getStorageManager(), primaryFileSplitProvider);
- 
+         // when an index is being created (not loaded) the filtration is introduced in the pipeline -> no tuple filter
          LSMIndexBulkLoadOperatorDescriptor treeIndexBulkLoadOp = new LSMIndexBulkLoadOperatorDescriptor(spec,
                  secondaryRecDesc, fieldPermutation, fillFactor, false, numElementsHint, false, dataflowHelperFactory,
-                 primaryIndexDataflowHelperFactory, BulkLoadUsage.CREATE_INDEX, dataset.getDatasetId());
+                 primaryIndexDataflowHelperFactory, BulkLoadUsage.CREATE_INDEX, dataset.getDatasetId(), null);
          treeIndexBulkLoadOp.setSourceLocation(sourceLoc);
          AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, treeIndexBulkLoadOp,
                  secondaryPartitionConstraint);
@@@ -370,10 -372,11 +370,10 @@@
      }
  
      protected TreeIndexBulkLoadOperatorDescriptor createExternalIndexBulkLoadOp(JobSpecification spec,
 -            int[] fieldPermutation, IIndexDataflowHelperFactory dataflowHelperFactory, float fillFactor)
 -            throws AlgebricksException {
 +            int[] fieldPermutation, IIndexDataflowHelperFactory dataflowHelperFactory, float fillFactor) {
          ExternalIndexBulkLoadOperatorDescriptor treeIndexBulkLoadOp = new ExternalIndexBulkLoadOperatorDescriptor(spec,
                  secondaryRecDesc, fieldPermutation, fillFactor, false, numElementsHint, false, dataflowHelperFactory,
-                 ExternalDatasetsRegistry.INSTANCE.getAndLockDatasetVersion(dataset, metadataProvider));
+                 ExternalDatasetsRegistry.INSTANCE.getAndLockDatasetVersion(dataset, metadataProvider), null);
          treeIndexBulkLoadOp.setSourceLocation(sourceLoc);
          AlgebricksPartitionConstraintHelper.setPartitionConstraintInJobSpec(spec, treeIndexBulkLoadOp,
                  secondaryPartitionConstraint);