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);