http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-app/src/test/resources/runtimets/results/types/any-object/any-object.2.adm
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/types/any-object/any-object.2.adm
 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/types/any-object/any-object.2.adm
index 504ba93..91df332 100644
--- 
a/asterixdb/asterix-app/src/test/resources/runtimets/results/types/any-object/any-object.2.adm
+++ 
b/asterixdb/asterix-app/src/test/resources/runtimets/results/types/any-object/any-object.2.adm
@@ -1,68 +1,69 @@
-{ "DataverseName": "Metadata", "DatatypeName": "AnyObject", "Derived": { 
"Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [  
] } }, "Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:44 EEST 
2016" }
-{ "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": "DatasetType", "FieldType": "string", "IsNullable": 
false }, { "FieldName": "GroupName", "FieldType": "string", "IsNullable": false 
}, { "FieldName": "CompactionPolicy", "FieldType": "string", "IsNullable": 
false }, { "FieldName": "CompactionPolicyProperties", "FieldType": 
"DatasetRecordType_CompactionPolicyProperties", "IsNullable": false }, { 
"FieldName": "InternalDetails", "FieldType": 
"DatasetRecordType_InternalDetails", "IsNullable": true }, { "FieldName": 
"ExternalDetails", "FieldType": "Datase
 tRecordType_ExternalDetails", "IsNullable": true }, { "FieldName": "Hints", 
"FieldType": "DatasetRecordType_Hints", "IsNullable": false }, { "FieldName": 
"Timestamp", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"DatasetId", "FieldType": "int32", "IsNullable": false }, { "FieldName": 
"PendingOp", "FieldType": "int32", "IsNullable": false } ] } }, "Timestamp": 
"Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_CompactionPolicyProperties", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_CompactionPolicyProperties_Item" }, "Timestamp": "Thu Sep 15 
14:05:43 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "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", "FieldType": "int32", "IsNullable": false } 
] } }, "Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_ExternalDetails_Properties", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_ExternalDetails_Properties_Item" }, "Timestamp": "Thu Sep 15 
14:05:43 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints", 
"Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": 
"DatasetRecordType_Hints_Item" }, "Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "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", "FieldType": 
"DatasetRecordType_InternalDetails_PrimaryKey", "IsNullable": false }, { 
"FieldName": "Autogenerated", "FieldType": "boolean", "IsNullable": false } ] } 
}, "Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PartitioningKey", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_InternalDetails_PartitioningKey_Item" }, "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PartitioningKey_Item", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": 
"Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PrimaryKey", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_InternalDetails_PrimaryKey_Item" }, "Timestamp": "Thu Sep 15 
14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PrimaryKey_Item", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": 
"Thu Sep 15 14:05:43 EEST 2016" }
-{ "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", "FieldType": "string", 
"IsNullable": false } ] } }, "Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "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 } ] } }, "Timestamp": "Thu Sep 15 
14:05:43 EEST 2016" }
-{ "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 }, { "FieldName": "OrderedList", "FieldType": "string", 
"IsNullable": true } ] } }, "Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"DatatypeRecordType_Derived_Record_Fields", "Derived": { "Tag": "ORDEREDLIST", 
"IsAnonymous": true, "OrderedList": 
"DatatypeRecordType_Derived_Record_Fields_Item" }, "Timestamp": "Thu Sep 15 
14:05:43 EEST 2016" }
-{ "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": 
"Thu Sep 15 14:05:43 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "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", "FieldType": "int64", 
"IsNullable": false }, { "FieldName": "FileModTime", "FieldType": "datetime", 
"IsNullable": false }, { "FieldName": "PendingOp", "FieldType": "int32", 
"IsNullable": false } ] } }, "Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "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 } ] } }, "Timestamp": 
"Thu Sep 15 14:05:44 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"FeedPolicyRecordType_Properties", "Derived": { "Tag": "UNORDEREDLIST", 
"IsAnonymous": true, "UnorderedList": "FeedPolicyRecordType_Properties_Item" }, 
"Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "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": "Thu Sep 15 
14:05:44 EEST 2016" }
-{ "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": "Function", "FieldType": "string", "IsNullable": true }, { 
"FieldName": "FeedType", "FieldType": "string", "IsNullable": false }, { 
"FieldName": "PrimaryTypeDetails", "FieldType": 
"FeedRecordType_PrimaryTypeDetails", "IsNullable": true }, { "FieldName": 
"SecondaryTypeDetails", "FieldType": "FeedRecordType_SecondaryTypeDetails", 
"IsNullable": true }, { "FieldName": "Timestamp", "FieldType": "string", 
"IsNullable": false } ] } }, "Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"FeedRecordType_PrimaryTypeDetails", "Derived": { "Tag": "RECORD", 
"IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": 
"AdapterName", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"AdapterConfiguration", "FieldType": 
"FeedRecordType_PrimaryTypeDetails_AdapterConfiguration", "IsNullable": false } 
] } }, "Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"FeedRecordType_PrimaryTypeDetails_AdapterConfiguration", "Derived": { "Tag": 
"UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": 
"DatasetRecordType_ExternalDetails_Properties_Item" }, "Timestamp": "Thu Sep 15 
14:05:44 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"FeedRecordType_SecondaryTypeDetails", "Derived": { "Tag": "RECORD", 
"IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [ { "FieldName": 
"SourceFeedName", "FieldType": "string", "IsNullable": false } ] } }, 
"Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "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": 
"ReturnType", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"Definition", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"Language", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"Kind", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Thu 
Sep 15 14:05:44 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Params", 
"Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" 
}, "Timestamp": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "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", "FieldType": "IndexRecordType_SearchKey", 
"IsNullable": false }, { "FieldName": "IsPrimary", "FieldType": "boolean", 
"IsNullable": false }, { "FieldName": "Timestamp", "FieldType": "string", 
"IsNullable": false }, { "FieldName": "PendingOp", "FieldType": "int32", 
"IsNullable": false } ] } }, "Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey", 
"Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"IndexRecordType_SearchKey_Item" }, "Timestamp": "Thu Sep 15 14:05:43 EEST 
2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"IndexRecordType_SearchKey_Item", "Derived": { "Tag": "ORDEREDLIST", 
"IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Thu Sep 15 
14:05:43 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:44 EEST 2016" }
-{ "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": 
"Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": 
"NodeGroupRecordType_NodeNames", "Derived": { "Tag": "UNORDEREDLIST", 
"IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Thu Sep 15 
14:05:43 EEST 2016" }
-{ "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": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "binary", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "boolean", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "circle", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "date", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "datetime", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "day-time-duration", 
"Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "double", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "duration", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "float", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "int16", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "int32", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "int64", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "int8", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "interval", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "line", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "missing", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "null", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "point", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "point3d", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "polygon", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "rectangle", "Timestamp": "Thu 
Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "shortwithouttypeinfo", 
"Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "string", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "time", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "uuid", "Timestamp": "Thu Sep 
15 14:05:43 EEST 2016" }
-{ "DataverseName": "Metadata", "DatatypeName": "year-month-duration", 
"Timestamp": "Thu Sep 15 14:05:43 EEST 2016" }
-{ "DataverseName": "test", "DatatypeName": "AnyObject", "Derived": { "Tag": 
"RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [  ] } }, 
"Timestamp": "Thu Sep 15 14:10:05 EEST 2016" }
-{ "DataverseName": "test", "DatatypeName": "kv1", "Derived": { "Tag": 
"RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { 
"FieldName": "id", "FieldType": "int32", "IsNullable": false }, { "FieldName": 
"val", "FieldType": "AnyObject", "IsNullable": false } ] } }, "Timestamp": "Thu 
Sep 15 14:10:05 EEST 2016" }
-{ "DataverseName": "test", "DatatypeName": "kv2", "Derived": { "Tag": 
"RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { 
"FieldName": "id", "FieldType": "int32", "IsNullable": false }, { "FieldName": 
"val", "FieldType": "AnyObject", "IsNullable": false } ] } }, "Timestamp": "Thu 
Sep 15 14:10:05 EEST 2016" }
\ No newline at end of file
+{ "DataverseName": "Metadata", "DatatypeName": "AnyObject", "Derived": { 
"Tag": "RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [  
] } }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 
2016" }
+{ "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": "DatasetType", "FieldType": "string", "IsNullable": 
false }, { "FieldName": "GroupName", "FieldType": "string", "IsNullable": false 
}, { "FieldName": "CompactionPolicy", "FieldType": "string", "IsNullable": 
false }, { "FieldName": "CompactionPolicyProperties", "FieldType": 
"DatasetRecordType_CompactionPolicyProperties", "IsNullable": false }, { 
"FieldName": "InternalDetails", "FieldType": 
"DatasetRecordType_InternalDetails", "IsNullable": true }, { "FieldName": 
"ExternalDetails", "FieldType": "Datase
 tRecordType_ExternalDetails", "IsNullable": true }, { "FieldName": "Hints", 
"FieldType": "DatasetRecordType_Hints", "IsNullable": false }, { "FieldName": 
"Timestamp", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"DatasetId", "FieldType": "int32", "IsNullable": false }, { "FieldName": 
"PendingOp", "FieldType": "int32", "IsNullable": false } ] } }, "Timestamp": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_CompactionPolicyProperties", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_CompactionPolicyProperties_Item" }, "Timestamp": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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", "FieldType": "int32", "IsNullable": false } 
] } }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_ExternalDetails_Properties", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_ExternalDetails_Properties_Item" }, "Timestamp": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "DatasetRecordType_Hints", 
"Derived": { "Tag": "UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": 
"DatasetRecordType_Hints_Item" }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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", "FieldType": 
"DatasetRecordType_InternalDetails_PrimaryKey", "IsNullable": false }, { 
"FieldName": "Autogenerated", "FieldType": "boolean", "IsNullable": false } ] } 
}, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PartitioningKey", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_InternalDetails_PartitioningKey_Item" }, "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PartitioningKey_Item", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PrimaryKey", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"DatasetRecordType_InternalDetails_PrimaryKey_Item" }, "Timestamp": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"DatasetRecordType_InternalDetails_PrimaryKey_Item", "Derived": { "Tag": 
"ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" }, "Timestamp": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "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", "FieldType": "string", 
"IsNullable": false } ] } }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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 } ] } }, "Timestamp": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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 }, { "FieldName": "OrderedList", "FieldType": "string", 
"IsNullable": true } ] } }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"DatatypeRecordType_Derived_Record_Fields", "Derived": { "Tag": "ORDEREDLIST", 
"IsAnonymous": true, "OrderedList": 
"DatatypeRecordType_Derived_Record_Fields_Item" }, "Timestamp": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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", "FieldType": "int64", 
"IsNullable": false }, { "FieldName": "FileModTime", "FieldType": "datetime", 
"IsNullable": false }, { "FieldName": "PendingOp", "FieldType": "int32", 
"IsNullable": false } ] } }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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": "AppliedFunctions", "FieldType": 
"FeedConnectionRecordType_AppliedFunctions", "IsNullable": false }, { 
"FieldName": "PolicyName", "FieldType": "string", "IsNullable": false } ] } }, 
"Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"FeedConnectionRecordType_AppliedFunctions", "Derived": { "Tag": 
"UNORDEREDLIST", "IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "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 } ] } }, "Timestamp": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"FeedPolicyRecordType_Properties", "Derived": { "Tag": "UNORDEREDLIST", 
"IsAnonymous": true, "UnorderedList": "FeedPolicyRecordType_Properties_Item" }, 
"Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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": "AdapterName", "FieldType": "string", "IsNullable": false }, { 
"FieldName": "AdapterConfiguration", "FieldType": 
"FeedRecordType_AdapterConfiguration", "IsNullable": false }, { "FieldName": 
"Timestamp", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"FeedRecordType_AdapterConfiguration", "Derived": { "Tag": "UNORDEREDLIST", 
"IsAnonymous": true, "UnorderedList": 
"FeedRecordType_AdapterConfiguration_Item" }, "Timestamp": "Mon Oct 10 14:53:55 
PDT 2016" }
+{ "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": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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": 
"ReturnType", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"Definition", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"Language", "FieldType": "string", "IsNullable": false }, { "FieldName": 
"Kind", "FieldType": "string", "IsNullable": false } ] } }, "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "FunctionRecordType_Params", 
"Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": "string" 
}, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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", "FieldType": "IndexRecordType_SearchKey", 
"IsNullable": false }, { "FieldName": "IsPrimary", "FieldType": "boolean", 
"IsNullable": false }, { "FieldName": "Timestamp", "FieldType": "string", 
"IsNullable": false }, { "FieldName": "PendingOp", "FieldType": "int32", 
"IsNullable": false } ] } }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "IndexRecordType_SearchKey", 
"Derived": { "Tag": "ORDEREDLIST", "IsAnonymous": true, "OrderedList": 
"IndexRecordType_SearchKey_Item" }, "Timestamp": "Mon Oct 10 14:53:55 PDT 2016" 
}
+{ "DataverseName": "Metadata", "DatatypeName": 
"IndexRecordType_SearchKey_Item", "Derived": { "Tag": "ORDEREDLIST", 
"IsAnonymous": true, "OrderedList": "string" }, "Timestamp": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "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": 
"Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": 
"NodeGroupRecordType_NodeNames", "Derived": { "Tag": "UNORDEREDLIST", 
"IsAnonymous": true, "UnorderedList": "string" }, "Timestamp": "Mon Oct 10 
14:53:55 PDT 2016" }
+{ "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": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "binary", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "boolean", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "circle", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "date", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "datetime", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "day-time-duration", 
"Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "double", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "duration", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "float", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "int16", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "int32", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "int64", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "int8", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "interval", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "line", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "missing", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "null", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "point", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "point3d", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "polygon", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "rectangle", "Timestamp": "Mon 
Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "shortwithouttypeinfo", 
"Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "string", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "time", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "uuid", "Timestamp": "Mon Oct 
10 14:53:55 PDT 2016" }
+{ "DataverseName": "Metadata", "DatatypeName": "year-month-duration", 
"Timestamp": "Mon Oct 10 14:53:55 PDT 2016" }
+{ "DataverseName": "test", "DatatypeName": "AnyObject", "Derived": { "Tag": 
"RECORD", "IsAnonymous": true, "Record": { "IsOpen": true, "Fields": [  ] } }, 
"Timestamp": "Mon Oct 10 15:00:08 PDT 2016" }
+{ "DataverseName": "test", "DatatypeName": "kv1", "Derived": { "Tag": 
"RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { 
"FieldName": "id", "FieldType": "int32", "IsNullable": false }, { "FieldName": 
"val", "FieldType": "AnyObject", "IsNullable": false } ] } }, "Timestamp": "Mon 
Oct 10 15:00:08 PDT 2016" }
+{ "DataverseName": "test", "DatatypeName": "kv2", "Derived": { "Tag": 
"RECORD", "IsAnonymous": false, "Record": { "IsOpen": true, "Fields": [ { 
"FieldName": "id", "FieldType": "int32", "IsNullable": false }, { "FieldName": 
"val", "FieldType": "AnyObject", "IsNullable": false } ] } }, "Timestamp": "Mon 
Oct 10 15:00:08 PDT 2016" }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml 
b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
index e4af727..f9242f6 100644
--- a/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
+++ b/asterixdb/asterix-app/src/test/resources/runtimets/testsuite.xml
@@ -167,6 +167,11 @@
       </compilation-unit>
     </test-case>
     <test-case FilePath="feeds">
+      <compilation-unit name="connect-feed">
+        <output-dir compare="Text">connect-feed</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="feeds">
       <compilation-unit name="feed-with-external-parser">
         <output-dir compare="Text">feed-with-external-parser</output-dir>
       </compilation-unit>
@@ -271,6 +276,23 @@
         <output-dir compare="Text">issue_230_feeds</output-dir>
       </compilation-unit>
     </test-case>
+    <test-case FilePath="feeds">
+      <compilation-unit name="start-feed">
+        <output-dir compare="Text">start-feed</output-dir>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="feeds">
+      <compilation-unit name="start-started-feed">
+        <output-dir compare="Text">start-started-feed</output-dir>
+        <expected-error>Feed TweetFeed is started already.</expected-error>
+      </compilation-unit>
+    </test-case>
+    <test-case FilePath="feeds">
+      <compilation-unit name="stop-stopped-feed">
+        <output-dir compare="Text">stop-stopped-feed</output-dir>
+        <expected-error>Feed TweetFeed is not started.</expected-error>
+      </compilation-unit>
+    </test-case>
   </test-group>
   <test-group name="upsert">
     <test-case FilePath="upsert">

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IDataset.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IDataset.java
 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IDataset.java
new file mode 100644
index 0000000..311400f
--- /dev/null
+++ 
b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/metadata/IDataset.java
@@ -0,0 +1,23 @@
+/*
+ * 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.common.metadata;
+
+public interface IDataset {
+
+}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/client/FileFeedSocketAdapterClient.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/client/FileFeedSocketAdapterClient.java
 
b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/client/FileFeedSocketAdapterClient.java
index 765dc71..852173c 100644
--- 
a/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/client/FileFeedSocketAdapterClient.java
+++ 
b/asterixdb/asterix-common/src/test/java/org/apache/asterix/test/client/FileFeedSocketAdapterClient.java
@@ -25,6 +25,8 @@ import java.io.OutputStream;
 import java.net.Socket;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 public class FileFeedSocketAdapterClient implements ITestClient {
     private final int port;
@@ -35,6 +37,7 @@ public class FileFeedSocketAdapterClient implements 
ITestClient {
     private int batchSize;
     private int maxCount;
     private OutputStream out = null;
+    static final Logger LOGGER = 
Logger.getLogger(FileFeedSocketAdapterClient.class.getName());
 
     // expected args: url, source-file-path, max-count, batch-size, wait
     public FileFeedSocketAdapterClient(int port, String[] args) throws 
Exception {
@@ -51,12 +54,15 @@ public class FileFeedSocketAdapterClient implements 
ITestClient {
     }
 
     @Override
-    public void start() {
+    public void start() throws Exception {
+        synchronized (this) {
+            wait(wait);
+        }
         try {
             socket = new Socket(url, port);
         } catch (IOException e) {
-            System.err.println("Problem in creating socket against host " + 
url + " on the port " + port);
-            e.printStackTrace();
+            LOGGER.log(Level.WARNING, "Problem in creating socket against host 
" + url + " on the port " + port, e);
+            throw e;
         }
 
         int recordCount = 0;
@@ -72,6 +78,7 @@ public class FileFeedSocketAdapterClient implements 
ITestClient {
                 }
                 out.write(b.array(), 0, b.limit());
                 recordCount++;
+                LOGGER.log(Level.FINE, "One record filed into feed");
                 if (recordCount == maxCount) {
                     break;
                 }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/FeedOperationCounter.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/FeedOperationCounter.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/FeedOperationCounter.java
deleted file mode 100644
index dac8fbb..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/FeedOperationCounter.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * 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.external.feed.api;
-
-import org.apache.asterix.active.ActiveJob;
-
-public class FeedOperationCounter {
-    private ActiveJob feedJobInfo;
-    private int partitionCount;
-    private boolean failedIngestion = false;
-
-    public FeedOperationCounter(int partitionCount) {
-        this.partitionCount = partitionCount;
-    }
-
-    public int getPartitionCount() {
-        return partitionCount;
-    }
-
-    public void setPartitionCount(int partitionCount) {
-        this.partitionCount = partitionCount;
-    }
-
-    public boolean isFailedIngestion() {
-        return failedIngestion;
-    }
-
-    public void setFailedIngestion(boolean failedIngestion) {
-        this.failedIngestion = failedIngestion;
-    }
-
-    public ActiveJob getFeedJobInfo() {
-        return feedJobInfo;
-    }
-
-    public void setFeedJobInfo(ActiveJob feedJobInfo) {
-        this.feedJobInfo = feedJobInfo;
-    }
-
-    public int decrementAndGet() {
-        return --partitionCount;
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IActiveLifecycleEventSubscriber.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IActiveLifecycleEventSubscriber.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IActiveLifecycleEventSubscriber.java
deleted file mode 100644
index 1d8c433..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IActiveLifecycleEventSubscriber.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * 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.external.feed.api;
-
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public interface IActiveLifecycleEventSubscriber {
-
-    public enum ActiveLifecycleEvent {
-        FEED_INTAKE_STARTED,
-        FEED_COLLECT_STARTED,
-        FEED_INTAKE_FAILURE,
-        FEED_COLLECT_FAILURE,
-        FEED_INTAKE_ENDED,
-        FEED_COLLECT_ENDED,
-        ACTIVE_JOB_STARTED,
-        ACTIVE_JOB_ENDED,
-        ACTIVE_JOB_FAILED
-    }
-
-    public void assertEvent(ActiveLifecycleEvent event) throws 
HyracksDataException, InterruptedException;
-
-    public void handleEvent(ActiveLifecycleEvent event);
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeed.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeed.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeed.java
index ce0b3d6..f5c25f7 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeed.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeed.java
@@ -20,9 +20,7 @@ package org.apache.asterix.external.feed.api;
 
 import java.io.Serializable;
 import java.util.Map;
-
 import org.apache.asterix.active.EntityId;
-import org.apache.asterix.common.functions.FunctionSignature;
 
 public interface IFeed extends Serializable {
 
@@ -38,10 +36,6 @@ public interface IFeed extends Serializable {
         SECONDARY
     }
 
-    public FeedType getFeedType();
-
-    public FunctionSignature getAppliedFunction();
-
     public String getFeedName();
 
     public String getDataverseName();

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedJoint.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedJoint.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedJoint.java
deleted file mode 100644
index 548be4a..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedJoint.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- * 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.external.feed.api;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.apache.asterix.active.EntityId;
-import org.apache.asterix.external.feed.management.FeedConnectionId;
-import org.apache.asterix.external.feed.management.FeedConnectionRequest;
-import org.apache.asterix.external.feed.management.FeedJointKey;
-import org.apache.asterix.external.util.FeedUtils.FeedRuntimeType;
-
-public interface IFeedJoint extends Serializable {
-
-    public enum FeedJointType {
-        /** Feed Joint is located at the intake stage of a primary feed **/
-        INTAKE,
-
-        /** Feed Joint is located at the compute stage of a primary/secondary 
feed **/
-        COMPUTE
-    }
-
-    public enum State {
-        /** Initial state of a feed joint post creation but prior to 
scheduling of corresponding Hyracks job. **/
-        CREATED,
-
-        /** State acquired post creation of Hyracks job and known physical 
locations of the joint **/
-        INITIALIZED,
-
-        /** State acquired post starting of Hyracks job at which point, data 
begins to flow through the joint **/
-        ACTIVE
-    }
-
-    /**
-     * @return the {@link State} associated with the FeedJoint
-     */
-    public State getState();
-
-    /**
-     * @return the {@link FeedJointType} associated with the FeedJoint
-     */
-    public FeedJointType getType();
-
-    /**
-     * @return the list of data receivers that are
-     *         receiving the data flowing through this FeedJoint
-     */
-    public List<FeedConnectionId> getReceivers();
-
-    /**
-     * @return the list of pending subscription request {@link 
FeedConnectionRequest} submitted for data flowing through the FeedJoint
-     */
-    public List<FeedConnectionRequest> getConnectionRequests();
-
-    /**
-     * @return the subscription location {@link ConnectionLocation} associated 
with the FeedJoint
-     */
-    public FeedRuntimeType getConnectionLocation();
-
-    /**
-     * @return the unique {@link FeedJointKey} associated with the FeedJoint
-     */
-    public FeedJointKey getFeedJointKey();
-
-    /**
-     * Returns the feed subscriber {@link FeedSubscriber} corresponding to a 
given feed connection id.
-     *
-     * @param feedConnectionId
-     *            the unique id of a feed connection
-     * @return an instance of feedConnectionId {@link FeedConnectionId}
-     */
-    public FeedConnectionId getReceiver(FeedConnectionId feedConnectionId);
-
-    /**
-     * @param active
-     */
-    public void setState(State active);
-
-    /**
-     * Remove the subscriber from the set of registered subscribers to the 
FeedJoint
-     *
-     * @param connectionId
-     *            the connectionId that needs to be removed
-     */
-    public void removeReceiver(FeedConnectionId connectionId);
-
-    public EntityId getOwnerFeedId();
-
-    /**
-     * Add a feed connectionId to the set of registered subscribers
-     *
-     * @param connectionId
-     */
-    public void addReceiver(FeedConnectionId connectionId);
-
-    /**
-     * Add a feed subscription request {@link FeedConnectionRequest} for the 
FeedJoint
-     *
-     * @param request
-     */
-    public void addConnectionRequest(FeedConnectionRequest request);
-
-    public FeedConnectionId getProvider();
-
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWork.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWork.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWork.java
deleted file mode 100644
index 2f5379b..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWork.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * 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.external.feed.api;
-
-/**
- * Represents a feed management task. The task is executed asynchronously.
- */
-public interface IFeedWork {
-
-    public Runnable getRunnable();
-
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkEventListener.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkEventListener.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkEventListener.java
deleted file mode 100644
index e94ca46..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkEventListener.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.external.feed.api;
-
-/**
- * Provides a callback mechanism that in invoked for events related to
- * the execution of a feed management task.
- */
-public interface IFeedWorkEventListener {
-
-    /**
-     * A call back that is invoked after successful completion of a feed
-     * management task.
-     */
-    public void workCompleted(IFeedWork work);
-
-    /**
-     * A call back that is invokved after a failed execution of a feed
-     * management task.
-     *
-     * @param e
-     *            exception encountered during execution of the task.
-     */
-    public void workFailed(IFeedWork work, Exception e);
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkManager.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkManager.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkManager.java
deleted file mode 100644
index 37661b7..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/IFeedWorkManager.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * 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.external.feed.api;
-
-public interface IFeedWorkManager {
-
-    public void submitWork(IFeedWork work, IFeedWorkEventListener listener);
-
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/ISubscribableRuntime.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/ISubscribableRuntime.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/ISubscribableRuntime.java
deleted file mode 100644
index 397f797..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/api/ISubscribableRuntime.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * 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.external.feed.api;
-
-import org.apache.asterix.active.IActiveRuntime;
-import org.apache.asterix.external.feed.runtime.CollectionRuntime;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-/**
- * Represent a feed runtime whose output can be routed along other parallel 
path(s).
- */
-public interface ISubscribableRuntime extends IActiveRuntime {
-
-    /**
-     * @param collectionRuntime
-     * @throws Exception
-     */
-    public void subscribe(CollectionRuntime collectionRuntime) throws 
HyracksDataException;
-
-    /**
-     * @param collectionRuntime
-     * @throws InterruptedException
-     * @throws Exception
-     */
-    public void unsubscribe(CollectionRuntime collectionRuntime) throws 
HyracksDataException, InterruptedException;
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/ActiveLifecycleEventSubscriber.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/ActiveLifecycleEventSubscriber.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/ActiveLifecycleEventSubscriber.java
deleted file mode 100644
index d0eebde..0000000
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/ActiveLifecycleEventSubscriber.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * 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.external.feed.management;
-
-import java.util.Iterator;
-import java.util.concurrent.LinkedBlockingQueue;
-
-import org.apache.asterix.common.exceptions.ErrorCode;
-import org.apache.asterix.common.exceptions.RuntimeDataException;
-import org.apache.asterix.external.feed.api.IActiveLifecycleEventSubscriber;
-import org.apache.hyracks.api.exceptions.HyracksDataException;
-
-public class ActiveLifecycleEventSubscriber implements 
IActiveLifecycleEventSubscriber {
-
-    private LinkedBlockingQueue<ActiveLifecycleEvent> inbox;
-
-    public ActiveLifecycleEventSubscriber() {
-        this.inbox = new LinkedBlockingQueue<>();
-    }
-
-    @Override
-    public void handleEvent(ActiveLifecycleEvent event) {
-        inbox.add(event);
-    }
-
-    @Override
-    public void assertEvent(ActiveLifecycleEvent event) throws 
HyracksDataException, InterruptedException {
-        boolean eventOccurred = false;
-        ActiveLifecycleEvent e;
-        Iterator<ActiveLifecycleEvent> eventsSoFar = inbox.iterator();
-        while (eventsSoFar.hasNext()) {
-            e = eventsSoFar.next();
-            assertNoFailure(e);
-            eventOccurred = e.equals(event);
-        }
-
-        while (!eventOccurred) {
-            e = inbox.take();
-            eventOccurred = e.equals(event);
-            if (!eventOccurred) {
-                assertNoFailure(e);
-            }
-        }
-    }
-
-    private void assertNoFailure(ActiveLifecycleEvent e) throws 
HyracksDataException {
-        if (e.equals(ActiveLifecycleEvent.FEED_INTAKE_FAILURE) || 
e.equals(ActiveLifecycleEvent.FEED_COLLECT_FAILURE)
-                || e.equals(ActiveLifecycleEvent.ACTIVE_JOB_FAILED)) {
-            throw new RuntimeDataException(
-                    
ErrorCode.FEED_MANAGEMENT_ACTIVE_LIFE_CYCLE_EVENT_SUBSCRIBER_ACTIVE_JOB_FAILURE);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionId.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionId.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionId.java
index e2ab823..47efd1d 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionId.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionId.java
@@ -29,7 +29,7 @@ import org.apache.asterix.active.EntityId;
 public class FeedConnectionId implements Serializable {
 
     private static final long serialVersionUID = 1L;
-    public static final String FEED_EXTENSION_NAME = "Feed";
+    private static final String FEED_EXTENSION_NAME = "Feed";
 
     private final EntityId feedId; // Dataverse - Feed
     private final String datasetName; // Dataset <Dataset is empty in case of 
no target dataset>

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/fff200ca/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionRequest.java
----------------------------------------------------------------------
diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionRequest.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionRequest.java
index 1106160..6e35841 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionRequest.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/feed/management/FeedConnectionRequest.java
@@ -23,6 +23,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.asterix.active.EntityId;
+import org.apache.asterix.common.functions.FunctionSignature;
 import org.apache.asterix.external.util.FeedUtils.FeedRuntimeType;
 import org.apache.commons.lang3.StringUtils;
 
@@ -32,67 +33,23 @@ import org.apache.commons.lang3.StringUtils;
 public class FeedConnectionRequest implements Serializable {
 
     private static final long serialVersionUID = 1L;
-
-    public enum ConnectionStatus {
-        /** initial state upon creating a connection request **/
-        INITIALIZED,
-
-        /** connection establish; feed is receiving data **/
-        ACTIVE,
-
-        /** connection removed; feed is not receiving data **/
-        INACTIVE,
-
-        /** connection request failed **/
-        FAILED
-    }
-
-    /** Feed joint on the feed pipeline that serves as the source for this 
subscription **/
-    private final FeedJointKey feedJointKey;
-
     /** Location in the source feed pipeline from where feed tuples are 
received. **/
     private final FeedRuntimeType connectionLocation;
-
     /** List of functions that need to be applied in sequence after the data 
hand-off at the source feedPointKey. **/
-    private final List<String> functionsToApply;
-
-    /** Status associated with the subscription. */
-    private ConnectionStatus connectionStatus;
-
+    private final List<FunctionSignature> functionsToApply;
     /** Name of the policy that governs feed ingestion **/
     private final String policy;
-
-    /** Policy associated with a feed connection **/
-    private final Map<String, String> policyParameters;
-
     /** Target dataset associated with the connection request **/
     private final String targetDataset;
-
     private final EntityId receivingFeedId;
 
-    public FeedConnectionRequest(FeedJointKey feedPointKey, FeedRuntimeType 
connectionLocation,
-            List<String> functionsToApply, String targetDataset, String 
policy, Map<String, String> policyParameters,
-            EntityId receivingFeedId) {
-        this.feedJointKey = feedPointKey;
+    public FeedConnectionRequest(FeedRuntimeType connectionLocation, 
List<FunctionSignature> functionsToApply,
+            String targetDataset, String policy, EntityId receivingFeedId) {
         this.connectionLocation = connectionLocation;
         this.functionsToApply = functionsToApply;
         this.targetDataset = targetDataset;
         this.policy = policy;
-        this.policyParameters = policyParameters;
         this.receivingFeedId = receivingFeedId;
-        this.connectionStatus = ConnectionStatus.INITIALIZED;
-    }
-
-    public FeedJointKey getFeedJointKey() {
-        return feedJointKey;
-    }
-
-    public ConnectionStatus getConnectionStatus() {
-        return connectionStatus;
-    }
-
-    public void setSubscriptionStatus(ConnectionStatus connectionStatus) {
-        this.connectionStatus = connectionStatus;
     }
 
     public String getPolicy() {
@@ -111,17 +68,13 @@ public class FeedConnectionRequest implements Serializable 
{
         return receivingFeedId;
     }
 
-    public Map<String, String> getPolicyParameters() {
-        return policyParameters;
-    }
-
-    public List<String> getFunctionsToApply() {
+    public List<FunctionSignature> getFunctionsToApply() {
         return functionsToApply;
     }
 
     @Override
     public String toString() {
-        return "Feed Connection Request " + feedJointKey + " [" + 
connectionLocation + "]" + " Apply ("
+        return "Feed Connection Request " + receivingFeedId + " [" + 
connectionLocation + "]" + " Apply ("
                 + StringUtils.join(functionsToApply, ",") + ")";
     }
 

Reply via email to