You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by dl...@apache.org on 2020/05/15 21:32:47 UTC

[asterixdb] 02/02: Merge commit '3a62802' from 'gerrit/mad-hatter'

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

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

commit 63e2a43740fe0b9480b30160f214bc7fb668b451
Merge: aa2b6ea 3a62802
Author: Dmitry Lychagin <dm...@couchbase.com>
AuthorDate: Fri May 15 08:15:14 2020 -0700

    Merge commit '3a62802' from 'gerrit/mad-hatter'
    
    Change-Id: Ia70a791f6d9fd05854017ef7692adc14a6a5f37f

 .../apache/asterix/translator/TypeTranslator.java  |  31 ++---
 .../meta03/builtin_type/meta03_builtin_type.1.adm  |   2 +-
 .../meta03_builtin_type_nullable.1.adm             |   2 +-
 .../ordered_list/meta03_ordered_list.1.adm         |   2 +-
 .../meta03_ordered_list_nullable.1.adm             |   2 +-
 .../meta03/complex_type/record/meta03_record.1.adm |   2 +-
 .../record_nullable/meta03_record_nullable.1.adm   |   2 +-
 .../unordered_list/meta03_unordered_list.1.adm     |   2 +-
 .../meta03_unordered_list_nullable.1.adm           |   2 +-
 .../meta04/builtin_type/meta04_builtin_type.1.adm  |   2 +-
 .../meta04_builtin_type_nullable.1.adm             |   2 +-
 .../ordered_list/meta04_ordered_list.1.adm         |   2 +-
 .../meta04_ordered_list_nullable.1.adm             |   2 +-
 .../meta04/complex_type/record/meta04_record.1.adm |   2 +-
 .../record_nullable/meta04_record_nullable.1.adm   |   2 +-
 .../unordered_list/meta04_unordered_list.1.adm     |   2 +-
 .../meta04_unordered_list_nullable.1.adm           |   2 +-
 .../metadata_datatype/metadata_datatype.1.adm      | 142 ++++++++++-----------
 .../verify_failure_previous_success.1.adm          |  20 +--
 .../queries/group-by/gby-case-01.3.sqlpp           |   2 +-
 .../queries/group-by/gby-case-01.4.sqlpp           |   2 +-
 .../create-dataset-inline-type-1.1.ddl.sqlpp       |  78 +++++------
 .../create-dataset-inline-type-2.1.ddl.sqlpp       |   8 +-
 .../create-dataset-inline-type-2.4.ddl.sqlpp       |   4 +-
 .../group-by/gby-case-01/gby-case-01.1.ddl.sqlpp   |   2 +-
 .../gby-nested-01/gby-nested-01.1.ddl.sqlpp        |   4 +-
 .../create-dataset-inline-type-1.2.adm             |  24 ++--
 .../create-drop-cltype/create-drop-cltype.1.adm    |   2 +-
 .../create-drop-opntype/create-drop-opntype.1.adm  |   2 +-
 .../udf_metadata/udf_metadata.3.adm                |   2 +-
 .../results/types/any-object/any-object.2.adm      |   4 +-
 .../udf32_metadata/udf32_metadata.2.adm            |   2 +-
 asterixdb/asterix-lang-aql/src/main/javacc/AQL.jj  |   6 +-
 .../common/expression/RecordTypeDefinition.java    |  28 ++--
 .../lang/common/visitor/FormatPrintVisitor.java    |   8 +-
 .../lang/common/visitor/QueryPrintVisitor.java     |   8 +-
 .../asterix-lang-sqlpp/src/main/javacc/SQLPP.jj    |  12 +-
 .../metadata/bootstrap/MetadataRecordTypes.java    |   1 +
 .../asterix/metadata/entities/BuiltinTypeMap.java  |   6 +-
 .../AbstractDatatypeTupleTranslator.java           |  24 +++-
 .../DatatypeTupleTranslator.java                   |  38 +++---
 .../FunctionTupleTranslator.java                   |   7 +-
 .../IndexTupleTranslator.java                      |   2 +-
 .../apache/asterix/metadata/utils/TypeUtil.java    |  28 ++++
 44 files changed, 288 insertions(+), 241 deletions(-)

