You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2020/06/23 18:53:13 UTC

[asterixdb] 05/05: Merge branch 'gerrit/mad-hatter'

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

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

commit 6a8dafa814c3b654df789dfe9fbb780989003482
Merge: 60b27fc 6c239e7
Author: Michael Blow <mb...@apache.org>
AuthorDate: Mon Jun 22 10:38:42 2020 -0400

    Merge branch 'gerrit/mad-hatter'
    
    Change-Id: I5cd06cc3cd69068faecced6a2b1cc558eecd0784

 .../SqlppExpressionToPlanTranslator.java           | 24 +++++++++----------
 .../apache/asterix/translator/TypeTranslator.java  | 20 +++++++++-------
 .../apache/asterix/app/active/RecoveryTask.java    |  6 ++---
 .../asterix/app/translator/QueryTranslator.java    | 14 ++++++-----
 .../create-dataset-inline-type-2.5.ddl.sqlpp       | 14 +++++++----
 .../ASTERIXDB-2750_unnest_join.1.query.sqlpp       | 10 ++++----
 .../ASTERIXDB-2750_unnest_join.2.query.sqlpp       | 11 +++++----
 .../ASTERIXDB-2750_unnest_join.1.adm               |  1 +
 .../ASTERIXDB-2750_unnest_join.2.adm               |  1 +
 .../test/resources/runtimets/testsuite_sqlpp.xml   |  6 +++++
 .../asterix-lang-sqlpp/src/main/javacc/SQLPP.jj    |  6 ++---
 hyracks-fullstack/hyracks/hyracks-util/pom.xml     |  4 ++++
 .../java/org/apache/hyracks/util/IRetryPolicy.java |  2 +-
 .../org/apache/hyracks/util/ThrowingConsumer.java  | 19 +++++++++++++++
 ...{IRetryPolicy.java => ThrowingIntConsumer.java} | 28 ++++++++++++++++------
 15 files changed, 110 insertions(+), 56 deletions(-)

diff --cc asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java
index aa00fb3,cb6515b..6e02fc2
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java
@@@ -28,7 -29,8 +28,9 @@@ import java.util.Map
  
  import org.apache.asterix.common.annotations.IRecordFieldDataGen;
  import org.apache.asterix.common.annotations.RecordDataGenAnnotation;
+ import org.apache.asterix.common.exceptions.CompilationException;
+ import org.apache.asterix.common.exceptions.ErrorCode;
 +import org.apache.asterix.common.metadata.DataverseName;
  import org.apache.asterix.lang.common.expression.OrderedListTypeDefinition;
  import org.apache.asterix.lang.common.expression.RecordTypeDefinition;
  import org.apache.asterix.lang.common.expression.RecordTypeDefinition.RecordKind;
@@@ -51,7 -52,7 +53,8 @@@ import org.apache.asterix.om.types.Abst
  import org.apache.asterix.om.types.IAType;
  import org.apache.asterix.om.types.TypeSignature;
  import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 +import org.apache.hyracks.algebricks.common.utils.Pair;
