You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "Ali Alsuliman (Code Review)" <do...@asterixdb.incubator.apache.org> on 2019/02/26 06:12:21 UTC
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Ali Alsuliman has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/3228
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
[NO ISSUE][OTH] Make IAType IJsonSerializable
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
This change is to make Asterix types IJsonSerializable.
Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
---
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
9 files changed, 374 insertions(+), 3 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/28/3228/1
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
index d4c217b..11d1b26 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
@@ -59,6 +59,11 @@
import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
import org.apache.asterix.om.pointables.nonvisitor.AListPointable;
import org.apache.asterix.om.pointables.nonvisitor.ARecordPointable;
+import org.apache.asterix.om.types.AOrderedListType;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.asterix.om.types.AUnionType;
+import org.apache.asterix.om.types.AUnorderedListType;
+import org.apache.asterix.om.types.BuiltinType;
import org.apache.asterix.runtime.compression.CompressionManager;
import org.apache.asterix.runtime.utils.RuntimeComponentsProvider;
import org.apache.asterix.transaction.management.opcallbacks.PrimaryIndexOperationTrackerFactory;
@@ -250,6 +255,13 @@
REGISTERED_CLASSES.put("UTF8WordTokenFactory", UTF8WordTokenFactory.class);
REGISTERED_CLASSES.put("RTreePolicyType", RTreePolicyType.class);
+ // IAType
+ REGISTERED_CLASSES.put("BuiltinType", BuiltinType.class);
+ REGISTERED_CLASSES.put("AOrderedListType", AOrderedListType.class);
+ REGISTERED_CLASSES.put("ARecordType", ARecordType.class);
+ REGISTERED_CLASSES.put("AUnionType", AUnionType.class);
+ REGISTERED_CLASSES.put("AUnorderedListType", AUnorderedListType.class);
+
//ICompressorDecompressorFactory
CompressionManager.registerCompressorDecompressorsFactoryClasses(REGISTERED_CLASSES);
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
index 7cb383f..097b4a7 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
@@ -19,7 +19,11 @@
package org.apache.asterix.om.types;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -84,4 +88,14 @@
type.set("item-type", itemType.toJSON());
return type;
}
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ return convertToJson(registry, getClass(), serialVersionUID);
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ return convertToObject(registry, json, true);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
index 1c04986..b91b4ae 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
@@ -33,7 +33,12 @@
import org.apache.asterix.om.base.IAObject;
import org.apache.asterix.om.utils.NonTaggedFormatUtil;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -47,6 +52,11 @@
public class ARecordType extends AbstractComplexType {
private static final long serialVersionUID = 1L;
+ private static final JavaType SET = OBJECT_MAPPER.getTypeFactory().constructCollectionType(Set.class, String.class);
+ private static final String IS_OPEN = "isOpen";
+ private static final String FIELD_NAMES = "fieldNames";
+ private static final String FIELD_TYPES = "fieldTypes";
+ private static final String ADDITIONAL_FIELDS = "additionalFieldNames";
private final String[] fieldNames;
private final IAType[] fieldTypes;
private final Map<String, Integer> fieldNameToIndexMap = new HashMap<>();
@@ -372,6 +382,35 @@
return type;
}
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ final ObjectNode jsonObject = registry.getClassIdentifier(getClass(), serialVersionUID);
+ addToJson(jsonObject);
+ jsonObject.put(IS_OPEN, isOpen);
+ jsonObject.putPOJO(FIELD_NAMES, fieldNames);
+ jsonObject.putPOJO(ADDITIONAL_FIELDS, allPossibleAdditionalFieldNames);
+ ArrayNode fieldTypesArray = OBJECT_MAPPER.createArrayNode();
+ for (int i = 0; i < fieldTypes.length; i++) {
+ fieldTypesArray.add(fieldTypes[i].toJson(registry));
+ }
+ jsonObject.set(FIELD_TYPES, fieldTypesArray);
+ return jsonObject;
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ String typeName = json.get(TYPE_NAME_FIELD).asText();
+ boolean isOpen = json.get(IS_OPEN).asBoolean();
+ String[] fieldNames = OBJECT_MAPPER.convertValue(json.get(FIELD_NAMES), String[].class);
+ Set<String> additionalFields = OBJECT_MAPPER.convertValue(json.get(ADDITIONAL_FIELDS), SET);
+ ArrayNode fieldTypesNode = (ArrayNode) json.get(FIELD_TYPES);
+ IAType[] fieldTypes = new IAType[fieldTypesNode.size()];
+ for (int i = 0; i < fieldTypesNode.size(); i++) {
+ fieldTypes[i] = (IAType) registry.deserialize(fieldTypesNode.get(i));
+ }
+ return new ARecordType(typeName, fieldNames, fieldTypes, isOpen, additionalFields);
+ }
+
public List<IAType> getFieldTypes(List<List<String>> fields) throws AlgebricksException {
List<IAType> typeList = new ArrayList<>();
for (List<String> field : fields) {
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
index f8ae7f8..7ef18d4 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
@@ -23,7 +23,11 @@
import java.util.List;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -32,6 +36,7 @@
private static final long serialVersionUID = 1L;
private static final int OPTIONAL_TYPE_INDEX_IN_UNION_LIST = 0;
+ private static final String UNION_LIST_FIELD = "unionList";
private final List<IAType> unionList;
public AUnionType(List<IAType> unionList, String typeName) {
@@ -223,4 +228,27 @@
type.set("fields", fields);
return type;
}
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ final ObjectNode jsonObject = registry.getClassIdentifier(getClass(), serialVersionUID);
+ addToJson(jsonObject);
+ ArrayNode fieldTypesArray = OBJECT_MAPPER.createArrayNode();
+ for (int i = 0; i < unionList.size(); i++) {
+ fieldTypesArray.add(unionList.get(i).toJson(registry));
+ }
+ jsonObject.set(UNION_LIST_FIELD, fieldTypesArray);
+ return jsonObject;
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ String typeName = json.get(TYPE_NAME_FIELD).asText();
+ ArrayNode unionListJson = (ArrayNode) json.get(UNION_LIST_FIELD);
+ List<IAType> unionList = new ArrayList<>();
+ for (int i = 0; i < unionListJson.size(); i++) {
+ unionList.add((IAType) registry.deserialize(unionListJson.get(i)));
+ }
+ return new AUnionType(unionList, typeName);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
index 8d088f7..0b458dd 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
@@ -19,7 +19,11 @@
package org.apache.asterix.om.types;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -84,4 +88,14 @@
type.set("item-type", itemType.toJSON());
return type;
}
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ return convertToJson(registry, getClass(), serialVersionUID);
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ return convertToObject(registry, json, false);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
index f6f10f4..1b2b8fe 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
@@ -18,10 +18,17 @@
*/
package org.apache.asterix.om.types;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
public abstract class AbstractCollectionType extends AbstractComplexType {
private static final long serialVersionUID = 1L;
-
+ private static final String ITEM_TYPE_FIELD = "itemType";
protected IAType itemType;
AbstractCollectionType(IAType itemType, String typeName) {
@@ -59,4 +66,20 @@
public boolean containsType(IAType type) {
return isTyped() && itemType.getTypeName().equals(type.getTypeName());
}
+
+ protected JsonNode convertToJson(IPersistedResourceRegistry registry, Class<? extends IJsonSerializable> clazz,
+ long version) throws HyracksDataException {
+ final ObjectNode jsonObject = registry.getClassIdentifier(clazz, version);
+ addToJson(jsonObject);
+ jsonObject.set(ITEM_TYPE_FIELD, itemType.toJson(registry));
+ return jsonObject;
+ }
+
+ protected static IJsonSerializable convertToObject(IPersistedResourceRegistry registry, JsonNode json,
+ boolean ordered) throws HyracksDataException {
+ String typeName = json.get(TYPE_NAME_FIELD).asText();
+ JsonNode itemTypeJson = json.get(ITEM_TYPE_FIELD);
+ IAType itemType = (IAType) registry.deserialize(itemTypeJson);
+ return ordered ? new AOrderedListType(itemType, typeName) : new AUnorderedListType(itemType, typeName);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
index f8b1d60..16f83f5 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
@@ -20,9 +20,14 @@
import org.apache.asterix.om.base.IAObject;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
public abstract class AbstractComplexType implements IAType {
private static final long serialVersionUID = 1L;
+ protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+ protected static final String TYPE_NAME_FIELD = "typeName";
protected String typeName;
public AbstractComplexType(String typeName) {
@@ -45,5 +50,9 @@
return object instanceof IAObject && deepEqual((IAObject) object);
}
+ protected void addToJson(final ObjectNode json) {
+ json.put(TYPE_NAME_FIELD, typeName);
+ }
+
public abstract boolean containsType(IAType type);
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
index 2e48127..4fc146f 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
@@ -18,14 +18,20 @@
*/
package org.apache.asterix.om.types;
-import org.apache.asterix.om.base.IAObject;
+import static org.apache.asterix.om.types.ATypeTag.VALUE_TYPE_MAPPING;
+import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public abstract class BuiltinType implements IAType {
private static final long serialVersionUID = 1L;
+ private static final String TAG_FIELD = "tag";
public abstract static class LowerCaseConstructorType extends BuiltinType {
private static final long serialVersionUID = 1L;
@@ -62,6 +68,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -87,6 +98,11 @@
@Override
public String getTypeName() {
return "int8";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -118,6 +134,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -143,6 +164,11 @@
@Override
public String getTypeName() {
return "int32";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -174,6 +200,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -199,6 +230,11 @@
@Override
public String getTypeName() {
return "binary";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -230,6 +266,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -255,6 +296,11 @@
@Override
public String getTypeName() {
return "double";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -286,6 +332,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -311,6 +362,11 @@
@Override
public String getTypeName() {
return "missing";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -342,6 +398,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -367,6 +428,11 @@
@Override
public String getTypeName() {
return "boolean";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -398,6 +464,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -423,6 +494,11 @@
@Override
public String getTypeName() {
return "date";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -454,6 +530,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -479,6 +560,11 @@
@Override
public String getTypeName() {
return "duration";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -510,6 +596,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -535,6 +626,11 @@
@Override
public String getTypeName() {
return "day-time-duration";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -566,6 +662,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
return null;
}
@@ -588,6 +689,11 @@
@Override
public String getTypeName() {
return "point";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -619,6 +725,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -644,6 +755,11 @@
@Override
public String getTypeName() {
return "line";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -675,6 +791,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -703,6 +824,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectNode type = new ObjectMapper().createObjectNode();
type.put("type", "AGEOMETRY");
@@ -727,6 +853,11 @@
@Override
public String getTypeName() {
return "circle";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -758,6 +889,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -786,6 +922,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -810,6 +951,11 @@
@Override
public String getTypeName() {
return "uuid";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -846,6 +992,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -876,6 +1027,11 @@
@Override
public String getConstructor() {
return null;
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -925,4 +1081,79 @@
return getType().getTypeTag().serialize();
}
+ private static JsonNode convertToJson(IPersistedResourceRegistry registry, short tag, long version) {
+ ObjectNode jsonNode = registry.getClassIdentifier(BuiltinType.class, version);
+ jsonNode.put(TAG_FIELD, tag);
+ return jsonNode;
+ }
+
+ @SuppressWarnings("squid:S1172") // unused parameter
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json) {
+ byte tag = (byte) json.get(TAG_FIELD).shortValue();
+ ATypeTag typeTag = VALUE_TYPE_MAPPING[tag];
+ switch (typeTag) {
+ case TYPE:
+ return ALL_TYPE;
+ case TINYINT:
+ return AINT8;
+ case SMALLINT:
+ return AINT16;
+ case INTEGER:
+ return AINT32;
+ case BIGINT:
+ return AINT64;
+ case FLOAT:
+ return AFLOAT;
+ case DOUBLE:
+ return ADOUBLE;
+ case STRING:
+ return ASTRING;
+ case BINARY:
+ return ABINARY;
+ case MISSING:
+ return AMISSING;
+ case NULL:
+ return ANULL;
+ case BOOLEAN:
+ return ABOOLEAN;
+ case TIME:
+ return ATIME;
+ case DATE:
+ return ADATE;
+ case DATETIME:
+ return ADATETIME;
+ case DURATION:
+ return ADURATION;
+ case YEARMONTHDURATION:
+ return AYEARMONTHDURATION;
+ case DAYTIMEDURATION:
+ return ADAYTIMEDURATION;
+ case INTERVAL:
+ return AINTERVAL;
+ case POINT:
+ return APOINT;
+ case POINT3D:
+ return APOINT3D;
+ case LINE:
+ return ALINE;
+ case POLYGON:
+ return APOLYGON;
+ case GEOMETRY:
+ return AGEOMETRY;
+ case CIRCLE:
+ return ACIRCLE;
+ case RECTANGLE:
+ return ARECTANGLE;
+ case BITARRAY:
+ return ABITARRAY;
+ case UUID:
+ return AUUID;
+ case ANY:
+ return ANY;
+ case SHORTWITHOUTTYPEINFO:
+ return SHORTWITHOUTTYPEINFO;
+ default:
+ throw new IllegalStateException();
+ }
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
index aa9ce99..0e6cc4f 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
@@ -21,8 +21,9 @@
import java.io.Serializable;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.io.IJsonSerializable;
-public interface IAType extends IAObject, Serializable {
+public interface IAType extends IAObject, Serializable, IJsonSerializable {
public ATypeTag getTypeTag();
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Ali Alsuliman (Code Review)" <do...@asterixdb.incubator.apache.org>.
Ali Alsuliman has submitted this change and it was merged.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
[NO ISSUE][OTH] Make IAType IJsonSerializable
- user model changes: no
- storage format changes: no
- interface changes: no
Details:
This change is to make Asterix types IJsonSerializable.
Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Reviewed-on: https://asterix-gerrit.ics.uci.edu/3228
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Contrib: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Murtadha Hubail <mh...@apache.org>
---
M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
9 files changed, 374 insertions(+), 3 deletions(-)
Approvals:
Jenkins: Verified; ; Verified
Murtadha Hubail: Looks good to me, approved
Objections:
Anon. E. Moose #1000171: Violations found
Jenkins: Violations found
diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
index d4c217b..11d1b26 100644
--- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
+++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/io/PersistedResourceRegistry.java
@@ -59,6 +59,11 @@
import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
import org.apache.asterix.om.pointables.nonvisitor.AListPointable;
import org.apache.asterix.om.pointables.nonvisitor.ARecordPointable;
+import org.apache.asterix.om.types.AOrderedListType;
+import org.apache.asterix.om.types.ARecordType;
+import org.apache.asterix.om.types.AUnionType;
+import org.apache.asterix.om.types.AUnorderedListType;
+import org.apache.asterix.om.types.BuiltinType;
import org.apache.asterix.runtime.compression.CompressionManager;
import org.apache.asterix.runtime.utils.RuntimeComponentsProvider;
import org.apache.asterix.transaction.management.opcallbacks.PrimaryIndexOperationTrackerFactory;
@@ -250,6 +255,13 @@
REGISTERED_CLASSES.put("UTF8WordTokenFactory", UTF8WordTokenFactory.class);
REGISTERED_CLASSES.put("RTreePolicyType", RTreePolicyType.class);
+ // IAType
+ REGISTERED_CLASSES.put("BuiltinType", BuiltinType.class);
+ REGISTERED_CLASSES.put("AOrderedListType", AOrderedListType.class);
+ REGISTERED_CLASSES.put("ARecordType", ARecordType.class);
+ REGISTERED_CLASSES.put("AUnionType", AUnionType.class);
+ REGISTERED_CLASSES.put("AUnorderedListType", AUnorderedListType.class);
+
//ICompressorDecompressorFactory
CompressionManager.registerCompressorDecompressorsFactoryClasses(REGISTERED_CLASSES);
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
index 7cb383f..097b4a7 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AOrderedListType.java
@@ -19,7 +19,11 @@
package org.apache.asterix.om.types;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -84,4 +88,14 @@
type.set("item-type", itemType.toJSON());
return type;
}
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ return convertToJson(registry, getClass(), serialVersionUID);
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ return convertToObject(registry, json, true);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
index 1c04986..b91b4ae 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/ARecordType.java
@@ -33,7 +33,12 @@
import org.apache.asterix.om.base.IAObject;
import org.apache.asterix.om.utils.NonTaggedFormatUtil;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -47,6 +52,11 @@
public class ARecordType extends AbstractComplexType {
private static final long serialVersionUID = 1L;
+ private static final JavaType SET = OBJECT_MAPPER.getTypeFactory().constructCollectionType(Set.class, String.class);
+ private static final String IS_OPEN = "isOpen";
+ private static final String FIELD_NAMES = "fieldNames";
+ private static final String FIELD_TYPES = "fieldTypes";
+ private static final String ADDITIONAL_FIELDS = "additionalFieldNames";
private final String[] fieldNames;
private final IAType[] fieldTypes;
private final Map<String, Integer> fieldNameToIndexMap = new HashMap<>();
@@ -372,6 +382,35 @@
return type;
}
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ final ObjectNode jsonObject = registry.getClassIdentifier(getClass(), serialVersionUID);
+ addToJson(jsonObject);
+ jsonObject.put(IS_OPEN, isOpen);
+ jsonObject.putPOJO(FIELD_NAMES, fieldNames);
+ jsonObject.putPOJO(ADDITIONAL_FIELDS, allPossibleAdditionalFieldNames);
+ ArrayNode fieldTypesArray = OBJECT_MAPPER.createArrayNode();
+ for (int i = 0; i < fieldTypes.length; i++) {
+ fieldTypesArray.add(fieldTypes[i].toJson(registry));
+ }
+ jsonObject.set(FIELD_TYPES, fieldTypesArray);
+ return jsonObject;
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ String typeName = json.get(TYPE_NAME_FIELD).asText();
+ boolean isOpen = json.get(IS_OPEN).asBoolean();
+ String[] fieldNames = OBJECT_MAPPER.convertValue(json.get(FIELD_NAMES), String[].class);
+ Set<String> additionalFields = OBJECT_MAPPER.convertValue(json.get(ADDITIONAL_FIELDS), SET);
+ ArrayNode fieldTypesNode = (ArrayNode) json.get(FIELD_TYPES);
+ IAType[] fieldTypes = new IAType[fieldTypesNode.size()];
+ for (int i = 0; i < fieldTypesNode.size(); i++) {
+ fieldTypes[i] = (IAType) registry.deserialize(fieldTypesNode.get(i));
+ }
+ return new ARecordType(typeName, fieldNames, fieldTypes, isOpen, additionalFields);
+ }
+
public List<IAType> getFieldTypes(List<List<String>> fields) throws AlgebricksException {
List<IAType> typeList = new ArrayList<>();
for (List<String> field : fields) {
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
index f8ae7f8..7ef18d4 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnionType.java
@@ -23,7 +23,11 @@
import java.util.List;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -32,6 +36,7 @@
private static final long serialVersionUID = 1L;
private static final int OPTIONAL_TYPE_INDEX_IN_UNION_LIST = 0;
+ private static final String UNION_LIST_FIELD = "unionList";
private final List<IAType> unionList;
public AUnionType(List<IAType> unionList, String typeName) {
@@ -223,4 +228,27 @@
type.set("fields", fields);
return type;
}
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ final ObjectNode jsonObject = registry.getClassIdentifier(getClass(), serialVersionUID);
+ addToJson(jsonObject);
+ ArrayNode fieldTypesArray = OBJECT_MAPPER.createArrayNode();
+ for (int i = 0; i < unionList.size(); i++) {
+ fieldTypesArray.add(unionList.get(i).toJson(registry));
+ }
+ jsonObject.set(UNION_LIST_FIELD, fieldTypesArray);
+ return jsonObject;
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ String typeName = json.get(TYPE_NAME_FIELD).asText();
+ ArrayNode unionListJson = (ArrayNode) json.get(UNION_LIST_FIELD);
+ List<IAType> unionList = new ArrayList<>();
+ for (int i = 0; i < unionListJson.size(); i++) {
+ unionList.add((IAType) registry.deserialize(unionListJson.get(i)));
+ }
+ return new AUnionType(unionList, typeName);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
index 8d088f7..0b458dd 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AUnorderedListType.java
@@ -19,7 +19,11 @@
package org.apache.asterix.om.types;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
@@ -84,4 +88,14 @@
type.set("item-type", itemType.toJSON());
return type;
}
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) throws HyracksDataException {
+ return convertToJson(registry, getClass(), serialVersionUID);
+ }
+
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json)
+ throws HyracksDataException {
+ return convertToObject(registry, json, false);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
index f6f10f4..1b2b8fe 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractCollectionType.java
@@ -18,10 +18,17 @@
*/
package org.apache.asterix.om.types;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
public abstract class AbstractCollectionType extends AbstractComplexType {
private static final long serialVersionUID = 1L;
-
+ private static final String ITEM_TYPE_FIELD = "itemType";
protected IAType itemType;
AbstractCollectionType(IAType itemType, String typeName) {
@@ -59,4 +66,20 @@
public boolean containsType(IAType type) {
return isTyped() && itemType.getTypeName().equals(type.getTypeName());
}
+
+ protected JsonNode convertToJson(IPersistedResourceRegistry registry, Class<? extends IJsonSerializable> clazz,
+ long version) throws HyracksDataException {
+ final ObjectNode jsonObject = registry.getClassIdentifier(clazz, version);
+ addToJson(jsonObject);
+ jsonObject.set(ITEM_TYPE_FIELD, itemType.toJson(registry));
+ return jsonObject;
+ }
+
+ protected static IJsonSerializable convertToObject(IPersistedResourceRegistry registry, JsonNode json,
+ boolean ordered) throws HyracksDataException {
+ String typeName = json.get(TYPE_NAME_FIELD).asText();
+ JsonNode itemTypeJson = json.get(ITEM_TYPE_FIELD);
+ IAType itemType = (IAType) registry.deserialize(itemTypeJson);
+ return ordered ? new AOrderedListType(itemType, typeName) : new AUnorderedListType(itemType, typeName);
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
index f8b1d60..16f83f5 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/AbstractComplexType.java
@@ -20,9 +20,14 @@
import org.apache.asterix.om.base.IAObject;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+
public abstract class AbstractComplexType implements IAType {
private static final long serialVersionUID = 1L;
+ protected static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+ protected static final String TYPE_NAME_FIELD = "typeName";
protected String typeName;
public AbstractComplexType(String typeName) {
@@ -45,5 +50,9 @@
return object instanceof IAObject && deepEqual((IAObject) object);
}
+ protected void addToJson(final ObjectNode json) {
+ json.put(TYPE_NAME_FIELD, typeName);
+ }
+
public abstract boolean containsType(IAType type);
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
index 2e48127..4fc146f 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
@@ -18,14 +18,20 @@
*/
package org.apache.asterix.om.types;
-import org.apache.asterix.om.base.IAObject;
+import static org.apache.asterix.om.types.ATypeTag.VALUE_TYPE_MAPPING;
+import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.io.IJsonSerializable;
+import org.apache.hyracks.api.io.IPersistedResourceRegistry;
+
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
public abstract class BuiltinType implements IAType {
private static final long serialVersionUID = 1L;
+ private static final String TAG_FIELD = "tag";
public abstract static class LowerCaseConstructorType extends BuiltinType {
private static final long serialVersionUID = 1L;
@@ -62,6 +68,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -87,6 +98,11 @@
@Override
public String getTypeName() {
return "int8";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -118,6 +134,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -143,6 +164,11 @@
@Override
public String getTypeName() {
return "int32";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -174,6 +200,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -199,6 +230,11 @@
@Override
public String getTypeName() {
return "binary";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -230,6 +266,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -255,6 +296,11 @@
@Override
public String getTypeName() {
return "double";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -286,6 +332,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -311,6 +362,11 @@
@Override
public String getTypeName() {
return "missing";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -342,6 +398,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -367,6 +428,11 @@
@Override
public String getTypeName() {
return "boolean";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -398,6 +464,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -423,6 +494,11 @@
@Override
public String getTypeName() {
return "date";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -454,6 +530,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -479,6 +560,11 @@
@Override
public String getTypeName() {
return "duration";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -510,6 +596,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -535,6 +626,11 @@
@Override
public String getTypeName() {
return "day-time-duration";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -566,6 +662,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
return null;
}
@@ -588,6 +689,11 @@
@Override
public String getTypeName() {
return "point";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -619,6 +725,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -644,6 +755,11 @@
@Override
public String getTypeName() {
return "line";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -675,6 +791,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -703,6 +824,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectNode type = new ObjectMapper().createObjectNode();
type.put("type", "AGEOMETRY");
@@ -727,6 +853,11 @@
@Override
public String getTypeName() {
return "circle";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -758,6 +889,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -786,6 +922,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -810,6 +951,11 @@
@Override
public String getTypeName() {
return "uuid";
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -846,6 +992,11 @@
}
@Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
+ }
+
+ @Override
public ObjectNode toJSON() {
ObjectMapper om = new ObjectMapper();
ObjectNode type = om.createObjectNode();
@@ -876,6 +1027,11 @@
@Override
public String getConstructor() {
return null;
+ }
+
+ @Override
+ public JsonNode toJson(IPersistedResourceRegistry registry) {
+ return convertToJson(registry, getTypeTag().serialize(), serialVersionUID);
}
@Override
@@ -925,4 +1081,79 @@
return getType().getTypeTag().serialize();
}
+ private static JsonNode convertToJson(IPersistedResourceRegistry registry, short tag, long version) {
+ ObjectNode jsonNode = registry.getClassIdentifier(BuiltinType.class, version);
+ jsonNode.put(TAG_FIELD, tag);
+ return jsonNode;
+ }
+
+ @SuppressWarnings("squid:S1172") // unused parameter
+ public static IJsonSerializable fromJson(IPersistedResourceRegistry registry, JsonNode json) {
+ byte tag = (byte) json.get(TAG_FIELD).shortValue();
+ ATypeTag typeTag = VALUE_TYPE_MAPPING[tag];
+ switch (typeTag) {
+ case TYPE:
+ return ALL_TYPE;
+ case TINYINT:
+ return AINT8;
+ case SMALLINT:
+ return AINT16;
+ case INTEGER:
+ return AINT32;
+ case BIGINT:
+ return AINT64;
+ case FLOAT:
+ return AFLOAT;
+ case DOUBLE:
+ return ADOUBLE;
+ case STRING:
+ return ASTRING;
+ case BINARY:
+ return ABINARY;
+ case MISSING:
+ return AMISSING;
+ case NULL:
+ return ANULL;
+ case BOOLEAN:
+ return ABOOLEAN;
+ case TIME:
+ return ATIME;
+ case DATE:
+ return ADATE;
+ case DATETIME:
+ return ADATETIME;
+ case DURATION:
+ return ADURATION;
+ case YEARMONTHDURATION:
+ return AYEARMONTHDURATION;
+ case DAYTIMEDURATION:
+ return ADAYTIMEDURATION;
+ case INTERVAL:
+ return AINTERVAL;
+ case POINT:
+ return APOINT;
+ case POINT3D:
+ return APOINT3D;
+ case LINE:
+ return ALINE;
+ case POLYGON:
+ return APOLYGON;
+ case GEOMETRY:
+ return AGEOMETRY;
+ case CIRCLE:
+ return ACIRCLE;
+ case RECTANGLE:
+ return ARECTANGLE;
+ case BITARRAY:
+ return ABITARRAY;
+ case UUID:
+ return AUUID;
+ case ANY:
+ return ANY;
+ case SHORTWITHOUTTYPEINFO:
+ return SHORTWITHOUTTYPEINFO;
+ default:
+ throw new IllegalStateException();
+ }
+ }
}
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
index aa9ce99..0e6cc4f 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/IAType.java
@@ -21,8 +21,9 @@
import java.io.Serializable;
import org.apache.asterix.om.base.IAObject;
+import org.apache.hyracks.api.io.IJsonSerializable;
-public interface IAType extends IAObject, Serializable {
+public interface IAType extends IAObject, Serializable, IJsonSerializable {
public ATypeTag getTypeTag();
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-stabilization-f69489-compat/561/ (13/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-verify-storage/5828/ (4/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-assemblies/5472/ (11/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1: Contrib+1
BAD Compatibility Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/4006/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-spidersilk-tests/244/ (2/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ssl-compression/75/ (16/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/10733/ (10/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-ensure-ancestor/3262/ (7/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Murtadha Hubail (Code Review)" <do...@asterixdb.incubator.apache.org>.
Murtadha Hubail has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1: Code-Review+2
(1 comment)
https://asterix-gerrit.ics.uci.edu/#/c/3228/1/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java
File asterixdb/asterix-om/src/main/java/org/apache/asterix/om/types/BuiltinType.java:
Line 1156: throw new IllegalStateException();
unrecognized type tag + typeTag
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: Yes
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
BAD Compatibility Tests Started https://asterix-jenkins.ics.uci.edu/job/asterixbad-compat/4006/
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/8034/
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-cancellation-test/5251/ (9/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Anon. E. Moose (Code Review)" <do...@asterixdb.incubator.apache.org>.
Anon. E. Moose #1000171 has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Analytics Compatibility Compilation Successful
https://goo.gl/XqvUDo : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1: Integration-Tests+1
Integration Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/8034/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-no-installer-app/5470/ (6/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-verify-txnlog/417/ (1/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-sql-execution/5248/ (15/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/hyracks-gerrit/5158/ (14/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-asterix-app-openjdk11/625/ (8/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Anon. E. Moose (Code Review)" <do...@asterixdb.incubator.apache.org>.
Anon. E. Moose #1000171 has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1: Contrib-2
Analytics Compatibility Tests Failed
https://goo.gl/EGNeq6 : UNSTABLE
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Anon. E. Moose #1000171
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Murtadha Hubail <mh...@apache.org>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-source-format/5213/ (12/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-verify-asterix-app/5620/ (3/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: [NO ISSUE][OTH] Make IAType IJsonSerializable
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: [NO ISSUE][OTH] Make IAType IJsonSerializable
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-sonar/9204/ (5/16)
--
To view, visit https://asterix-gerrit.ics.uci.edu/3228
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I26b57494da1c63497b63ceb0d4172b5768d3a614
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Ali Alsuliman <al...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No