You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@asterixdb.apache.org by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org> on 2016/08/21 20:26:03 UTC
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
abdullah alamoudi has uploaded a new change for review.
https://asterix-gerrit.ics.uci.edu/1098
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Add Record Literal and Byte Array Value Reference
This change include 3 different parts:
1. It introduced record literals in order to enable the use of
constant records as function input.
2. It introduces ByteArrayValueReference which is a mutable
reference that can be wrapped around byte[].
3. It improves the Schemaless record serializer deserializer.
Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ConstantHelper.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
A asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/util/ConstantExpressionUtil.java
A hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java
7 files changed, 137 insertions(+), 8 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/98/1098/1
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ConstantHelper.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ConstantHelper.java
index 8ded10b..51861cb 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ConstantHelper.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ConstantHelper.java
@@ -23,6 +23,7 @@
import org.apache.asterix.lang.common.literal.FloatLiteral;
import org.apache.asterix.lang.common.literal.IntegerLiteral;
import org.apache.asterix.lang.common.literal.LongIntegerLiteral;
+import org.apache.asterix.lang.common.literal.RecordLiteral;
import org.apache.asterix.lang.common.literal.StringLiteral;
import org.apache.asterix.om.base.ABoolean;
import org.apache.asterix.om.base.ADouble;
@@ -31,6 +32,7 @@
import org.apache.asterix.om.base.AInt64;
import org.apache.asterix.om.base.AMissing;
import org.apache.asterix.om.base.ANull;
+import org.apache.asterix.om.base.ARecord;
import org.apache.asterix.om.base.AString;
import org.apache.asterix.om.base.IAObject;
@@ -61,6 +63,8 @@
return new AString(sl.getValue());
case TRUE:
return ABoolean.TRUE;
+ case RECORD:
+ return (ARecord) ((RecordLiteral) valLiteral).getValue();
default:
throw new IllegalStateException();
}
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
index 1ca8ac4..ede8689 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
@@ -35,7 +35,8 @@
FALSE,
FLOAT,
DOUBLE,
- LONG
+ LONG,
+ RECORD
}
abstract public Object getValue();
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
new file mode 100644
index 0000000..59eb144
--- /dev/null
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
@@ -0,0 +1,43 @@
+/*
+ * 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.lang.common.literal;
+
+import org.apache.asterix.lang.common.base.Literal;
+import org.apache.asterix.om.base.ARecord;
+
+public class RecordLiteral extends Literal {
+
+ private static final long serialVersionUID = 1L;
+ private final ARecord record;
+
+ public RecordLiteral(ARecord record) {
+ this.record = record;
+ }
+
+ @Override
+ public Object getValue() {
+ return record;
+ }
+
+ @Override
+ public Type getLiteralType() {
+ return Type.RECORD;
+ }
+
+}
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
index 94144c6..a604315 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
@@ -68,7 +68,7 @@
parseLiteral((LiteralExpr) expr, serialized);
break;
case RECORD_CONSTRUCTOR_EXPRESSION:
- parseRecord((RecordConstructor) expr, serialized);
+ parseRecord((RecordConstructor) expr, serialized, true);
break;
case LIST_CONSTRUCTOR_EXPRESSION:
parseList((ListConstructor) expr, serialized);
@@ -82,7 +82,7 @@
}
}
- public static void parseRecord(RecordConstructor recordValue, ArrayBackedValueStorage serialized)
+ public static void parseRecord(RecordConstructor recordValue, ArrayBackedValueStorage serialized, boolean tagged)
throws HyracksDataException {
AMutableString fieldNameString = new AMutableString(null);
ArrayBackedValueStorage fieldName = new ArrayBackedValueStorage();
@@ -112,7 +112,7 @@
parseExpression(fb.getRightExpr(), fieldValue);
recordBuilder.addField(fieldName, fieldValue);
}
- recordBuilder.write(serialized.getDataOutput(), true);
+ recordBuilder.write(serialized.getDataOutput(), tagged);
}
private static void parseList(ListConstructor valueExpr, ArrayBackedValueStorage serialized)
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
index c922054..c69c89e 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.asterix.dataflow.data.nontagged.serde;
import java.io.DataInput;
@@ -32,13 +31,14 @@
import org.apache.asterix.om.base.AMissing;
import org.apache.asterix.om.base.ANull;
import org.apache.asterix.om.base.ARecord;
+import org.apache.asterix.om.base.AString;
import org.apache.asterix.om.base.IAObject;
import org.apache.asterix.om.types.ARecordType;
import org.apache.asterix.om.types.ATypeTag;
import org.apache.asterix.om.types.AUnionType;
+import org.apache.asterix.om.types.BuiltinType;
import org.apache.asterix.om.types.IAType;
import org.apache.asterix.om.util.NonTaggedFormatUtil;
-import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException;
import org.apache.hyracks.api.dataflow.value.IBinaryComparator;
import org.apache.hyracks.api.dataflow.value.IBinaryHashFunction;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
@@ -153,7 +153,7 @@
IAObject[] mergedFields = mergeFields(closedFields, openFields);
return new ARecord(mergedRecordType, mergedFields);
} else {
- return new ARecord(this.recordType, openFields);
+ return new ARecord(openPartRecType, openFields);
}
} else {
return new ARecord(this.recordType, closedFields);
@@ -184,10 +184,32 @@
}
recordBuilder.write(out, writeTypeTag);
} else {
- throw new NotImplementedException("Serializer for schemaless records is not implemented.");
+ serializeSchemalessRecord(instance, out, writeTypeTag);
}
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public static void serializeSchemalessRecord(ARecord record, DataOutput dataOutput, boolean writeTypeTag)
+ throws HyracksDataException {
+ ISerializerDeserializer<AString> stringSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.ASTRING);
+ RecordBuilder confRecordBuilder = new RecordBuilder();
+ confRecordBuilder.reset(ARecordType.FULLY_OPEN_RECORD_TYPE);
+ ArrayBackedValueStorage fieldNameBytes = new ArrayBackedValueStorage();
+ ArrayBackedValueStorage fieldValueBytes = new ArrayBackedValueStorage();
+ for (int i = 0; i < record.getType().getFieldNames().length; i++) {
+ String fieldName = record.getType().getFieldNames()[i];
+ fieldValueBytes.reset();
+ fieldNameBytes.reset();
+ stringSerde.serialize(new AString(fieldName), fieldNameBytes.getDataOutput());
+ ISerializerDeserializer valueSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(record.getType().getFieldTypes()[i]);
+ valueSerde.serialize(record.getValueByPos(i), fieldValueBytes.getDataOutput());
+ confRecordBuilder.addField(fieldNameBytes, fieldValueBytes);
+ }
+ confRecordBuilder.write(dataOutput, writeTypeTag);
+ }
+
private IAObject[] mergeFields(IAObject[] closedFields, IAObject[] openFields) {
IAObject[] fields = new IAObject[closedFields.length + openFields.length];
int i = 0;
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/util/ConstantExpressionUtil.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/util/ConstantExpressionUtil.java
index c67030a..f6f88bb 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/util/ConstantExpressionUtil.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/util/ConstantExpressionUtil.java
@@ -21,6 +21,7 @@
import org.apache.asterix.om.base.ABoolean;
import org.apache.asterix.om.base.AInt32;
import org.apache.asterix.om.base.AInt64;
+import org.apache.asterix.om.base.ARecord;
import org.apache.asterix.om.base.AString;
import org.apache.asterix.om.base.IAObject;
import org.apache.asterix.om.constants.AsterixConstantValue;
@@ -76,6 +77,10 @@
return getStringConstant(f.getArguments().get(index).getValue());
}
+ public static ARecord getRecordArgument(AbstractFunctionCallExpression f, int index) {
+ return (ARecord) getConstantIaObject(f.getArguments().get(index).getValue(), ATypeTag.RECORD);
+ }
+
public static Integer getIntArgument(ILogicalExpression expr, int index) {
return expr.getExpressionTag() == LogicalExpressionTag.FUNCTION_CALL
? getIntArgument((AbstractFunctionCallExpression) expr, index) : null;
diff --git a/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java
new file mode 100644
index 0000000..564f445
--- /dev/null
+++ b/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java
@@ -0,0 +1,54 @@
+/*
+ * 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.hyracks.dataflow.common.data.accessors;
+
+import org.apache.hyracks.data.std.api.IValueReference;
+
+public class ByteArrayValueReference implements IValueReference {
+
+ private byte[] bytes;
+
+ public ByteArrayValueReference(byte[] bytes) {
+ this.setBytes(bytes);
+ }
+
+ @Override
+ public byte[] getByteArray() {
+ return getBytes();
+ }
+
+ @Override
+ public int getStartOffset() {
+ return 0;
+ }
+
+ @Override
+ public int getLength() {
+ return getBytes().length;
+ }
+
+ public byte[] getBytes() {
+ return bytes;
+ }
+
+ public void setBytes(byte[] bytes) {
+ this.bytes = bytes;
+ }
+
+}
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Till Westmann (Code Review)" <do...@asterixdb.incubator.apache.org>.
Till Westmann has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 5: Code-Review+1
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 5
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 4: Integration-Tests+1
Integration Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/404/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 2: Integration-Tests+1
Integration Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/400/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 4:
WARNING: THIS CHANGE CONTAINS CROSS-PRODUCT CHANGES IN:
* asterixdb
* hyracks-fullstack
PLEASE REVIEW CAREFULLY AND LOOK FOR API CHANGES!
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 4:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/404/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 2:
WARNING: THIS CHANGE CONTAINS CROSS-PRODUCT CHANGES IN:
* asterixdb
* hyracks-fullstack
PLEASE REVIEW CAREFULLY AND LOOK FOR API CHANGES!
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/1098
to look at the new patch set (#5).
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Improve Schemaless Record Serializer Deserializer.
Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/extension/IExtensionStatement.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixExtension.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
5 files changed, 39 insertions(+), 8 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/98/1098/5
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 5
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 5:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/405/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 5
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 5:
Integration Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/405/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 5
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 1:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/2322/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 2:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/2323/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/1098
to look at the new patch set (#3).
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Add Record Literal and Byte Array Value Reference
This change include 3 different parts:
1. It introduced record literals in order to enable the use of
constant records as function input.
2. It introduces ByteArrayValueReference which is a mutable
reference that can be wrapped around byte[].
3. It improves the Schemaless record serializer deserializer.
Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ConstantHelper.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
A asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/util/ConstantExpressionUtil.java
A hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java
8 files changed, 151 insertions(+), 8 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/98/1098/3
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 3:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/2325/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 1:
WARNING: THIS CHANGE CONTAINS CROSS-PRODUCT CHANGES IN:
* asterixdb
* hyracks-fullstack
PLEASE REVIEW CAREFULLY AND LOOK FOR API CHANGES!
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 2:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/400/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/1098
to look at the new patch set (#4).
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Improve Schemaless Record Serializer Deserializer.
Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/extension/IExtensionStatement.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixExtension.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
M hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/VoidPointable.java
6 files changed, 40 insertions(+), 10 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/98/1098/4
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 3:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/402/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
abdullah alamoudi has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 1:
(3 comments)
https://asterix-gerrit.ics.uci.edu/#/c/1098/1/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
File asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java:
Line 39: RECORD
> Literal is a parser concept.
Done
https://asterix-gerrit.ics.uci.edu/#/c/1098/1/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
File asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java:
Line 29: public RecordLiteral(ARecord record) {
> It seems nobody calls this constructor.
Done
https://asterix-gerrit.ics.uci.edu/#/c/1098/1/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java
File hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java:
Line 23: public class ByteArrayValueReference implements IValueReference {
> What's the difference of this class with VoidPointable?
Done
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: Yes
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 3:
WARNING: THIS CHANGE CONTAINS CROSS-PRODUCT CHANGES IN:
* asterixdb
* hyracks-fullstack
PLEASE REVIEW CAREFULLY AND LOOK FOR API CHANGES!
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 4:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/2327/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Yingyi Bu (Code Review)" <do...@asterixdb.incubator.apache.org>.
Yingyi Bu has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 1:
(3 comments)
What's the motivation or introducing the two new classes?
- Literal is a parser concept. Currently we don't parse records or lists directly in the AQL or SQL++ parser, but as constructor expressions.
- The functionality of ByteArrayValueReference seems not much different from VoidPointable?
- It seems their constructors are not called.
https://asterix-gerrit.ics.uci.edu/#/c/1098/1/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
File asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java:
Line 39: RECORD
Literal is a parser concept.
We don't parse records or lists directly in the AQL or SQL++ parser.
For example, you can take a look at:
asterixdb/asterixdb/asterix-lang-sqlpp/target/site/jjdoc/SQLPP.html
https://asterix-gerrit.ics.uci.edu/#/c/1098/1/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
File asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java:
Line 29: public RecordLiteral(ARecord record) {
It seems nobody calls this constructor.
https://asterix-gerrit.ics.uci.edu/#/c/1098/1/hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java
File hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java:
Line 23: public class ByteArrayValueReference implements IValueReference {
What's the difference of this class with VoidPointable?
It seems nobody calls this constructor.
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: Yes
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 3: Integration-Tests+1
Integration Tests Successful
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/402/ : SUCCESS
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org>.
Michael Blow has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 5: Code-Review+2
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 5
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org>.
Michael Blow has submitted this change and it was merged.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Improve Schemaless Record Serializer Deserializer.
Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1098
Sonar-Qube: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Till Westmann <ti...@apache.org>
Reviewed-by: Michael Blow <mb...@apache.org>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/extension/IExtensionStatement.java
M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixExtension.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
5 files changed, 39 insertions(+), 8 deletions(-)
Approvals:
Michael Blow: Looks good to me, approved
Till Westmann: Looks good to me, but someone else must approve
Jenkins: Verified; No violations found
diff --git a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/extension/IExtensionStatement.java b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/extension/IExtensionStatement.java
index 9e2241f..e88962a 100644
--- a/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/extension/IExtensionStatement.java
+++ b/asterixdb/asterix-algebra/src/main/java/org/apache/asterix/algebra/extension/IExtensionStatement.java
@@ -21,7 +21,9 @@
import org.apache.asterix.lang.common.base.Statement;
import org.apache.asterix.metadata.declared.AqlMetadataProvider;
import org.apache.asterix.translator.IStatementExecutor;
+import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.api.client.IHyracksClientConnection;
+import org.apache.hyracks.api.exceptions.HyracksDataException;
/**
* An interface that provides an extension mechanism to extend a language with additional statements
@@ -44,5 +46,5 @@
* @throws Exception
*/
void handle(IStatementExecutor statementExecutor, AqlMetadataProvider metadataProvider,
- IHyracksClientConnection hcc) throws Exception;
+ IHyracksClientConnection hcc) throws HyracksDataException, AlgebricksException;
}
diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixExtension.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixExtension.java
index d1d6e0c..57a3c79 100644
--- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixExtension.java
+++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/config/AsterixExtension.java
@@ -18,6 +18,7 @@
*/
package org.apache.asterix.common.config;
+import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.ObjectUtils;
@@ -32,6 +33,11 @@
this.args = args;
}
+ public AsterixExtension(String className) {
+ this.className = className;
+ this.args = Collections.emptyList();
+ }
+
public List<Pair<String, String>> getArgs() {
return args;
}
diff --git a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
index 94144c6..a604315 100644
--- a/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
+++ b/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
@@ -68,7 +68,7 @@
parseLiteral((LiteralExpr) expr, serialized);
break;
case RECORD_CONSTRUCTOR_EXPRESSION:
- parseRecord((RecordConstructor) expr, serialized);
+ parseRecord((RecordConstructor) expr, serialized, true);
break;
case LIST_CONSTRUCTOR_EXPRESSION:
parseList((ListConstructor) expr, serialized);
@@ -82,7 +82,7 @@
}
}
- public static void parseRecord(RecordConstructor recordValue, ArrayBackedValueStorage serialized)
+ public static void parseRecord(RecordConstructor recordValue, ArrayBackedValueStorage serialized, boolean tagged)
throws HyracksDataException {
AMutableString fieldNameString = new AMutableString(null);
ArrayBackedValueStorage fieldName = new ArrayBackedValueStorage();
@@ -112,7 +112,7 @@
parseExpression(fb.getRightExpr(), fieldValue);
recordBuilder.addField(fieldName, fieldValue);
}
- recordBuilder.write(serialized.getDataOutput(), true);
+ recordBuilder.write(serialized.getDataOutput(), tagged);
}
private static void parseList(ListConstructor valueExpr, ArrayBackedValueStorage serialized)
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
index c922054..c69c89e 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.asterix.dataflow.data.nontagged.serde;
import java.io.DataInput;
@@ -32,13 +31,14 @@
import org.apache.asterix.om.base.AMissing;
import org.apache.asterix.om.base.ANull;
import org.apache.asterix.om.base.ARecord;
+import org.apache.asterix.om.base.AString;
import org.apache.asterix.om.base.IAObject;
import org.apache.asterix.om.types.ARecordType;
import org.apache.asterix.om.types.ATypeTag;
import org.apache.asterix.om.types.AUnionType;
+import org.apache.asterix.om.types.BuiltinType;
import org.apache.asterix.om.types.IAType;
import org.apache.asterix.om.util.NonTaggedFormatUtil;
-import org.apache.hyracks.algebricks.common.exceptions.NotImplementedException;
import org.apache.hyracks.api.dataflow.value.IBinaryComparator;
import org.apache.hyracks.api.dataflow.value.IBinaryHashFunction;
import org.apache.hyracks.api.dataflow.value.ISerializerDeserializer;
@@ -153,7 +153,7 @@
IAObject[] mergedFields = mergeFields(closedFields, openFields);
return new ARecord(mergedRecordType, mergedFields);
} else {
- return new ARecord(this.recordType, openFields);
+ return new ARecord(openPartRecType, openFields);
}
} else {
return new ARecord(this.recordType, closedFields);
@@ -184,10 +184,32 @@
}
recordBuilder.write(out, writeTypeTag);
} else {
- throw new NotImplementedException("Serializer for schemaless records is not implemented.");
+ serializeSchemalessRecord(instance, out, writeTypeTag);
}
}
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ public static void serializeSchemalessRecord(ARecord record, DataOutput dataOutput, boolean writeTypeTag)
+ throws HyracksDataException {
+ ISerializerDeserializer<AString> stringSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(BuiltinType.ASTRING);
+ RecordBuilder confRecordBuilder = new RecordBuilder();
+ confRecordBuilder.reset(ARecordType.FULLY_OPEN_RECORD_TYPE);
+ ArrayBackedValueStorage fieldNameBytes = new ArrayBackedValueStorage();
+ ArrayBackedValueStorage fieldValueBytes = new ArrayBackedValueStorage();
+ for (int i = 0; i < record.getType().getFieldNames().length; i++) {
+ String fieldName = record.getType().getFieldNames()[i];
+ fieldValueBytes.reset();
+ fieldNameBytes.reset();
+ stringSerde.serialize(new AString(fieldName), fieldNameBytes.getDataOutput());
+ ISerializerDeserializer valueSerde = AqlSerializerDeserializerProvider.INSTANCE
+ .getSerializerDeserializer(record.getType().getFieldTypes()[i]);
+ valueSerde.serialize(record.getValueByPos(i), fieldValueBytes.getDataOutput());
+ confRecordBuilder.addField(fieldNameBytes, fieldValueBytes);
+ }
+ confRecordBuilder.write(dataOutput, writeTypeTag);
+ }
+
private IAObject[] mergeFields(IAObject[] closedFields, IAObject[] openFields) {
IAObject[] fields = new IAObject[closedFields.length + openFields.length];
int i = 0;
diff --git a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
index 79dd63c..c35f000 100644
--- a/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
+++ b/asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
@@ -26,6 +26,7 @@
import org.json.JSONObject;
public class ARecord implements IAObject {
+ public static final ARecord EMPTY_OPEN_RECORD = new ARecord(ARecordType.FULLY_OPEN_RECORD_TYPE, new IAObject[] {});
protected ARecordType type;
protected IAObject[] fields;
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 6
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
abdullah alamoudi has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 2:
(1 comment)
https://asterix-gerrit.ics.uci.edu/#/c/1098/2/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
File asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java:
Line 47: return super.equals(o) && ObjectUtils.equals(record, ((RecordLiteral) o).record);
> these two checks are redundant
Done
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: Yes
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 1:
Integration Tests Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/399/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-HasComments: No
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "abdullah alamoudi (Code Review)" <do...@asterixdb.incubator.apache.org>.
Hello Jenkins,
I'd like you to reexamine a change. Please visit
https://asterix-gerrit.ics.uci.edu/1098
to look at the new patch set (#2).
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Add Record Literal and Byte Array Value Reference
This change include 3 different parts:
1. It introduced record literals in order to enable the use of
constant records as function input.
2. It introduces ByteArrayValueReference which is a mutable
reference that can be wrapped around byte[].
3. It improves the Schemaless record serializer deserializer.
Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
---
M asterixdb/asterix-algebra/src/main/java/org/apache/asterix/translator/ConstantHelper.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/base/Literal.java
A asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
M asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/util/LangRecordParseUtil.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/dataflow/data/nontagged/serde/ARecordSerializerDeserializer.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/base/ARecord.java
M asterixdb/asterix-om/src/main/java/org/apache/asterix/om/util/ConstantExpressionUtil.java
A hyracks-fullstack/hyracks/hyracks-dataflow-common/src/main/java/org/apache/hyracks/dataflow/common/data/accessors/ByteArrayValueReference.java
8 files changed, 151 insertions(+), 8 deletions(-)
git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb refs/changes/98/1098/2
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Jenkins (Code Review)" <do...@asterixdb.incubator.apache.org>.
Jenkins has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 5:
Build Started https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/2328/
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 5
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: No
Change in asterixdb[master]: Improve Schemaless Record Serializer Deserializer.
Posted by "Till Westmann (Code Review)" <do...@asterixdb.incubator.apache.org>.
Till Westmann has posted comments on this change.
Change subject: Improve Schemaless Record Serializer Deserializer.
......................................................................
Patch Set 4:
(1 comment)
https://asterix-gerrit.ics.uci.edu/#/c/1098/4/hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/VoidPointable.java
File hyracks-fullstack/hyracks/hyracks-data/hyracks-data-std/src/main/java/org/apache/hyracks/data/std/primitive/VoidPointable.java:
Line 44: public VoidPointable createPointable() {
Seems inconsistent. All other factories return IPointable ...
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 4
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Till Westmann <ti...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-Reviewer: abdullah alamoudi <ba...@gmail.com>
Gerrit-HasComments: Yes
Change in asterixdb[master]: Add Record Literal and Byte Array Value Reference
Posted by "Michael Blow (Code Review)" <do...@asterixdb.incubator.apache.org>.
Michael Blow has posted comments on this change.
Change subject: Add Record Literal and Byte Array Value Reference
......................................................................
Patch Set 2:
(1 comment)
https://asterix-gerrit.ics.uci.edu/#/c/1098/2/asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java
File asterixdb/asterix-lang-common/src/main/java/org/apache/asterix/lang/common/literal/RecordLiteral.java:
Line 47: return super.equals(o) && ObjectUtils.equals(record, ((RecordLiteral) o).record);
these two checks are redundant
--
To view, visit https://asterix-gerrit.ics.uci.edu/1098
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I25c5054a361128a3bee4241d7b9b40da7e61373f
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <ba...@gmail.com>
Gerrit-Reviewer: Jenkins <je...@fulliautomatix.ics.uci.edu>
Gerrit-Reviewer: Michael Blow <mb...@apache.org>
Gerrit-Reviewer: Yingyi Bu <bu...@gmail.com>
Gerrit-HasComments: Yes