+ import org.apache.hyracks.api.exceptions.SourceLocation;
  
  public class TypeTranslator {
  
@@@ -72,12 -70,12 +75,12 @@@
          Map<String, Map<ARecordType, List<Integer>>> incompleteFieldTypes = new HashMap<>();
          Map<TypeSignature, List<AbstractCollectionType>> incompleteItemTypes = new HashMap<>();
          Map<TypeSignature, List<TypeSignature>> incompleteTopLevelTypeReferences = new HashMap<>();
 -        firstPass(typeExpr, typeName, typeMap, incompleteFieldTypes, incompleteItemTypes,
 +        firstPass(typeDataverse, typeName, typeExpr, outTypeMap, incompleteFieldTypes, incompleteItemTypes,
-                 incompleteTopLevelTypeReferences, defaultDataverse);
+                 incompleteTopLevelTypeReferences, typeDataverse);
 -        secondPass(mdTxnCtx, typeMap, incompleteFieldTypes, incompleteItemTypes, incompleteTopLevelTypeReferences,
 +        secondPass(mdTxnCtx, outTypeMap, incompleteFieldTypes, incompleteItemTypes, incompleteTopLevelTypeReferences,
-                 typeDataverse);
+                 typeDataverse, typeExpr.getSourceLocation());
  
 -        for (IAType type : typeMap.values()) {
 +        for (IAType type : outTypeMap.values()) {
              if (type.getTypeTag().isDerivedType()) {
                  ((AbstractComplexType) type).generateNestedDerivedTypeNames();
              }
@@@ -136,15 -137,15 +140,15 @@@
      private static void secondPass(MetadataTransactionContext mdTxnCtx, Map<TypeSignature, IAType> typeMap,
              Map<String, Map<ARecordType, List<Integer>>> incompleteFieldTypes,
              Map<TypeSignature, List<AbstractCollectionType>> incompleteItemTypes,
-             Map<TypeSignature, List<TypeSignature>> incompleteTopLevelTypeReferences, DataverseName typeDataverse)
-             throws AlgebricksException {
 -            Map<TypeSignature, List<TypeSignature>> incompleteTopLevelTypeReferences, String typeDataverse,
++            Map<TypeSignature, List<TypeSignature>> incompleteTopLevelTypeReferences, DataverseName typeDataverse,
+             SourceLocation sourceLoc) throws AlgebricksException {
          // solve remaining top level references
          for (TypeSignature typeSignature : incompleteTopLevelTypeReferences.keySet()) {
              IAType t;
 -            Datatype dt = MetadataManager.INSTANCE.getDatatype(mdTxnCtx, typeSignature.getNamespace(),
 +            Datatype dt = MetadataManager.INSTANCE.getDatatype(mdTxnCtx, typeSignature.getDataverseName(),
                      typeSignature.getName());
              if (dt == null) {
-                 throw new AlgebricksException("Could not resolve type " + typeSignature);
+                 throw new CompilationException(ErrorCode.UNKNOWN_TYPE, sourceLoc, typeSignature.getName());
              } else {
                  t = dt.getDatatype();
              }
@@@ -185,10 -186,10 +189,10 @@@
              IAType t;
              Datatype dt;
              if (MetadataManager.INSTANCE != null) {
 -                dt = MetadataManager.INSTANCE.getDatatype(mdTxnCtx, typeSignature.getNamespace(),
 +                dt = MetadataManager.INSTANCE.getDatatype(mdTxnCtx, typeSignature.getDataverseName(),
                          typeSignature.getName());
                  if (dt == null) {
-                     throw new AlgebricksException("Could not resolve type " + typeSignature);
+                     throw new CompilationException(ErrorCode.UNKNOWN_TYPE, sourceLoc, typeSignature.getName());
                  }
                  t = dt.getDatatype();
              } else {
diff --cc asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
index c0a719b,f6536ac..a5fef11
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/translator/QueryTranslator.java
@@@ -694,11 -653,10 +695,11 @@@ public class QueryTranslator extends Ab
              IAType itemType;
              switch (itemTypeExpr.getTypeKind()) {
                  case TYPEREFERENCE:
-                     Datatype itemTypeEntity = metadataProvider.findTypeEntity(itemTypeDataverseName, itemTypeName);
+                     itemTypeEntity = metadataProvider.findTypeEntity(itemTypeDataverseName, itemTypeName);
                      if (itemTypeEntity == null || itemTypeEntity.getIsAnonymous()) {
                          // anonymous types cannot be referred from CREATE DATASET
 -                        throw new AsterixException(ErrorCode.UNKNOWN_TYPE, sourceLoc, itemTypeFullyQualifiedName);
 +                        throw new AsterixException(ErrorCode.UNKNOWN_TYPE, sourceLoc,
 +                                DatasetUtil.getFullyQualifiedDisplayName(itemTypeDataverseName, itemTypeName));
                      }
                      itemType = itemTypeEntity.getDatatype();
                      validateDatasetItemType(dsType, itemType, false, sourceLoc);