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

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


The following commit(s) were added to refs/heads/master by this push:
     new 90f03a57ff [NO ISSUE][OM] Move BuiltinTypeMap to asterix-om module
90f03a57ff is described below

commit 90f03a57ff9ce89d72cf6e6ebe7d371fe26c57e2
Author: Wail Alkowaileet <[email protected]>
AuthorDate: Thu Jul 27 10:50:54 2023 -0700

    [NO ISSUE][OM] Move BuiltinTypeMap to asterix-om module
    
    - user model changes: no
    - storage format changes: no
    - interface changes: no
    
    Details:
    Move BuiltinTypeMap from asterix-metadata to asterix-om
    for more visibility among other modules located lower in
    the dependency tree.
    
    Change-Id: Ie071e83b3972cd0e4bf78a5083ee9c7bbf1950dd
    Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17658
    Integration-Tests: Jenkins <[email protected]>
    Reviewed-by: Hussain Towaileb <[email protected]>
    Tested-by: Hussain Towaileb <[email protected]>
---
 .../apache/asterix/translator/TypeTranslator.java  |  2 +-
 .../asterix/translator/util/ValidateUtil.java      | 62 ++++++++--------------
 .../asterix/app/translator/QueryTranslator.java    |  2 +-
 .../asterix/lang/common/util/FunctionUtil.java     |  2 +-
 .../metadata/bootstrap/MetadataBootstrap.java      |  2 +-
 .../apache/asterix/metadata/entities/Datatype.java | 16 ++++++
 .../DatasetTupleTranslator.java                    |  2 +-
 .../DatatypeTupleTranslator.java                   | 13 +++--
 .../FunctionTupleTranslator.java                   |  2 +-
 .../IndexTupleTranslator.java                      |  7 ++-
 .../functions/ExternalFunctionCompilerUtil.java    |  2 +-
 .../apache/asterix/om/types}/BuiltinTypeMap.java   | 21 +-------
 12 files changed, 56 insertions(+), 77 deletions(-)

diff --git 
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
index c54cdc1ce1..f84a3b7df5 100644
--- 
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
@@ -40,7 +40,6 @@ import 
org.apache.asterix.lang.common.expression.UnorderedListTypeDefinition;
 import org.apache.asterix.lang.common.struct.Identifier;
 import org.apache.asterix.metadata.MetadataManager;
 import org.apache.asterix.metadata.MetadataTransactionContext;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Datatype;
 import org.apache.asterix.metadata.utils.MetadataConstants;
 import org.apache.asterix.metadata.utils.TypeUtil;
@@ -50,6 +49,7 @@ import org.apache.asterix.om.types.AUnionType;
 import org.apache.asterix.om.types.AUnorderedListType;
 import org.apache.asterix.om.types.AbstractCollectionType;
 import org.apache.asterix.om.types.AbstractComplexType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.types.TypeSignature;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