diff --cc asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/TypeTranslator.java
index fd434f4,cdb6346..aa00fb3
--- 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
@@@ -325,19 -348,12 +327,10 @@@ public class TypeTranslator 
              switch (texpr.getTypeKind()) {
                  case TYPEREFERENCE: {
                      TypeReferenceExpression tre = (TypeReferenceExpression) texpr;
 -                    TypeSignature signature = new TypeSignature(
 -                            tre.getIdent().first == null ? defaultDataverse : tre.getIdent().first.getValue(),
 -                            tre.getIdent().second.getValue());
 +                    TypeSignature signature = createTypeSignature(tre, defaultDataverse);
-                     IAType tref = solveTypeReference(signature, typeMap);
-                     if (tref != null) {
-                         if (!rtd.getOptionableFields().get(j)) { // not nullable
-                             fldTypes[j] = tref;
-                         } else { // optional
-                             fldTypes[j] = AUnionType.createUnknownableType(tref);
-                         }
-                     } else {
+                     type = solveTypeReference(signature, typeMap);
+                     if (type == null) {
                          addIncompleteFieldTypeReference(recType, j, tre, incompleteFieldTypes);
-                         if (rtd.getOptionableFields().get(j)) {
-                             fldTypes[j] = AUnionType.createUnknownableType(null);
-                         }
                      }
                      break;
                  }
diff --cc asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm
index 1bd070e,5755493..9aa9269
--- a/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm
+++ b/asterixdb/asterix-app/src/test/resources/metadata/results/basic/metadata_datatype/metadata_datatype.1.adm
@@@ -1,71 -1,70 +1,71 @@@
- { "DataverseName": "Metadata", "DatatypeName": "AnyObject", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [  ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "CompactionPolicyRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "CompactionPolicy", "FieldType": "string", "IsNullable": false }, { "FieldName": "Classname", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DatatypeDataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DatatypeName", "FieldType": "string", "IsNullable": false }, { "FieldName": [...]
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_CompactionPolicyProperties", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_CompactionPolicyProperties_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_CompactionPolicyProperties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DatasourceAdapter", "FieldType": "string", "IsNullable": false }, { "FieldName": "Properties", "FieldType": "DatasetRecordType_ExternalDetails_Properties", "IsNullable": false }, { "FieldName": "LastRefreshTime", "FieldType": "datetime", "IsNullable": false }, { "FieldName": "TransactionState", "Fie [...]
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails_Properties", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_ExternalDetails_Properties_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails_Properties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "DatasetRecordType_Hints_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FileStructure", "FieldType": "string", "IsNullable": false }, { "FieldName": "PartitioningStrategy", "FieldType": "string", "IsNullable": false }, { "FieldName": "PartitioningKey", "FieldType": "DatasetRecordType_InternalDetails_PartitioningKey", "IsNullable": false }, { "FieldName": "PrimaryKey", " [...]
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PartitioningKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_InternalDetails_PartitioningKey_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PartitioningKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PrimaryKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_InternalDetails_PrimaryKey_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PrimaryKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatasourceAdapterRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Classname", "FieldType": "string", "IsNullable": false }, { "FieldName": "Type", "FieldType": "string", "IsNullable": false }, { "FieldName": "Timestamp", "Fi [...]
- { "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DatatypeName", "FieldType": "string", "IsNullable": false }, { "FieldName": "Derived", "FieldType": "DatatypeRecordType_Derived", "IsNullable": true }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false } ] } }, "Tim [...]
- { "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Tag", "FieldType": "string", "IsNullable": false }, { "FieldName": "IsAnonymous", "FieldType": "boolean", "IsNullable": false }, { "FieldName": "Record", "FieldType": "DatatypeRecordType_Derived_Record", "IsNullable": true }, { "FieldName": "UnorderedList", "FieldType": "string", "IsNullable": true }, { "F [...]
- { "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "IsOpen", "FieldType": "boolean", "IsNullable": false }, { "FieldName": "Fields", "FieldType": "DatatypeRecordType_Derived_Record_Fields", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record_Fields", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatatypeRecordType_Derived_Record_Fields_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record_Fields_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FieldName", "FieldType": "string", "IsNullable": false }, { "FieldName": "FieldType", "FieldType": "string", "IsNullable": false }, { "FieldName": "IsNullable", "FieldType": "boolean", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "DataverseRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DataFormat", "FieldType": "string", "IsNullable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false }, { "FieldName": "PendingOp", "FieldType": "int32", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 2 [...]
- { "DataverseName": "Metadata", "DatatypeName": "ExternalFileRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false }, { "FieldName": "FileNumber", "FieldType": "int32", "IsNullable": false }, { "FieldName": "FileName", "FieldType": "string", "IsNullable": false }, { "FieldName": "FileSize" [...]
- { "DataverseName": "Metadata", "DatatypeName": "FeedConnectionRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "FeedName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false }, { "FieldName": "ReturnType", "FieldType": "string", "IsNullable": false }, { "FieldName": "Applie [...]
- { "DataverseName": "Metadata", "DatatypeName": "FeedConnectionRecordType_AppliedFunctions", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "PolicyName", "FieldType": "string", "IsNullable": false }, { "FieldName": "Description", "FieldType": "string", "IsNullable": false }, { "FieldName": "Properties", "FieldType": "FeedPolicyRecordType_Properties", "IsNullable": false }  [...]
- { "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType_Properties", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "FeedPolicyRecordType_Properties_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType_Properties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FeedRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "FeedName", "FieldType": "string", "IsNullable": false }, { "FieldName": "AdapterConfiguration", "FieldType": "FeedRecordType_AdapterConfiguration", "IsNullable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": fals [...]
- { "DataverseName": "Metadata", "DatatypeName": "FeedRecordType_AdapterConfiguration", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "FeedRecordType_AdapterConfiguration_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FeedRecordType_AdapterConfiguration_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Arity", "FieldType": "string", "IsNullable": false }, { "FieldName": "Params", "FieldType": "FunctionRecordType_Params", "IsNullable": false }, { "FieldName": "ReturnT [...]
- { "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "FunctionRecordType_Dependencies_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "FunctionRecordType_Dependencies_Item_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies_Item_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Params", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "IndexRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false }, { "FieldName": "IndexName", "FieldType": "string", "IsNullable": false }, { "FieldName": "IndexStructure", "FieldType": "string", "IsNullable": false }, { "FieldName": "SearchKey" [...]
- { "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "IndexRecordType_SearchKey_Item" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "LibraryRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "GroupName", "FieldType": "string", "IsNullable": false }, { "FieldName": "NodeNames", "FieldType": "NodeGroupRecordType_NodeNames", "IsNullable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType_NodeNames", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "NodeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "NodeName", "FieldType": "string", "IsNullable": false }, { "FieldName": "NumberOfCores", "FieldType": "int64", "IsNullable": false }, { "FieldName": "WorkingMemorySize", "FieldType": "int64", "IsNullable": false } ] } }, "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "SynonymRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "SynonymName", "FieldType": "string", "IsNullable": false }, { "FieldName": "ObjectDataverseName", "FieldType": "string", "IsNullable": false }, { "FieldName": "ObjectName", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": [...]
- { "DataverseName": "Metadata", "DatatypeName": "binary", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "boolean", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "circle", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "date", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "datetime", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "day-time-duration", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "double", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "duration", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "float", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "geometry", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "int16", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "int32", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "int64", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "int8", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "interval", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "line", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "missing", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "null", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "point", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "point3d", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "polygon", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "rectangle", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "shortwithouttypeinfo", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "string", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "time", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "uuid", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
- { "DataverseName": "Metadata", "DatatypeName": "year-month-duration", "Timestamp": "Wed Jan 29 19:18:03 PST 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "AnyObject", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [  ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "CompactionPolicyRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "CompactionPolicy", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Classname", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri Ma [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatatypeDataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatatypeName [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_CompactionPolicyProperties", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_CompactionPolicyProperties_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_CompactionPolicyProperties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DatasourceAdapter", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Properties", "FieldType": "DatasetRecordType_ExternalDetails_Properties", "IsNullable": false, "IsMissable": false }, { "FieldName": "LastRefreshTime", "FieldType": "datetime", "IsNullable": false, [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails_Properties", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_ExternalDetails_Properties_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails_Properties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "DatasetRecordType_Hints_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FileStructure", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PartitioningStrategy", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PartitioningKey", "FieldType": "DatasetRecordType_InternalDetails_PartitioningKey", "IsNullable [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PartitioningKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_InternalDetails_PartitioningKey_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PartitioningKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PrimaryKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_InternalDetails_PrimaryKey_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PrimaryKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatasourceAdapterRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Classname", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Type", "FieldType": " [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatatypeName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Derived", "FieldType": "DatatypeRecordType_Derived", "IsNullable": true, "IsMissable": true }, { "FieldName": "Timest [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Tag", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IsAnonymous", "FieldType": "boolean", "IsNullable": false, "IsMissable": false }, { "FieldName": "Record", "FieldType": "DatatypeRecordType_Derived_Record", "IsNullable": true, "IsMissable": true }, { "FieldName": "Uno [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "IsOpen", "FieldType": "boolean", "IsNullable": false, "IsMissable": false }, { "FieldName": "Fields", "FieldType": "DatatypeRecordType_Derived_Record_Fields", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record_Fields", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatatypeRecordType_Derived_Record_Fields_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record_Fields_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FieldName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FieldType", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IsNullable", "FieldType": "boolean", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp" [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "DataverseRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DataFormat", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PendingOp", "FieldType" [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "ExternalFileRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FileNumber", "FieldType": "int32", "IsNullable": false, "IsMissable": false }, { "FieldName": "FileName", "FieldTy [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedConnectionRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FeedName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "ReturnType", "Fiel [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedConnectionRecordType_AppliedFunctions", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PolicyName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Description", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Properties", "FieldT [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType_Properties", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "FeedPolicyRecordType_Properties_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType_Properties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FeedName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "AdapterConfiguration", "FieldType": "FeedRecordType_AdapterConfiguration", "IsNullable": false, "IsMissable": false }, { "Fie [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedRecordType_AdapterConfiguration", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "FeedRecordType_AdapterConfiguration_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FeedRecordType_AdapterConfiguration_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Arity", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Params", "FieldType": "FunctionRec [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "FunctionRecordType_Dependencies_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "FunctionRecordType_Dependencies_Item_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies_Item_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Params", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IndexName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IndexStructure", "FieldTyp [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "IndexRecordType_SearchKey_Item" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "LibraryRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "GroupName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "NodeNames", "FieldType": "NodeGroupRecordType_NodeNames", "IsNullable": false, "IsMissable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "F [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType_NodeNames", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "NodeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "NodeName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "NumberOfCores", "FieldType": "int64", "IsNullable": false, "IsMissable": false }, { "FieldName": "WorkingMemorySize", "FieldType": "int64", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Fri May 08 17:24:56  [...]
 -{ "DataverseName": "Metadata", "DatatypeName": "binary", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "boolean", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "circle", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "date", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "datetime", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "day-time-duration", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "double", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "duration", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "float", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "geometry", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "int16", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "int32", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "int64", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "int8", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "interval", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "line", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "missing", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "null", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "point", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "point3d", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "polygon", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "rectangle", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "shortwithouttypeinfo", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "string", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "time", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "uuid", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
 -{ "DataverseName": "Metadata", "DatatypeName": "year-month-duration", "Timestamp": "Fri May 08 17:24:56 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "AnyObject", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [  ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "CompactionPolicyRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "CompactionPolicy", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Classname", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu Ma [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatatypeDataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatatypeName [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_CompactionPolicyProperties", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_CompactionPolicyProperties_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_CompactionPolicyProperties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DatasourceAdapter", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Properties", "FieldType": "DatasetRecordType_ExternalDetails_Properties", "IsNullable": false, "IsMissable": false }, { "FieldName": "LastRefreshTime", "FieldType": "datetime", "IsNullable": false, [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails_Properties", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_ExternalDetails_Properties_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_ExternalDetails_Properties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "DatasetRecordType_Hints_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FileStructure", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PartitioningStrategy", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PartitioningKey", "FieldType": "DatasetRecordType_InternalDetails_PartitioningKey", "IsNullable [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PartitioningKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_InternalDetails_PartitioningKey_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PartitioningKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PrimaryKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatasetRecordType_InternalDetails_PrimaryKey_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_InternalDetails_PrimaryKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatasourceAdapterRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Classname", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Type", "FieldType": " [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatatypeName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Derived", "FieldType": "DatatypeRecordType_Derived", "IsNullable": true, "IsMissable": true }, { "FieldName": "Timest [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Tag", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IsAnonymous", "FieldType": "boolean", "IsNullable": false, "IsMissable": false }, { "FieldName": "Record", "FieldType": "DatatypeRecordType_Derived_Record", "IsNullable": true, "IsMissable": true }, { "FieldName": "Uno [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "IsOpen", "FieldType": "boolean", "IsNullable": false, "IsMissable": false }, { "FieldName": "Fields", "FieldType": "DatatypeRecordType_Derived_Record_Fields", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record_Fields", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "DatatypeRecordType_Derived_Record_Fields_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "DatatypeRecordType_Derived_Record_Fields_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "FieldName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FieldType", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IsNullable", "FieldType": "boolean", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp" [...]
++{ "DataverseName": "Metadata", "DatatypeName": "DataverseRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DataFormat", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PendingOp", "FieldType" [...]
++{ "DataverseName": "Metadata", "DatatypeName": "ExternalFileRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FileNumber", "FieldType": "int32", "IsNullable": false, "IsMissable": false }, { "FieldName": "FileName", "FieldTy [...]
++{ "DataverseName": "Metadata", "DatatypeName": "FeedConnectionRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FeedName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "ReturnType", "Fiel [...]
++{ "DataverseName": "Metadata", "DatatypeName": "FeedConnectionRecordType_AppliedFunctions", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "PolicyName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Description", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Properties", "FieldT [...]
++{ "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType_Properties", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "FeedPolicyRecordType_Properties_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FeedPolicyRecordType_Properties_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FeedRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "FeedName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "AdapterConfiguration", "FieldType": "FeedRecordType_AdapterConfiguration", "IsNullable": false, "IsMissable": false }, { "Fie [...]
++{ "DataverseName": "Metadata", "DatatypeName": "FeedRecordType_AdapterConfiguration", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "FeedRecordType_AdapterConfiguration_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FeedRecordType_AdapterConfiguration_Item", "Derived": { "Tag": "RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Arity", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Params", "FieldType": "FunctionRec [...]
++{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "FunctionRecordType_Dependencies_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "FunctionRecordType_Dependencies_Item_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Dependencies_Item_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Params", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "DatasetName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IndexName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "IndexStructure", "FieldTyp [...]
++{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "IndexRecordType_SearchKey_Item" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey_Item", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "LibraryRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Name", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "GroupName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "NodeNames", "FieldType": "NodeGroupRecordType_NodeNames", "IsNullable": false, "IsMissable": false }, { "FieldName": "Timestamp", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "T [...]
++{ "DataverseName": "Metadata", "DatatypeName": "NodeGroupRecordType_NodeNames", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "NodeRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "NodeName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "NumberOfCores", "FieldType": "int64", "IsNullable": false, "IsMissable": false }, { "FieldName": "WorkingMemorySize", "FieldType": "int64", "IsNullable": false, "IsMissable": false } ] } }, "Timestamp": "Thu May 14 18:42:45  [...]
++{ "DataverseName": "Metadata", "DatatypeName": "SynonymRecordType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "DataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "SynonymName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "ObjectDataverseName", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "ObjectName", " [...]
++{ "DataverseName": "Metadata", "DatatypeName": "binary", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "boolean", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "circle", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "date", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "datetime", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "day-time-duration", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "double", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "duration", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "float", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "geometry", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "int16", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "int32", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "int64", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "int8", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "interval", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "line", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "missing", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "null", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "point", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "point3d", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "polygon", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "rectangle", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "shortwithouttypeinfo", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "string", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "time", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "uuid", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
++{ "DataverseName": "Metadata", "DatatypeName": "year-month-duration", "Timestamp": "Thu May 14 18:42:45 PDT 2020" }
diff --cc asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/udf_metadata/udf_metadata.3.adm
index 3b87226,0000000..67f81b2
mode 100644,000000..100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/udf_metadata/udf_metadata.3.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/external-library/udf_metadata/udf_metadata.3.adm
@@@ -1,23 -1,0 +1,23 @@@
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn001", "Arity": "0", "Params": [  ], "ReturnType": "any", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [  ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn002", "Arity": "1", "Params": [ "a" ], "ReturnType": "any", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "any" } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn003", "Arity": "3", "Params": [ "a", "b", "c" ], "ReturnType": "string", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "string", "IsNullable": false }, { "Type": "fn$myfn003$3$1", "IsNullable": false }, { "Type": "fn$myfn003$3$2", "IsNullable": false } ], "Library": "tes [...]
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn004", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "CountryCapitalType", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "CountryCapitalType", "IsNullable": false }, { "Type": "fn$myfn004$2$1", "IsNullable": false } ], "Lib [...]
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn005", "Arity": "4", "Params": [ "a", "b", "c", "d" ], "ReturnType": "string", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ReturnTypeIsNullable": true, "ParamTypes": [ { "Type": "string", "IsNullable": true }, { "Type": "fn$myfn005$4$1", "IsNullable": true }, { "Type": "CountryCapit [...]
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn006", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn006$1", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "fn$myfn006$1$0", "IsNullable": false } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn007", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn007$1", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ReturnTypeIsNullable": true, "ParamTypes": [ { "Type": "fn$myfn007$1$0", "IsNullable": true } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn008", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn008$1", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "fn$myfn008$1$0", "IsNullable": false } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
 +{ "fn": { "DataverseName": "externallibtest", "Name": "myfn009", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn009$1", "Definition": "org.apache.asterix.external.library.CapitalFinderFactory", "Language": "JAVA", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "externallibtest", "CountryCapitalType" ] ] ], "ReturnTypeIsNullable": true, "ParamTypes": [ { "Type": "fn$myfn009$1$0", "IsNullable": true } ], "Library": "testlib", "NullCall": false, "Deterministic": false } }
- { "dt": { "DataverseName": "externallibtest", "DatatypeName": "CountryCapitalType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": false, "Fields": [ { "FieldName": "country", "FieldType": "string", "IsNullable": false }, { "FieldName": "capital", "FieldType": "string", "IsNullable": false } ] } } } }
++{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "CountryCapitalType", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": false, "Fields": [ { "FieldName": "country", "FieldType": "string", "IsNullable": false, "IsMissable": false }, { "FieldName": "capital", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn003$3$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "int64" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn003$3$2", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "boolean" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn004$2$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "CountryCapitalType" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn005$4$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "int64" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn005$4$3", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "CountryCapitalType" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn006$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn006$1$0", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn007$1", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn007$1$0", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn008$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "CountryCapitalType" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn008$1$0", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "CountryCapitalType" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn009$1", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "CountryCapitalType" } } }
 +{ "dt": { "DataverseName": "externallibtest", "DatatypeName": "fn$myfn009$1$0", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "CountryCapitalType" } } }
diff --cc asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf32_metadata/udf32_metadata.2.adm
index a6d1478,0000000..c78c3d4
mode 100644,000000..100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf32_metadata/udf32_metadata.2.adm
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/user-defined-functions/udf32_metadata/udf32_metadata.2.adm
@@@ -1,23 -1,0 +1,23 @@@
 +{ "fn": { "DataverseName": "test", "Name": "myfn001", "Arity": "0", "Params": [  ], "ReturnType": "any", "Definition": "42", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [  ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn002", "Arity": "1", "Params": [ "a" ], "ReturnType": "any", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ParamTypes": [ { "Type": "any" } ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn003", "Arity": "3", "Params": [ "a", "b", "c" ], "ReturnType": "string", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "string", "IsNullable": false }, { "Type": "fn$myfn003$3$1", "IsNullable": false }, { "Type": "fn$myfn003$3$2", "IsNullable": false } ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn004", "Arity": "2", "Params": [ "a", "b" ], "ReturnType": "MyType1", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "test", "MyType1" ] ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "MyType1", "IsNullable": false }, { "Type": "fn$myfn004$2$1", "IsNullable": false } ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn005", "Arity": "4", "Params": [ "a", "b", "c", "d" ], "ReturnType": "string", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "test", "MyType1" ] ] ], "ReturnTypeIsNullable": true, "ParamTypes": [ { "Type": "string", "IsNullable": true }, { "Type": "fn$myfn005$4$1", "IsNullable": true }, { "Type": "MyType1", "IsNullable": true }, { "Type": "fn$myfn005$4$3", "IsNullable": true } ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn006", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn006$1", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "fn$myfn006$1$0", "IsNullable": false } ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn007", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn007$1", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [  ] ], "ReturnTypeIsNullable": true, "ParamTypes": [ { "Type": "fn$myfn007$1$0", "IsNullable": true } ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn008", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn008$1", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "test", "MyType1" ] ] ], "ReturnTypeIsNullable": false, "ParamTypes": [ { "Type": "fn$myfn008$1$0", "IsNullable": false } ] } }
 +{ "fn": { "DataverseName": "test", "Name": "myfn009", "Arity": "1", "Params": [ "a" ], "ReturnType": "fn$myfn009$1", "Definition": "a", "Language": "SQLPP", "Kind": "SCALAR", "Dependencies": [ [  ], [  ], [ [ "test", "MyType1" ] ] ], "ReturnTypeIsNullable": true, "ParamTypes": [ { "Type": "fn$myfn009$1$0", "IsNullable": true } ] } }
- { "dt": { "DataverseName": "test", "DatatypeName": "MyType1", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "id", "FieldType": "int64", "IsNullable": false }, { "FieldName": "value", "FieldType": "string", "IsNullable": false } ] } } } }
++{ "dt": { "DataverseName": "test", "DatatypeName": "MyType1", "Derived": { "Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { "FieldName": "id", "FieldType": "int64", "IsNullable": false, "IsMissable": false }, { "FieldName": "value", "FieldType": "string", "IsNullable": false, "IsMissable": false } ] } } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn003$3$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "int64" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn003$3$2", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "boolean" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn004$2$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "MyType1" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn005$4$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "int64" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn005$4$3", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "MyType1" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn006$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn006$1$0", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn007$1", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn007$1$0", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn008$1", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "MyType1" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn008$1$0", "Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "MyType1" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn009$1", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "MyType1" } } }
 +{ "dt": { "DataverseName": "test", "DatatypeName": "fn$myfn009$1$0", "Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "MyType1" } } }
diff --cc asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java
index 4553124,d2284b9..e26dec7
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entities/BuiltinTypeMap.java
@@@ -24,10 -25,9 +24,9 @@@ import java.util.HashSet
  import java.util.Map;
  import java.util.Set;
  
 -import org.apache.asterix.common.exceptions.MetadataException;
 +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.AUnionType;
  import org.apache.asterix.om.types.BuiltinType;
  import org.apache.asterix.om.types.IAType;
  import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@@ -93,18 -93,17 +92,15 @@@ public class BuiltinTypeMap 
          return new HashSet<>(_builtinTypeMap.values());
      }
  
 -    public static IAType getTypeFromTypeName(MetadataNode metadataNode, TxnId txnId, String dataverseName,
 +    public static IAType getTypeFromTypeName(MetadataNode metadataNode, TxnId txnId, DataverseName dataverseName,
-             String typeName, boolean optional) throws AlgebricksException {
+             String typeName) throws AlgebricksException {
          IAType type = _builtinTypeMap.get(typeName);
          if (type == null) {
 -            try {
 -                Datatype dt = metadataNode.getDatatype(txnId, dataverseName, typeName);
 +            Datatype dt = metadataNode.getDatatype(txnId, dataverseName, typeName);
 +            if (dt != null) {
                  type = dt.getDatatype();
 -            } catch (RemoteException e) {
 -                throw new MetadataException(e);
              }
          }
-         if (optional) {
-             type = AUnionType.createUnknownableType(type);
-         }
          return type;
      }
  }
diff --cc asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/AbstractDatatypeTupleTranslator.java
index 7a37597,0000000..60bd2c2
mode 100644,000000..100644
--- a/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/AbstractDatatypeTupleTranslator.java
+++ b/asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/AbstractDatatypeTupleTranslator.java
@@@ -1,216 -1,0 +1,226 @@@
 +/*
 + * Licensed to the Apache Software Foundation (ASF) under one
 + * or more contributor license agreements.  See the NOTICE file
 + * distributed with this work for additional information
 + * regarding copyright ownership.  The ASF licenses this file
 + * to you under the Apache License, Version 2.0 (the
 + * "License"); you may not use this file except in compliance
 + * with the License.  You may obtain a copy of the License at
 + *
 + *   http://www.apache.org/licenses/LICENSE-2.0
 + *
 + * Unless required by applicable law or agreed to in writing,
 + * software distributed under the License is distributed on an
 + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 + * KIND, either express or implied.  See the License for the
 + * specific language governing permissions and limitations
 + * under the License.
 + */
 +
 +package org.apache.asterix.metadata.entitytupletranslators;
 +
 +import java.io.DataOutput;
 +
 +import org.apache.asterix.builders.IARecordBuilder;
 +import org.apache.asterix.builders.OrderedListBuilder;
 +import org.apache.asterix.builders.RecordBuilder;
 +import org.apache.asterix.common.metadata.DataverseName;
 +import org.apache.asterix.common.transactions.TxnId;
 +import org.apache.asterix.metadata.MetadataNode;
 +import org.apache.asterix.metadata.api.IMetadataIndex;
 +import org.apache.asterix.metadata.bootstrap.MetadataRecordTypes;
 +import org.apache.asterix.metadata.entities.Datatype;
 +import org.apache.asterix.om.base.ABoolean;
 +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.AUnionType;
 +import org.apache.asterix.om.types.AbstractCollectionType;
 +import org.apache.asterix.om.types.AbstractComplexType;
 +import org.apache.asterix.om.types.IAType;
- import org.apache.asterix.om.utils.NonTaggedFormatUtil;
 +import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
 +import org.apache.hyracks.api.exceptions.ErrorCode;
 +import org.apache.hyracks.api.exceptions.HyracksDataException;
 +import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
 +
 +public abstract class AbstractDatatypeTupleTranslator<T> extends AbstractTupleTranslator<T> {
 +
 +    public enum DerivedTypeTag {
 +        RECORD,
 +        UNORDEREDLIST,
 +        ORDEREDLIST
 +    }
 +
 +    protected final MetadataNode metadataNode;
 +
 +    protected final TxnId txnId;
 +
 +    public AbstractDatatypeTupleTranslator(TxnId txnId, MetadataNode metadataNode, boolean getTuple,
 +            IMetadataIndex metadataIndex, int payloadTupleFieldIndex) {
 +        super(getTuple, metadataIndex, payloadTupleFieldIndex);
 +        this.txnId = txnId;
 +        this.metadataNode = metadataNode;
 +    }
 +
 +    protected void writeDerivedTypeRecord(DataverseName dataverseName, AbstractComplexType derivedDatatype,
 +            DataOutput out, boolean isAnonymous) throws HyracksDataException {
 +        DerivedTypeTag tag;
 +        IARecordBuilder derivedRecordBuilder = new RecordBuilder();
 +        ArrayBackedValueStorage fieldValue = new ArrayBackedValueStorage();
 +        switch (derivedDatatype.getTypeTag()) {
 +            case ARRAY:
 +                tag = DerivedTypeTag.ORDEREDLIST;
 +                break;
 +            case MULTISET:
 +                tag = DerivedTypeTag.UNORDEREDLIST;
 +                break;
 +            case OBJECT:
 +                tag = DerivedTypeTag.RECORD;
 +                break;
 +            default:
 +                throw new UnsupportedOperationException(
 +                        "No metadata record Type for " + derivedDatatype.getDisplayName());
 +        }
 +
 +        derivedRecordBuilder.reset(MetadataRecordTypes.DERIVEDTYPE_RECORDTYPE);
 +
 +        // write field 0
 +        fieldValue.reset();
 +        aString.setValue(tag.toString());
 +        stringSerde.serialize(aString, fieldValue.getDataOutput());
 +        derivedRecordBuilder.addField(MetadataRecordTypes.DERIVEDTYPE_ARECORD_TAG_FIELD_INDEX, fieldValue);
 +
 +        // write field 1
 +        fieldValue.reset();
 +        booleanSerde.serialize(ABoolean.valueOf(isAnonymous), fieldValue.getDataOutput());
 +        derivedRecordBuilder.addField(MetadataRecordTypes.DERIVEDTYPE_ARECORD_ISANONYMOUS_FIELD_INDEX, fieldValue);
 +
 +        switch (tag) {
 +            case RECORD:
 +                fieldValue.reset();
 +                writeRecordType(dataverseName, derivedDatatype, fieldValue.getDataOutput());
 +                derivedRecordBuilder.addField(MetadataRecordTypes.DERIVEDTYPE_ARECORD_RECORD_FIELD_INDEX, fieldValue);
 +                break;
 +            case UNORDEREDLIST:
 +                fieldValue.reset();
 +                writeCollectionType(dataverseName, derivedDatatype, fieldValue.getDataOutput());
 +                derivedRecordBuilder.addField(MetadataRecordTypes.DERIVEDTYPE_ARECORD_UNORDEREDLIST_FIELD_INDEX,
 +                        fieldValue);
 +                break;
 +            case ORDEREDLIST:
 +                fieldValue.reset();
 +                writeCollectionType(dataverseName, derivedDatatype, fieldValue.getDataOutput());
 +                derivedRecordBuilder.addField(MetadataRecordTypes.DERIVEDTYPE_ARECORD_ORDEREDLIST_FIELD_INDEX,
 +                        fieldValue);
 +                break;
 +        }
 +        derivedRecordBuilder.write(out, true);
 +    }
 +
 +    private void writeCollectionType(DataverseName dataverseName, AbstractComplexType type, DataOutput out)
 +            throws HyracksDataException {
 +        AbstractCollectionType listType = (AbstractCollectionType) type;
 +        IAType itemType = listType.getItemType();
 +        if (itemType.getTypeTag().isDerivedType()) {
 +            handleNestedDerivedType(dataverseName, itemType.getTypeName(), (AbstractComplexType) itemType);
 +        }
 +        aString.setValue(listType.getItemType().getTypeName());
 +        stringSerde.serialize(aString, out);
 +    }
 +
 +    private void writeRecordType(DataverseName dataverseName, AbstractComplexType type, DataOutput out)
 +            throws HyracksDataException {
 +
 +        ArrayBackedValueStorage fieldValue = new ArrayBackedValueStorage();
 +        ArrayBackedValueStorage itemValue = new ArrayBackedValueStorage();
 +        IARecordBuilder recordRecordBuilder = new RecordBuilder();
 +        IARecordBuilder fieldRecordBuilder = new RecordBuilder();
 +
 +        ARecordType recType = (ARecordType) type;
 +        OrderedListBuilder listBuilder = new OrderedListBuilder();
 +        listBuilder.reset(new AOrderedListType(MetadataRecordTypes.FIELD_RECORDTYPE, null));
 +
 +        for (int i = 0, n = recType.getFieldNames().length; i < n; i++) {
-             String fieldName = recType.getFieldNames()[i];
 +            IAType fieldType = recType.getFieldTypes()[i];
- 
 +            boolean fieldIsNullable = false;
-             if (NonTaggedFormatUtil.isOptional(fieldType)) {
-                 fieldIsNullable = true;
-                 fieldType = ((AUnionType) fieldType).getActualType();
++            boolean fieldIsMissable = false;
++
++            if (fieldType.getTypeTag() == ATypeTag.UNION) {
++                AUnionType fieldUnionType = (AUnionType) fieldType;
++                fieldIsNullable = fieldUnionType.isNullableType();
++                fieldIsMissable = fieldUnionType.isMissableType();
++                fieldType = fieldUnionType.getActualType();
 +            }
 +            if (fieldType.getTypeTag().isDerivedType()) {
 +                handleNestedDerivedType(dataverseName, fieldType.getTypeName(), (AbstractComplexType) fieldType);
 +            }
 +
 +            itemValue.reset();
 +
 +            fieldRecordBuilder.reset(MetadataRecordTypes.FIELD_RECORDTYPE);
 +
 +            // write field 0
 +            fieldValue.reset();
-             aString.setValue(fieldName);
++            aString.setValue(recType.getFieldNames()[i]);
 +            stringSerde.serialize(aString, fieldValue.getDataOutput());
 +            fieldRecordBuilder.addField(MetadataRecordTypes.FIELD_ARECORD_FIELDNAME_FIELD_INDEX, fieldValue);
 +
 +            // write field 1
 +            fieldValue.reset();
 +            aString.setValue(fieldType.getTypeName());
 +            stringSerde.serialize(aString, fieldValue.getDataOutput());
 +            fieldRecordBuilder.addField(MetadataRecordTypes.FIELD_ARECORD_FIELDTYPE_FIELD_INDEX, fieldValue);
 +
 +            // write field 2
 +            fieldValue.reset();
 +            booleanSerde.serialize(ABoolean.valueOf(fieldIsNullable), fieldValue.getDataOutput());
 +            fieldRecordBuilder.addField(MetadataRecordTypes.FIELD_ARECORD_ISNULLABLE_FIELD_INDEX, fieldValue);
 +
++            // write open fields
++            fieldName.reset();
++            aString.setValue(MetadataRecordTypes.FIELD_NAME_IS_MISSABLE);
++            stringSerde.serialize(aString, fieldName.getDataOutput());
++            fieldValue.reset();
++            booleanSerde.serialize(ABoolean.valueOf(fieldIsMissable), fieldValue.getDataOutput());
++            fieldRecordBuilder.addField(fieldName, fieldValue);
++
 +            // write record
 +            fieldRecordBuilder.write(itemValue.getDataOutput(), true);
 +
 +            // add item to the list of fields
 +            listBuilder.addItem(itemValue);
 +        }
 +
 +        recordRecordBuilder.reset(MetadataRecordTypes.RECORD_RECORDTYPE);
 +        // write field 0
 +        fieldValue.reset();
 +        booleanSerde.serialize(ABoolean.valueOf(recType.isOpen()), fieldValue.getDataOutput());
 +        recordRecordBuilder.addField(MetadataRecordTypes.RECORDTYPE_ARECORD_ISOPEN_FIELD_INDEX, fieldValue);
 +
 +        // write field 1
 +        fieldValue.reset();
 +        listBuilder.write(fieldValue.getDataOutput(), true);
 +        recordRecordBuilder.addField(MetadataRecordTypes.RECORDTYPE_ARECORD_FIELDS_FIELD_INDEX, fieldValue);
 +
 +        // write record
 +        recordRecordBuilder.write(out, true);
 +    }
 +
 +    protected void handleNestedDerivedType(DataverseName dataverseName, String typeName, AbstractComplexType nestedType)
 +            throws HyracksDataException {
 +        try {
 +            metadataNode.addDatatype(txnId, new Datatype(dataverseName, typeName, nestedType, true));
 +        } catch (AlgebricksException e) {
 +            // The nested record type may have been inserted by a previous DDL statement or
 +            // by a previous nested type.
 +            if (!(e.getCause() instanceof HyracksDataException)) {
 +                throw HyracksDataException.create(e);
 +            } else {
 +                HyracksDataException hde = (HyracksDataException) e.getCause();
 +                if (!hde.getComponent().equals(ErrorCode.HYRACKS) || hde.getErrorCode() != ErrorCode.DUPLICATE_KEY) {
 +                    throw hde;
 +                }
 +            }
 +        }
 +    }
 +}
diff --cc asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/DatatypeTupleTranslator.java
index c77f8b6,52dd3fd..454cc55
--- 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
@@@ -35,9 -44,10 +36,7 @@@ import org.apache.asterix.om.base.AStri
  import org.apache.asterix.om.base.IACursor;
  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.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.IAType;
  import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@@ -98,10 -141,24 +97,23 @@@ public class DatatypeTupleTranslator ex
                          fieldTypeName =
                                  ((AString) field.getValueByPos(MetadataRecordTypes.FIELD_ARECORD_FIELDTYPE_FIELD_INDEX))
                                          .getStringValue();
+ 
                          boolean isNullable = ((ABoolean) field
                                  .getValueByPos(MetadataRecordTypes.FIELD_ARECORD_ISNULLABLE_FIELD_INDEX)).getBoolean();
-                         fieldTypes[fieldId] = BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName,
-                                 fieldTypeName, isNullable);
 -
+                         int isMissableIdx = field.getType().getFieldIndex(MetadataRecordTypes.FIELD_NAME_IS_MISSABLE);
+                         boolean isMissable;
+                         if (isMissableIdx >= 0) {
+                             isMissable = ((ABoolean) field.getValueByPos(isMissableIdx)).getBoolean();
+                         } else {
+                             // back-compat
+                             // we previously stored 'isNullable' = true if type was 'unknowable',
+                             // or 'isNullable' = 'false' if the type was 'not unknowable'.
+                             isMissable = isNullable;
+                         }
+ 
+                         IAType fieldType =
+                                 BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, fieldTypeName);
+                         fieldTypes[fieldId] = TypeUtil.createQuantifiedType(fieldType, isNullable, isMissable);
                          fieldId++;
                      }
                      return new Datatype(dataverseName, datatypeName,
@@@ -160,17 -215,11 +171,12 @@@
          stringSerde.serialize(aString, fieldValue.getDataOutput());
          recordBuilder.addField(MetadataRecordTypes.DATATYPE_ARECORD_DATATYPENAME_FIELD_INDEX, fieldValue);
  
+         // write field 2
          IAType fieldType = dataType.getDatatype();
-         // unwrap nullable type out of the union
-         if (fieldType.getTypeTag() == ATypeTag.UNION) {
-             fieldType = ((AUnionType) dataType.getDatatype()).getActualType();
-         }
- 
-         // write field 3
          if (fieldType.getTypeTag().isDerivedType()) {
              fieldValue.reset();
 -            writeDerivedTypeRecord(dataType, (AbstractComplexType) fieldType, fieldValue.getDataOutput());
 +            writeDerivedTypeRecord(dataType.getDataverseName(), (AbstractComplexType) fieldType,
 +                    fieldValue.getDataOutput(), dataType.getIsAnonymous());
              recordBuilder.addField(MetadataRecordTypes.DATATYPE_ARECORD_DERIVED_FIELD_INDEX, fieldValue);
          }
  
diff --cc asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/FunctionTupleTranslator.java
index 14089c2,c4e42d1..f4f6070
--- 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
@@@ -19,37 -19,18 +19,38 @@@
  
  package org.apache.asterix.metadata.entitytupletranslators;
  
 -import java.io.ByteArrayInputStream;
 -import java.io.DataInput;
 -import java.io.DataInputStream;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_IS_NULLABLE;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_NAME;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_TYPE;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FIELD_NAME_VALUE;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_DETERMINISTIC_FIELD_NAME;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_LIBRARY_FIELD_NAME;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_NULLCALL_FIELD_NAME;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_PARAMTYPES_FIELD_NAME;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_RETURN_TYPE_IS_NULLABLE;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_WITHPARAM_LIST_NAME;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.PROPERTIES_NAME_FIELD_NAME;
 +import static org.apache.asterix.metadata.bootstrap.MetadataRecordTypes.PROPERTIES_VALUE_FIELD_NAME;
 +
 +import java.io.DataOutput;
  import java.util.ArrayList;
 +import java.util.HashMap;
  import java.util.List;
 +import java.util.Map;
  
 +import org.apache.asterix.builders.IARecordBuilder;
  import org.apache.asterix.builders.OrderedListBuilder;
 +import org.apache.asterix.builders.RecordBuilder;
  import org.apache.asterix.common.functions.FunctionSignature;
 -import org.apache.asterix.formats.nontagged.SerializerDeserializerProvider;
 +import org.apache.asterix.common.metadata.DataverseName;
 +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.metadata.utils.TypeUtil;
 +import org.apache.asterix.om.base.ABoolean;
  import org.apache.asterix.om.base.AOrderedList;
  import org.apache.asterix.om.base.ARecord;
  import org.apache.asterix.om.base.AString;
@@@ -137,98 -117,30 +138,100 @@@ public class FunctionTupleTranslator ex
  
          IACursor dependenciesCursor = ((AOrderedList) functionRecord
                  .getValueByPos(MetadataRecordTypes.FUNCTION_ARECORD_FUNCTION_DEPENDENCIES_FIELD_INDEX)).getCursor();
 -        List<List<List<String>>> dependencies = new ArrayList<>();
 -        AOrderedList dependencyList;
 -        AOrderedList qualifiedList;
 -        int i = 0;
 +        List<List<Triple<DataverseName, String, String>>> dependencies = new ArrayList<>();
          while (dependenciesCursor.next()) {
 -            dependencies.add(new ArrayList<>());
 -            dependencyList = (AOrderedList) dependenciesCursor.get();
 -            IACursor qualifiedDependencyCursor = dependencyList.getCursor();
 -            int j = 0;
 +            List<Triple<DataverseName, String, String>> dependencyList = new ArrayList<>();
 +            IACursor qualifiedDependencyCursor = ((AOrderedList) dependenciesCursor.get()).getCursor();
              while (qualifiedDependencyCursor.next()) {
 -                qualifiedList = (AOrderedList) qualifiedDependencyCursor.get();
 -                IACursor qualifiedNameCursor = qualifiedList.getCursor();
 -                dependencies.get(i).add(new ArrayList<>());
 -                while (qualifiedNameCursor.next()) {
 -                    dependencies.get(i).get(j).add(((AString) qualifiedNameCursor.get()).getStringValue());
 -                }
 -                j++;
 +                Triple<DataverseName, String, String> dependency =
 +                        getDependency((AOrderedList) qualifiedDependencyCursor.get());
 +                dependencyList.add(dependency);
              }
 -            i++;
 +            dependencies.add(dependencyList);
 +        }
 +
 +        FunctionSignature signature = new FunctionSignature(dataverseName, functionName, arity);
 +
 +        return new Function(signature, argNames, argTypes, returnType, definition, functionKind, language,
 +                functionLibrary, nullCall, deterministic, params, dependencies);
 +    }
  
 +    private IAType resolveType(DataverseName dataverseName, String typeName, Boolean isUnknownable)
 +            throws AlgebricksException {
++        //TODO(dmitry): revisit "isNullable"/"isMissable" for function paramters
 +        return BuiltinType.ANY.getTypeName().equalsIgnoreCase(typeName) ? BuiltinType.ANY
-                 : BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, typeName,
-                         isUnknownable != null ? isUnknownable : false);
++                : TypeUtil.createQuantifiedType(
++                        BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, typeName), isUnknownable,
++                        isUnknownable);
 +    }
 +
 +    private List<IAType> getArgTypes(ARecord functionRecord, DataverseName dataverseName, int arity)
 +            throws AlgebricksException {
 +        List<IAType> argTypes = new ArrayList<>(arity);
 +
 +        ARecordType functionRecordType = functionRecord.getType();
 +        int paramTypesFieldIdx = functionRecordType.getFieldIndex(FUNCTION_ARECORD_FUNCTION_PARAMTYPES_FIELD_NAME);
 +        if (paramTypesFieldIdx >= 0) {
 +            IACursor cursor = ((AOrderedList) functionRecord.getValueByPos(paramTypesFieldIdx)).getCursor();
 +            while (cursor.next()) {
 +                ARecord paramTypeRecord = (ARecord) cursor.get();
 +                String paramTypeName = getString(paramTypeRecord, FIELD_NAME_TYPE);
 +                Boolean paramTypeIsNullable = getBoolean(paramTypeRecord, FIELD_NAME_IS_NULLABLE);
 +                IAType paramType = paramTypeName != null
 +                        ? resolveType(dataverseName, paramTypeName, paramTypeIsNullable) : BuiltinType.ANY;
 +                argTypes.add(paramType);
 +            }
 +        } else {
 +            for (int i = 0; i < arity; i++) {
 +                argTypes.add(BuiltinType.ANY);
 +            }
          }
 +        return argTypes;
 +    }
  
 -        FunctionSignature signature = new FunctionSignature(dataverseName, functionName, Integer.parseInt(arity));
 -        return new Function(signature, params, returnType, definition, language, functionKind, dependencies);
 +    private Triple<DataverseName, String, String> getDependency(AOrderedList dependencySubnames) {
 +        String dataverseCanonicalName = ((AString) dependencySubnames.getItem(0)).getStringValue();
 +        DataverseName dataverseName = DataverseName.createFromCanonicalForm(dataverseCanonicalName);
 +        String second = null, third = null;
 +        int ln = dependencySubnames.size();
 +        if (ln > 1) {
 +            second = ((AString) dependencySubnames.getItem(1)).getStringValue();
 +            if (ln > 2) {
 +                third = ((AString) dependencySubnames.getItem(2)).getStringValue();
 +            }
 +        }
 +        return new Triple<>(dataverseName, second, third);
 +    }
 +
 +    private Map<String, String> getWithParameters(ARecord functionRecord) {
 +        Map<String, String> adaptorConfiguration = new HashMap<>();
 +        final ARecordType functionType = functionRecord.getType();
 +        final int functionLibraryIdx = functionType.getFieldIndex(FUNCTION_ARECORD_FUNCTION_WITHPARAM_LIST_NAME);
 +        if (functionLibraryIdx >= 0) {
 +            IACursor cursor = ((AOrderedList) functionRecord.getValueByPos(functionLibraryIdx)).getCursor();
 +            while (cursor.next()) {
 +                ARecord field = (ARecord) cursor.get();
 +                final ARecordType fieldType = field.getType();
 +                final int keyIdx = fieldType.getFieldIndex(PROPERTIES_NAME_FIELD_NAME);
 +                String key = keyIdx >= 0 ? ((AString) field.getValueByPos(keyIdx)).getStringValue() : "";
 +                final int valueIdx = fieldType.getFieldIndex(PROPERTIES_VALUE_FIELD_NAME);
 +                String value = valueIdx >= 0 ? ((AString) field.getValueByPos(valueIdx)).getStringValue() : "";
 +                adaptorConfiguration.put(key, value);
 +            }
 +        }
 +        return adaptorConfiguration;
 +    }
 +
 +    private String getString(ARecord aRecord, String fieldName) {
 +        final ARecordType functionType = aRecord.getType();
 +        final int functionLibraryIdx = functionType.getFieldIndex(fieldName);
 +        return functionLibraryIdx >= 0 ? ((AString) aRecord.getValueByPos(functionLibraryIdx)).getStringValue() : null;
 +    }
 +
 +    private Boolean getBoolean(ARecord aRecord, String fieldName) {
 +        final ARecordType functionType = aRecord.getType();
 +        final int fieldIndex = functionType.getFieldIndex(fieldName);
 +        return fieldIndex >= 0 ? ((ABoolean) aRecord.getValueByPos(fieldIndex)).getBoolean() : null;
      }
  
      @Override
diff --cc asterixdb/asterix-metadata/src/main/java/org/apache/asterix/metadata/entitytupletranslators/IndexTupleTranslator.java
index 5d16f56,0c56c5e..79ce2a4
--- 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
@@@ -134,7 -141,7 +134,7 @@@ public class IndexTupleTranslator exten
          List<IAType> searchKeyType = new ArrayList<>(searchKey.size());
          while (fieldTypeCursor.next()) {
              String typeName = ((AString) fieldTypeCursor.get()).getStringValue();
-             IAType fieldType = BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, typeName, false);
 -            IAType fieldType = BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dvName, typeName);
++            IAType fieldType = BuiltinTypeMap.getTypeFromTypeName(metadataNode, txnId, dataverseName, typeName);
              searchKeyType.add(fieldType);
          }
          boolean isOverridingKeyTypes = !searchKeyType.isEmpty();