diff --git 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
index 04db82e424..967f99f594 100644
--- 
a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
+++ 
b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/util/ValidateUtil.java
@@ -29,12 +29,12 @@ import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.lang.common.expression.TypeExpression;
 import org.apache.asterix.lang.common.expression.TypeReferenceExpression;
 import org.apache.asterix.lang.common.statement.CreateViewStatement;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Index;
 import org.apache.asterix.metadata.utils.KeyFieldTypeUtil;
 import org.apache.asterix.om.typecomputer.impl.TypeComputeUtils;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.utils.RecordUtil;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -55,21 +55,15 @@ public class ValidateUtil {
     /**
      * Validates the field that will be used as filter for the components of 
an LSM index.
      *
-     * @param recordType
-     *            the record type
-     * @param metaType
-     *            the meta record type
-     * @param filterSourceIndicator
-     *            indicates where the filter attribute comes from, 0 for 
record, 1 for meta record.
-     *            since this method is called only when a filter field 
presents, filterSourceIndicator will not be null
-     *
-     * @param filterField
-     *            the full name of the field
+     * @param recordType            the record type
+     * @param metaType              the meta record type
+     * @param filterSourceIndicator indicates where the filter attribute comes 
from, 0 for record, 1 for meta record.
+     *                              since this method is called only when a 
filter field presents, filterSourceIndicator will not be null
+     * @param filterField           the full name of the field
      * @param sourceLoc
-     * @throws AlgebricksException
-     *             if field is not found in record.
-     *             if field type can't be a filter type.
-     *             if field type is nullable.
+     * @throws AlgebricksException if field is not found in record.
+     *                             if field type can't be a filter type.
+     *                             if field type is nullable.
      */
     public static void validateFilterField(ARecordType recordType, ARecordType 
metaType, Integer filterSourceIndicator,
             List<String> filterField, SourceLocation sourceLoc) throws 
AlgebricksException {
@@ -107,24 +101,18 @@ public class ValidateUtil {
     /**
      * Validates the partitioning expression that will be used to partition a 
dataset and returns expression type.
      *
-     * @param recType
-     *            the record type
-     * @param metaRecType
-     *            the meta record type
-     * @param partitioningExprs
-     *            a list of partitioning expressions that will be validated
-     * @param keySourceIndicators
-     *            the key sources (record vs. meta)
-     * @param autogenerated
-     *            true if auto generated, false otherwise
+     * @param recType             the record type
+     * @param metaRecType         the meta record type
+     * @param partitioningExprs   a list of partitioning expressions that will 
be validated
+     * @param keySourceIndicators the key sources (record vs. meta)
+     * @param autogenerated       true if auto generated, false otherwise
      * @param sourceLoc
      * @return a list of partitioning expressions types
-     * @throws AlgebricksException
-     *             if composite key is autogenerated.
-     *             if autogenerated and of a type that can't be autogenerated.
-     *             if a field could not be found in its record type.
-     *             if partitioning key is nullable.
-     *             if the field type can't be a primary key.
+     * @throws AlgebricksException if composite key is autogenerated.
+     *                             if autogenerated and of a type that can't 
be autogenerated.
+     *                             if a field could not be found in its record 
type.
+     *                             if partitioning key is nullable.
+     *                             if the field type can't be a primary key.
      */
     public static List<IAType> validatePartitioningExpressions(ARecordType 
recType, ARecordType metaRecType,
             List<List<String>> partitioningExprs, List<Integer> 
keySourceIndicators, boolean autogenerated,
@@ -234,14 +222,10 @@ public class ValidateUtil {
     /**
      * Validates the key fields that will be used as keys of an index.
      *
-     * @param indexType
-     *            the type of the index that its key fields is being validated
-     * @param fieldType
-     *            a key field type
-     * @param displayFieldName
-     *            a field name to use for error reporting
-     * @param sourceLoc
-     *            the source location
+     * @param indexType        the type of the index that its key fields is 
being validated
+     * @param fieldType        a key field type
+     * @param displayFieldName a field name to use for error reporting
+     * @param sourceLoc        the source location
      * @throws AlgebricksException
      */
     public static void validateIndexFieldType(IndexType indexType, IAType 
fieldType, List<String> displayFieldName,
diff --git 
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
index 9f292e7eb2..21ce833ac1 100644
--- 
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
@@ -170,7 +170,6 @@ import 
org.apache.asterix.metadata.dataset.DatasetFormatInfo;
 import org.apache.asterix.metadata.dataset.hints.DatasetHints;
 import 
org.apache.asterix.metadata.dataset.hints.DatasetHints.DatasetNodegroupCardinalityHint;
 import org.apache.asterix.metadata.declared.MetadataProvider;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.CompactionPolicy;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.DatasourceAdapter;
@@ -203,6 +202,7 @@ import org.apache.asterix.om.base.IAObject;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.om.types.BuiltinType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.types.TypeSignature;
 import org.apache.asterix.om.utils.RecordUtil;
diff --git 
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
 
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
index cce0bd8d31..742cd82c25 100644
--- 
a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
+++ 
b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/FunctionUtil.java
@@ -48,12 +48,12 @@ import 
org.apache.asterix.lang.common.expression.TypeReferenceExpression;
 import org.apache.asterix.lang.common.expression.UnorderedListTypeDefinition;
 import org.apache.asterix.lang.common.statement.FunctionDecl;
 import org.apache.asterix.metadata.declared.MetadataProvider;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Dataverse;
 import org.apache.asterix.metadata.entities.Function;
 import org.apache.asterix.om.functions.BuiltinFunctionInfo;
 import org.apache.asterix.om.functions.BuiltinFunctions;
 import org.apache.asterix.om.types.BuiltinType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.TypeSignature;
 import org.apache.asterix.om.utils.ConstantExpressionUtil;
 import org.apache.commons.lang3.mutable.Mutable;
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
index d7637f4bd2..c1eba7c0cd 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/bootstrap/MetadataBootstrap.java
@@ -52,7 +52,6 @@ import org.apache.asterix.metadata.MetadataManager;
 import org.apache.asterix.metadata.MetadataNode;
 import org.apache.asterix.metadata.MetadataTransactionContext;
 import org.apache.asterix.metadata.api.IMetadataIndex;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.CompactionPolicy;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.DatasourceAdapter;
@@ -69,6 +68,7 @@ import org.apache.asterix.metadata.feeds.BuiltinFeedPolicies;
 import org.apache.asterix.metadata.utils.MetadataConstants;
 import org.apache.asterix.metadata.utils.MetadataUtil;
 import org.apache.asterix.om.types.BuiltinType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.runtime.formats.NonTaggedDataFormat;
 import 
org.apache.asterix.transaction.management.opcallbacks.PrimaryIndexOperationTrackerFactory;
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java
index 8e5dbd9c98..014f870263 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/Datatype.java
@@ -20,9 +20,13 @@
 package org.apache.asterix.metadata.entities;
 
 import org.apache.asterix.common.metadata.DataverseName;
+import org.apache.asterix.common.transactions.TxnId;
 import org.apache.asterix.metadata.MetadataCache;
+import org.apache.asterix.metadata.MetadataNode;
 import org.apache.asterix.metadata.api.IMetadataEntity;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 
 /**
  * Metadata describing a datatype.
@@ -69,4 +73,16 @@ public class Datatype implements IMetadataEntity<Datatype> {
     public Datatype dropFromCache(MetadataCache cache) {
         return cache.dropDatatype(this);
     }
+
+    public static IAType getTypeFromTypeName(MetadataNode metadataNode, TxnId 
txnId, DataverseName dataverseName,
+            String typeName) throws AlgebricksException {
+        IAType type = BuiltinTypeMap.getBuiltinType(typeName);
+        if (type == null) {
+            Datatype dt = metadataNode.getDatatype(txnId, dataverseName, 
typeName);
+            if (dt != null) {
+                type = dt.getDatatype();
+            }
+        }
+        return type;
+    }
 }
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
index 39500539ae..43fec57471 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatasetTupleTranslator.java
@@ -44,7 +44,6 @@ import org.apache.asterix.metadata.IDatasetDetails;
 import org.apache.asterix.metadata.bootstrap.MetadataPrimaryIndexes;
 import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
 import org.apache.asterix.metadata.dataset.DatasetFormatInfo;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Dataset;
 import org.apache.asterix.metadata.entities.ExternalDatasetDetails;
 import org.apache.asterix.metadata.entities.InternalDatasetDetails;
@@ -73,6 +72,7 @@ import org.apache.asterix.om.types.AOrderedListType;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.ATypeTag;
 import org.apache.asterix.om.types.AUnorderedListType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.runtime.compression.CompressionManager;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
index 454cc55062..d10d25b2df 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
@@ -26,7 +26,6 @@ import org.apache.asterix.common.transactions.TxnId;
 import org.apache.asterix.metadata.MetadataNode;
 import org.apache.asterix.metadata.bootstrap.MetadataPrimaryIndexes;
 import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Datatype;
 import org.apache.asterix.metadata.utils.TypeUtil;
 import org.apache.asterix.om.base.ABoolean;
@@ -38,6 +37,7 @@ import org.apache.asterix.om.types.AOrderedListType;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.AUnorderedListType;
 import org.apache.asterix.om.types.AbstractComplexType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.api.exceptions.HyracksDataException;
@@ -112,7 +112,7 @@ public class DatatypeTupleTranslator extends 
AbstractDatatypeTupleTranslator<Dat
                         }
 
                         IAType fieldType =
-                                
BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, 
fieldTypeName);
+                                Datatype.getTypeFromTypeName(metadataNode, 
txnId, dataverseName, fieldTypeName);
                         fieldTypes[fieldId] = 
TypeUtil.createQuantifiedType(fieldType, isNullable, isMissable);
                         fieldId++;
                     }
@@ -123,17 +123,16 @@ public class DatatypeTupleTranslator extends 
AbstractDatatypeTupleTranslator<Dat
                     String unorderedlistTypeName = ((AString) derivedTypeRecord
                             
.getValueByPos(MetadataRecordTypes.DERIVEDTYPE_ARECORD_UNORDEREDLIST_FIELD_INDEX))
                                     .getStringValue();
-                    return new Datatype(dataverseName, datatypeName,
-                            new 
AUnorderedListType(BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId,
-                                    dataverseName, unorderedlistTypeName), 
datatypeName),
-                            isAnonymous);
+                    return new Datatype(dataverseName, datatypeName, new 
AUnorderedListType(
+                            Datatype.getTypeFromTypeName(metadataNode, txnId, 
dataverseName, unorderedlistTypeName),
+                            datatypeName), isAnonymous);
                 }
                 case ORDEREDLIST: {
                     String orderedlistTypeName = ((AString) derivedTypeRecord
                             
.getValueByPos(MetadataRecordTypes.DERIVEDTYPE_ARECORD_ORDEREDLIST_FIELD_INDEX))
                                     .getStringValue();
                     return new Datatype(dataverseName, datatypeName, new 
AOrderedListType(
-                            BuiltinTypeMap.getTypeFromTypeName(metadataNode, 
txnId, dataverseName, orderedlistTypeName),
+                            Datatype.getTypeFromTypeName(metadataNode, txnId, 
dataverseName, orderedlistTypeName),
                             datatypeName), isAnonymous);
                 }
                 default:
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
index ef9c143853..3a5217b581 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
@@ -55,7 +55,6 @@ import org.apache.asterix.common.transactions.TxnId;
 import org.apache.asterix.metadata.MetadataNode;
 import org.apache.asterix.metadata.bootstrap.MetadataPrimaryIndexes;
 import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Function;
 import org.apache.asterix.om.base.ABoolean;
 import org.apache.asterix.om.base.ANull;
@@ -68,6 +67,7 @@ import 
org.apache.asterix.om.pointables.base.DefaultOpenFieldType;
 import org.apache.asterix.om.types.AOrderedListType;
 import org.apache.asterix.om.types.ARecordType;
 import org.apache.asterix.om.types.BuiltinType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.TypeSignature;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 import org.apache.hyracks.algebricks.common.utils.Triple;
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
index 43d0ed64dc..a50a834848 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
@@ -43,8 +43,8 @@ import org.apache.asterix.metadata.MetadataNode;
 import org.apache.asterix.metadata.bootstrap.MetadataPrimaryIndexes;
 import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
 import org.apache.asterix.metadata.declared.MetadataManagerUtil;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Dataset;
+import org.apache.asterix.metadata.entities.Datatype;
 import org.apache.asterix.metadata.entities.Index;
 import org.apache.asterix.metadata.utils.KeyFieldTypeUtil;
 import org.apache.asterix.om.base.ABoolean;
@@ -299,7 +299,7 @@ public class IndexTupleTranslator extends 
AbstractTupleTranslator<Index> {
                 case STRING:
                     // This is a simple element, place in a single-element 
list.
                     String typeName = ((AString) 
fieldTypeItem).getStringValue();
-                    IAType fieldType = 
BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, 
typeName);
+                    IAType fieldType = 
Datatype.getTypeFromTypeName(metadataNode, txnId, dataverseName, typeName);
                     searchKeyType.add(Collections.singletonList(fieldType));
                     break;
                 case ARRAY:
@@ -309,8 +309,7 @@ public class IndexTupleTranslator extends 
AbstractTupleTranslator<Index> {
                     IACursor fieldTypeListCursor = fieldTypeList.getCursor();
                     while (fieldTypeListCursor.next()) {
                         typeName = ((AString) 
fieldTypeListCursor.get()).getStringValue();
-                        fieldTypes
-                                
.add(BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, 
typeName));
+                        
fieldTypes.add(Datatype.getTypeFromTypeName(metadataNode, txnId, dataverseName, 
typeName));
                     }
                     searchKeyType.add(fieldTypes);
                     break;
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
index ce98008cd8..0c5315c19a 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
+++ 
b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/functions/ExternalFunctionCompilerUtil.java
@@ -27,11 +27,11 @@ import 
org.apache.asterix.common.exceptions.CompilationException;
 import org.apache.asterix.common.exceptions.ErrorCode;
 import org.apache.asterix.common.functions.ExternalFunctionLanguage;
 import org.apache.asterix.metadata.declared.MetadataProvider;
-import org.apache.asterix.metadata.entities.BuiltinTypeMap;
 import org.apache.asterix.metadata.entities.Function;
 import org.apache.asterix.om.functions.IExternalFunctionInfo;
 import org.apache.asterix.om.typecomputer.base.IResultTypeComputer;
 import org.apache.asterix.om.types.BuiltinType;
+import org.apache.asterix.om.types.BuiltinTypeMap;
 import org.apache.asterix.om.types.IAType;
 import org.apache.asterix.om.types.TypeSignature;
 import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
diff --git 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java
 
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinTypeMap.java
similarity index 81%
rename from 
asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java
rename to 
asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinTypeMap.java
index 2dcea99cc4..8693109c87 100644
--- 
a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java
+++ 
b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinTypeMap.java
@@ -17,20 +17,13 @@
  * under the License.
  */
 
-package org.apache.asterix.metadata.entities;
+package org.apache.asterix.om.types;
 
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.asterix.common.metadata.DataverseName;
-import org.apache.asterix.common.transactions.TxnId;
-import org.apache.asterix.metadata.MetadataNode;
-import org.apache.asterix.om.types.BuiltinType;
-import org.apache.asterix.om.types.IAType;
-import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
-
 /**
  * Maps from a string representation of an Asterix type to an Asterix type.
  */
@@ -90,16 +83,4 @@ public class BuiltinTypeMap {
     public static Set<BuiltinType> getAllBuiltinTypes() {
         return new HashSet<>(_builtinTypeMap.values());
     }
-
-    public static IAType getTypeFromTypeName(MetadataNode metadataNode, TxnId 
txnId, DataverseName dataverseName,
-            String typeName) throws AlgebricksException {
-        IAType type = _builtinTypeMap.get(typeName);
-        if (type == null) {
-            Datatype dt = metadataNode.getDatatype(txnId, dataverseName, 
typeName);
-            if (dt != null) {
-                type = dt.getDatatype();
-            }
-        }
-        return type;
-    }
 }

Reply via email to