You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by am...@apache.org on 2016/02/01 09:31:23 UTC
[04/13] incubator-asterixdb git commit: Add Support for Upsert
Operation
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SimilarityDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SimilarityDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SimilarityDescriptor.java
index 1962a93..e66fceb 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SimilarityDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SimilarityDescriptor.java
@@ -55,14 +55,8 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
private static final long serialVersionUID = 1L;
private final static FunctionIdentifier FID = new FunctionIdentifier(FunctionConstants.ASTERIX_NS, "similarity@7",
7);
-
- private final static byte SER_DOUBLE_TYPE_TAG = ATypeTag.DOUBLE.serialize();
- private final static byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
- private final static byte SER_INT32_TYPE_TAG = ATypeTag.INT32.serialize();
- private final static byte SER_ORDEREDLIST_TYPE_TAG = ATypeTag.ORDEREDLIST.serialize();
- private final static byte SER_UNORDEREDLIST_TYPE_TAG = ATypeTag.UNORDEREDLIST.serialize();
-
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new SimilarityDescriptor();
}
@@ -106,18 +100,18 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
// similarity threshold
inputVal.reset();
evalThreshold.evaluate(tuple);
- if (inputVal.getByteArray()[0] != SER_DOUBLE_TYPE_TAG) {
+ if (inputVal.getByteArray()[0] != ATypeTag.SERIALIZED_DOUBLE_TYPE_TAG) {
throw new AlgebricksException(FID.getName()
+ ": expects type DOUBLE for the first argument but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(inputVal.getByteArray()[0]));
}
- float similarityThreshold = (float) ADoubleSerializerDeserializer.getDouble(
- inputVal.getByteArray(), 1);
+ float similarityThreshold = (float) ADoubleSerializerDeserializer
+ .getDouble(inputVal.getByteArray(), 1);
// similarity name
inputVal.reset();
evalSimilarity.evaluate(tuple);
- if (inputVal.getByteArray()[0] != SER_STRING_TYPE_TAG) {
+ if (inputVal.getByteArray()[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
throw new AlgebricksException(FID.getName()
+ ": expects type STRING for the second argument but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(inputVal.getByteArray()[0]));
@@ -127,7 +121,7 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
inputVal.reset();
evalLen1.evaluate(tuple);
- if (inputVal.getByteArray()[0] != SER_INT32_TYPE_TAG) {
+ if (inputVal.getByteArray()[0] != ATypeTag.SERIALIZED_INT32_TYPE_TAG) {
throw new AlgebricksException(FID.getName()
+ ": expects type INT32 for the thrid argument but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(inputVal.getByteArray()[0]));
@@ -136,7 +130,7 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
inputVal.reset();
evalLen2.evaluate(tuple);
- if (inputVal.getByteArray()[0] != SER_INT32_TYPE_TAG) {
+ if (inputVal.getByteArray()[0] != ATypeTag.SERIALIZED_INT32_TYPE_TAG) {
throw new AlgebricksException(FID.getName()
+ ": expects type INT32 for the fourth argument but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(inputVal.getByteArray()[0]));
@@ -157,15 +151,16 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
evalTokens1.evaluate(tuple);
byte[] serList = inputVal.getByteArray();
- if (serList[0] != SER_ORDEREDLIST_TYPE_TAG && serList[0] != SER_UNORDEREDLIST_TYPE_TAG) {
+ if (serList[0] != ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG
+ && serList[0] != ATypeTag.SERIALIZED_UNORDEREDLIST_TYPE_TAG) {
throw new AlgebricksException(FID.getName() + ": not defined for values of type"
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serList[0]));
}
int lengthTokens1;
- if (serList[0] == SER_ORDEREDLIST_TYPE_TAG) {
- lengthTokens1 = AOrderedListSerializerDeserializer.getNumberOfItems(inputVal
- .getByteArray());
+ if (serList[0] == ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG) {
+ lengthTokens1 = AOrderedListSerializerDeserializer
+ .getNumberOfItems(inputVal.getByteArray());
// read tokens
for (i = 0; i < lengthTokens1; i++) {
int itemOffset;
@@ -177,8 +172,8 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
tokens1.add(IntegerPointable.getInteger(serList, itemOffset));
}
} else {
- lengthTokens1 = AUnorderedListSerializerDeserializer.getNumberOfItems(inputVal
- .getByteArray());
+ lengthTokens1 = AUnorderedListSerializerDeserializer
+ .getNumberOfItems(inputVal.getByteArray());
// read tokens
for (i = 0; i < lengthTokens1; i++) {
int itemOffset;
@@ -201,15 +196,16 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
evalTokens2.evaluate(tuple);
serList = inputVal.getByteArray();
- if (serList[0] != SER_ORDEREDLIST_TYPE_TAG && serList[0] != SER_UNORDEREDLIST_TYPE_TAG) {
+ if (serList[0] != ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG
+ && serList[0] != ATypeTag.SERIALIZED_UNORDEREDLIST_TYPE_TAG) {
throw new AlgebricksException(FID.getName() + ": not defined for values of type"
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serList[0]));
}
int lengthTokens2;
- if (serList[0] == SER_ORDEREDLIST_TYPE_TAG) {
- lengthTokens2 = AOrderedListSerializerDeserializer.getNumberOfItems(inputVal
- .getByteArray());
+ if (serList[0] == ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG) {
+ lengthTokens2 = AOrderedListSerializerDeserializer
+ .getNumberOfItems(inputVal.getByteArray());
// read tokens
for (i = 0; i < lengthTokens2; i++) {
int itemOffset;
@@ -221,8 +217,8 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
tokens2.add(IntegerPointable.getInteger(serList, itemOffset));
}
} else {
- lengthTokens2 = AUnorderedListSerializerDeserializer.getNumberOfItems(inputVal
- .getByteArray());
+ lengthTokens2 = AUnorderedListSerializerDeserializer
+ .getNumberOfItems(inputVal.getByteArray());
// read tokens
for (i = 0; i < lengthTokens2; i++) {
int itemOffset;
@@ -249,8 +245,8 @@ public class SimilarityDescriptor extends AbstractScalarFunctionDynamicDescripto
//
SimilarityMetric.getPartialIntersectSize(tokens1.get(), 0, tokens1.length(), tokens2.get(),
0, tokens2.length(), tokenPrefix, parInter);
- if (similarityFilters.passPositionFilter(parInter.intersectSize, parInter.posXStop,
- length1, parInter.posYStop, length2)) {
+ if (similarityFilters.passPositionFilter(parInter.intersectSize, parInter.posXStop, length1,
+ parInter.posYStop, length2)) {
//
// -- - suffix filter - --
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialAreaDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialAreaDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialAreaDescriptor.java
index 12e2cb0..a3ad867 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialAreaDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialAreaDescriptor.java
@@ -51,6 +51,7 @@ public class SpatialAreaDescriptor extends AbstractScalarFunctionDynamicDescript
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new SpatialAreaDescriptor();
}
@@ -92,14 +93,14 @@ public class SpatialAreaDescriptor extends AbstractScalarFunctionDynamicDescript
+ ": polygon must have at least 3 points");
}
area = Math.abs(SpatialUtils.polygonArea(argOut.getByteArray(), numOfPoints));
- out.writeByte(ATypeTag.DOUBLE.serialize());
+ out.writeByte(ATypeTag.SERIALIZED_DOUBLE_TYPE_TAG);
out.writeDouble(area);
break;
case CIRCLE:
double radius = ADoubleSerializerDeserializer.getDouble(argOut.getByteArray(),
ACircleSerializerDeserializer.getRadiusOffset());
area = SpatialUtils.pi() * radius * radius;
- out.writeByte(ATypeTag.DOUBLE.serialize());
+ out.writeByte(ATypeTag.SERIALIZED_DOUBLE_TYPE_TAG);
out.writeDouble(area);
break;
case RECTANGLE:
@@ -117,7 +118,7 @@ public class SpatialAreaDescriptor extends AbstractScalarFunctionDynamicDescript
ARectangleSerializerDeserializer
.getUpperRightCoordinateOffset(Coordinate.Y));
area = (x2 - x1) * (y2 - y1);
- out.writeByte(ATypeTag.DOUBLE.serialize());
+ out.writeByte(ATypeTag.SERIALIZED_DOUBLE_TYPE_TAG);
out.writeDouble(area);
break;
case NULL:
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialDistanceDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialDistanceDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialDistanceDescriptor.java
index ad86c64..70adde4 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialDistanceDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SpatialDistanceDescriptor.java
@@ -48,6 +48,7 @@ public class SpatialDistanceDescriptor extends AbstractScalarFunctionDynamicDesc
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new SpatialDistanceDescriptor();
}
@@ -97,10 +98,9 @@ public class SpatialDistanceDescriptor extends AbstractScalarFunctionDynamicDesc
APointSerializerDeserializer.getCoordinateOffset(Coordinate.Y));
distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));
} else {
- throw new NotImplementedException(
- AsterixBuiltinFunctions.SPATIAL_DISTANCE.getName()
- + ": does not support the type: " + tag1
- + "; it is only implemented for POINT.");
+ throw new NotImplementedException(AsterixBuiltinFunctions.SPATIAL_DISTANCE.getName()
+ + ": does not support the type: " + tag1
+ + "; it is only implemented for POINT.");
}
} else if (tag0 == ATypeTag.NULL || tag1 == ATypeTag.NULL) {
nullSerde.serialize(ANull.NULL, out);
@@ -109,7 +109,7 @@ public class SpatialDistanceDescriptor extends AbstractScalarFunctionDynamicDesc
+ ": does not support the type: " + tag1
+ "; it is only implemented for POINT.");
}
- out.writeByte(ATypeTag.DOUBLE.serialize());
+ out.writeByte(ATypeTag.SERIALIZED_DOUBLE_TYPE_TAG);
out.writeDouble(distance);
} catch (HyracksDataException hde) {
throw new AlgebricksException(hde);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringConcatDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringConcatDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringConcatDescriptor.java
index b3feba7..52734b2 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringConcatDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringConcatDescriptor.java
@@ -45,11 +45,8 @@ import org.apache.hyracks.util.string.UTF8StringUtil;
public class StringConcatDescriptor extends AbstractScalarFunctionDynamicDescriptor {
private static final long serialVersionUID = 1L;
-
- private static final byte SER_ORDEREDLIST_TYPE_TAG = ATypeTag.ORDEREDLIST.serialize();
- private static final byte SER_UNORDEREDLIST_TYPE_TAG = ATypeTag.UNORDEREDLIST.serialize();
-
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new StringConcatDescriptor();
}
@@ -81,8 +78,8 @@ public class StringConcatDescriptor extends AbstractScalarFunctionDynamicDescrip
outInputList.reset();
evalList.evaluate(tuple);
byte[] listBytes = outInputList.getByteArray();
- if (listBytes[0] != SER_ORDEREDLIST_TYPE_TAG
- && listBytes[0] != SER_UNORDEREDLIST_TYPE_TAG) {
+ if (listBytes[0] != ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG
+ && listBytes[0] != ATypeTag.SERIALIZED_UNORDEREDLIST_TYPE_TAG) {
throw new AlgebricksException(AsterixBuiltinFunctions.STRING_CONCAT.getName()
+ ": expects input type ORDEREDLIST/UNORDEREDLIST, but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(listBytes[0]));
@@ -113,7 +110,7 @@ public class StringConcatDescriptor extends AbstractScalarFunctionDynamicDescrip
}
utf8Len += UTF8StringUtil.getUTFLength(listBytes, itemOffset);
}
- out.writeByte(ATypeTag.STRING.serialize());
+ out.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
int cbytes = UTF8StringUtil.encodeUTF8Length(utf8Len, tempLengthArray, 0);
out.write(tempLengthArray, 0, cbytes);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringJoinDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringJoinDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringJoinDescriptor.java
index 650beb0..866d6c4 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringJoinDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringJoinDescriptor.java
@@ -42,13 +42,11 @@ public class StringJoinDescriptor extends AbstractScalarFunctionDynamicDescripto
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new StringJoinDescriptor();
}
};
- private final static byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
- private final static byte SER_ORDEREDLIST_TYPE_TAG = ATypeTag.ORDEREDLIST.serialize();
- private final byte stringTypeTag = ATypeTag.STRING.serialize();
@Override
public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args) {
@@ -79,14 +77,14 @@ public class StringJoinDescriptor extends AbstractScalarFunctionDynamicDescripto
outInputSep.reset();
evalSep.evaluate(tuple);
byte[] serSep = outInputSep.getByteArray();
- if (serOrderedList[0] != SER_ORDEREDLIST_TYPE_TAG
- && serOrderedList[1] != SER_STRING_TYPE_TAG) {
+ if (serOrderedList[0] != ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG
+ && serOrderedList[1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
throw new AlgebricksException(AsterixBuiltinFunctions.STRING_JOIN.getName()
+ ": expects input type ORDEREDLIST but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serOrderedList[0]));
}
- if (serSep[0] != SER_STRING_TYPE_TAG) {
+ if (serSep[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
throw new AlgebricksException(AsterixBuiltinFunctions.STRING_JOIN.getName()
+ ": expects STRING type for the seperator but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serSep[0]));
@@ -100,8 +98,8 @@ public class StringJoinDescriptor extends AbstractScalarFunctionDynamicDescripto
int sep_meta_len = UTF8StringUtil.getNumBytesToStoreLength(sep_len);
for (int i = 0; i < size; i++) {
- int itemOffset = AOrderedListSerializerDeserializer
- .getItemOffset(serOrderedList, i);
+ int itemOffset = AOrderedListSerializerDeserializer.getItemOffset(serOrderedList,
+ i);
int currentSize = UTF8StringUtil.getUTFLength(serOrderedList, itemOffset);
if (i != size - 1 && currentSize != 0) {
@@ -109,12 +107,12 @@ public class StringJoinDescriptor extends AbstractScalarFunctionDynamicDescripto
}
utf_8_len += currentSize;
}
- out.writeByte(stringTypeTag);
+ out.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
int length = UTF8StringUtil.encodeUTF8Length(utf_8_len, tempLengthArray, 0);
out.write(tempLengthArray, 0, length);
for (int i = 0; i < size; i++) {
- int itemOffset = AOrderedListSerializerDeserializer
- .getItemOffset(serOrderedList, i);
+ int itemOffset = AOrderedListSerializerDeserializer.getItemOffset(serOrderedList,
+ i);
utf_8_len = UTF8StringUtil.getUTFLength(serOrderedList, itemOffset);
out.write(serOrderedList,
itemOffset + UTF8StringUtil.getNumBytesToStoreLength(utf_8_len), utf_8_len);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java
index 47ecb5b..5a6c1a0 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLengthDescriptor.java
@@ -43,7 +43,6 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
import org.apache.hyracks.util.string.UTF8StringUtil;
public class StringLengthDescriptor extends AbstractScalarFunctionDynamicDescriptor {
-
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
@Override
@@ -51,8 +50,6 @@ public class StringLengthDescriptor extends AbstractScalarFunctionDynamicDescrip
return new StringLengthDescriptor();
}
};
- private final static byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
- private final static byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
@Override
public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args) {
@@ -80,11 +77,11 @@ public class StringLengthDescriptor extends AbstractScalarFunctionDynamicDescrip
outInput.reset();
eval.evaluate(tuple);
byte[] serString = outInput.getByteArray();
- if (serString[0] == SER_STRING_TYPE_TAG) {
+ if (serString[0] == ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
int len = UTF8StringUtil.getUTFLength(outInput.getByteArray(), 1);
result.setValue(len);
int64Serde.serialize(result, out);
- } else if (serString[0] == SER_NULL_TYPE_TAG)
+ } else if (serString[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG)
nullSerde.serialize(ANull.NULL, out);
else {
throw new AlgebricksException(AsterixBuiltinFunctions.STRING_LENGTH.getName()
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLowerCaseDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLowerCaseDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLowerCaseDescriptor.java
index 66212f7..7ae1e89 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLowerCaseDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringLowerCaseDescriptor.java
@@ -46,12 +46,11 @@ public class StringLowerCaseDescriptor extends AbstractScalarFunctionDynamicDesc
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new StringLowerCaseDescriptor();
}
};
- private final static byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
- private final static byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
@Override
public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args) {
@@ -70,8 +69,6 @@ public class StringLowerCaseDescriptor extends AbstractScalarFunctionDynamicDesc
private final UTF8StringBuilder builder = new UTF8StringBuilder();
private final UTF8StringPointable string = new UTF8StringPointable();
- private final byte stt = ATypeTag.STRING.serialize();
-
@SuppressWarnings("unchecked")
private ISerializerDeserializer<ANull> nullSerde = AqlSerializerDeserializerProvider.INSTANCE
.getSerializerDeserializer(BuiltinType.ANULL);
@@ -84,14 +81,14 @@ public class StringLowerCaseDescriptor extends AbstractScalarFunctionDynamicDesc
eval.evaluate(tuple);
byte[] serString = outInput.getByteArray();
- if (serString[0] == SER_STRING_TYPE_TAG) {
+ if (serString[0] == ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
string.set(serString, 1, serString.length);
array.reset();
UTF8StringPointable.lowercase(string, builder, array);
- out.writeByte(stt);
+ out.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
out.write(array.getByteArray(), 0, array.getLength());
- } else if (serString[0] == SER_NULL_TYPE_TAG)
+ } else if (serString[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG)
nullSerde.serialize(ANull.NULL, out);
else
throw new AlgebricksException(AsterixBuiltinFunctions.STRING_LOWERCASE.getName()
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java
index 654e0b6..f75b8e3 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringToCodePointDescriptor.java
@@ -48,11 +48,11 @@ public class StringToCodePointDescriptor extends AbstractScalarFunctionDynamicDe
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new StringToCodePointDescriptor();
}
};
- private final static byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
@Override
public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args) {
@@ -62,8 +62,7 @@ public class StringToCodePointDescriptor extends AbstractScalarFunctionDynamicDe
@Override
public ICopyEvaluator createEvaluator(final IDataOutputProvider output) throws AlgebricksException {
return new ICopyEvaluator() {
- protected final DataOutput out = output.getDataOutput();
- ;
+ protected final DataOutput out = output.getDataOutput();;
protected final ArrayBackedValueStorage argOut = new ArrayBackedValueStorage();
protected final ICopyEvaluator stringEval = args[0].createEvaluator(argOut);
protected final AOrderedListType intListType = new AOrderedListType(BuiltinType.AINT64, null);
@@ -83,7 +82,7 @@ public class StringToCodePointDescriptor extends AbstractScalarFunctionDynamicDe
stringEval.evaluate(tuple);
byte[] serString = argOut.getByteArray();
- if (serString[0] == SER_STRING_TYPE_TAG) {
+ if (serString[0] == ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
byte[] bytes = argOut.getByteArray();
int len = UTF8StringUtil.getUTFLength(bytes, 1);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringUpperCaseDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringUpperCaseDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringUpperCaseDescriptor.java
index fc32dfd..02e495f 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringUpperCaseDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/StringUpperCaseDescriptor.java
@@ -46,12 +46,11 @@ public class StringUpperCaseDescriptor extends AbstractScalarFunctionDynamicDesc
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new StringUpperCaseDescriptor();
}
};
- private final static byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
- private final static byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
@Override
public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args) {
@@ -66,7 +65,7 @@ public class StringUpperCaseDescriptor extends AbstractScalarFunctionDynamicDesc
private ArrayBackedValueStorage outInput = new ArrayBackedValueStorage();
private ICopyEvaluator eval = args[0].createEvaluator(outInput);
- private final byte stt = ATypeTag.STRING.serialize();
+ private final byte stt = ATypeTag.SERIALIZED_STRING_TYPE_TAG;
private final GrowableArray array = new GrowableArray();
private final UTF8StringBuilder builder = new UTF8StringBuilder();
@@ -84,14 +83,14 @@ public class StringUpperCaseDescriptor extends AbstractScalarFunctionDynamicDesc
eval.evaluate(tuple);
byte[] serString = outInput.getByteArray();
- if (serString[0] == SER_STRING_TYPE_TAG) {
+ if (serString[0] == ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
string.set(serString, 1, serString.length);
array.reset();
UTF8StringPointable.uppercase(string, builder, array);
out.writeByte(stt);
out.write(array.getByteArray(), 0, array.getLength());
- } else if (serString[0] == SER_NULL_TYPE_TAG)
+ } else if (serString[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG)
nullSerde.serialize(ANull.NULL, out);
else
throw new AlgebricksException(AsterixBuiltinFunctions.STRING_UPPERCASE.getName()
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/Substring2Descriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/Substring2Descriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/Substring2Descriptor.java
index f843051..a3076ce 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/Substring2Descriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/Substring2Descriptor.java
@@ -41,13 +41,9 @@ import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public class Substring2Descriptor extends AbstractScalarFunctionDynamicDescriptor {
-
private static final long serialVersionUID = 1L;
-
- // allowed input types
- private static final byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
-
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new Substring2Descriptor();
}
@@ -66,7 +62,6 @@ public class Substring2Descriptor extends AbstractScalarFunctionDynamicDescripto
private ArrayBackedValueStorage argOut = new ArrayBackedValueStorage();
private ICopyEvaluator evalString = args[0].createEvaluator(argOut);
private ICopyEvaluator evalStart = args[1].createEvaluator(argOut);
- private final byte stt = ATypeTag.STRING.serialize();
private final GrowableArray array = new GrowableArray();
private final UTF8StringBuilder builder = new UTF8StringBuilder();
@@ -87,7 +82,7 @@ public class Substring2Descriptor extends AbstractScalarFunctionDynamicDescripto
evalString.evaluate(tuple);
byte[] bytes = argOut.getByteArray();
- if (bytes[0] != SER_STRING_TYPE_TAG) {
+ if (bytes[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
throw new AlgebricksException(AsterixBuiltinFunctions.SUBSTRING2.getName()
+ ": expects type STRING for the first argument but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(argOut.getByteArray()[0]));
@@ -104,7 +99,7 @@ public class Substring2Descriptor extends AbstractScalarFunctionDynamicDescripto
}
try {
- out.writeByte(stt);
+ out.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
out.write(array.getByteArray(), 0, array.getLength());
} catch (IOException e) {
throw new AlgebricksException(e);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringAfterDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringAfterDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringAfterDescriptor.java
index ff84986..78f5a66 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringAfterDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringAfterDescriptor.java
@@ -39,14 +39,9 @@ import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public class SubstringAfterDescriptor extends AbstractScalarFunctionDynamicDescriptor {
-
private static final long serialVersionUID = 1L;
-
- // allowed input types
- private static final byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
- private static final byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
-
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new SubstringAfterDescriptor();
}
@@ -66,8 +61,6 @@ public class SubstringAfterDescriptor extends AbstractScalarFunctionDynamicDescr
private ArrayBackedValueStorage array1 = new ArrayBackedValueStorage();
private ICopyEvaluator evalString = args[0].createEvaluator(array0);
private ICopyEvaluator evalPattern = args[1].createEvaluator(array1);
- private final byte stt = ATypeTag.STRING.serialize();
-
private final GrowableArray array = new GrowableArray();
private final UTF8StringBuilder builder = new UTF8StringBuilder();
private final UTF8StringPointable stringPtr = new UTF8StringPointable();
@@ -83,8 +76,10 @@ public class SubstringAfterDescriptor extends AbstractScalarFunctionDynamicDescr
evalPattern.evaluate(tuple);
byte[] pattern = array1.getByteArray();
- if ((src[0] != SER_STRING_TYPE_TAG && src[0] != SER_NULL_TYPE_TAG)
- || (pattern[0] != SER_STRING_TYPE_TAG && pattern[0] != SER_NULL_TYPE_TAG)) {
+ if ((src[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG
+ && src[0] != ATypeTag.SERIALIZED_NULL_TYPE_TAG)
+ || (pattern[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG
+ && pattern[0] != ATypeTag.SERIALIZED_NULL_TYPE_TAG)) {
throw new AlgebricksException(AsterixBuiltinFunctions.SUBSTRING_AFTER.getName()
+ ": expects input type (STRING/NULL, STRING/NULL) but got ("
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(src[0]) + ", "
@@ -96,7 +91,7 @@ public class SubstringAfterDescriptor extends AbstractScalarFunctionDynamicDescr
array.reset();
try {
UTF8StringPointable.substrAfter(stringPtr, patternPtr, builder, array);
- out.writeByte(stt);
+ out.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
out.write(array.getByteArray(), 0, array.getLength());
} catch (IOException e) {
throw new AlgebricksException(e);
@@ -105,11 +100,11 @@ public class SubstringAfterDescriptor extends AbstractScalarFunctionDynamicDescr
}
}
- ;
+ ;
}
}
- ;
+ ;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringBeforeDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringBeforeDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringBeforeDescriptor.java
index 3871ed7..dd9a91a 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringBeforeDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringBeforeDescriptor.java
@@ -39,14 +39,9 @@ import org.apache.hyracks.data.std.util.UTF8StringBuilder;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public class SubstringBeforeDescriptor extends AbstractScalarFunctionDynamicDescriptor {
-
private static final long serialVersionUID = 1L;
-
- // allowed input types
- private static final byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
- private static final byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
-
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new SubstringBeforeDescriptor();
}
@@ -60,14 +55,11 @@ public class SubstringBeforeDescriptor extends AbstractScalarFunctionDynamicDesc
@Override
public ICopyEvaluator createEvaluator(final IDataOutputProvider output) throws AlgebricksException {
return new ICopyEvaluator() {
-
private DataOutput out = output.getDataOutput();
private ArrayBackedValueStorage array0 = new ArrayBackedValueStorage();
private ArrayBackedValueStorage array1 = new ArrayBackedValueStorage();
private ICopyEvaluator evalString = args[0].createEvaluator(array0);
private ICopyEvaluator evalPattern = args[1].createEvaluator(array1);
- private final byte stt = ATypeTag.STRING.serialize();
-
private final GrowableArray array = new GrowableArray();
private final UTF8StringBuilder builder = new UTF8StringBuilder();
private final UTF8StringPointable stringPtr = new UTF8StringPointable();
@@ -83,8 +75,10 @@ public class SubstringBeforeDescriptor extends AbstractScalarFunctionDynamicDesc
evalPattern.evaluate(tuple);
byte[] pattern = array1.getByteArray();
- if ((src[0] != SER_STRING_TYPE_TAG && src[0] != SER_NULL_TYPE_TAG)
- || (pattern[0] != SER_STRING_TYPE_TAG && pattern[0] != SER_NULL_TYPE_TAG)) {
+ if ((src[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG
+ && src[0] != ATypeTag.SERIALIZED_NULL_TYPE_TAG)
+ || (pattern[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG
+ && pattern[0] != ATypeTag.SERIALIZED_NULL_TYPE_TAG)) {
throw new AlgebricksException(AsterixBuiltinFunctions.SUBSTRING_BEFORE.getName()
+ ": expects input type (STRING/NULL, STRING/NULL) but got ("
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(src[0]) + ", "
@@ -96,7 +90,7 @@ public class SubstringBeforeDescriptor extends AbstractScalarFunctionDynamicDesc
array.reset();
try {
UTF8StringPointable.substrBefore(stringPtr, patternPtr, builder, array);
- out.writeByte(stt);
+ out.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
out.write(array.getByteArray(), 0, array.getLength());
} catch (IOException e) {
throw new AlgebricksException(e);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringDescriptor.java
index 42d64b3..07b3b64 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/SubstringDescriptor.java
@@ -47,6 +47,7 @@ public class SubstringDescriptor extends AbstractScalarFunctionDynamicDescriptor
private static final long serialVersionUID = 1L;
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new SubstringDescriptor();
}
@@ -66,7 +67,6 @@ public class SubstringDescriptor extends AbstractScalarFunctionDynamicDescriptor
private final ICopyEvaluator evalString = args[0].createEvaluator(argOut);
private final ICopyEvaluator evalStart = args[1].createEvaluator(argOut);
private final ICopyEvaluator evalLen = args[2].createEvaluator(argOut);
- private final byte stt = ATypeTag.STRING.serialize();
private final GrowableArray array = new GrowableArray();
private final UTF8StringBuilder builder = new UTF8StringBuilder();
@@ -91,7 +91,7 @@ public class SubstringDescriptor extends AbstractScalarFunctionDynamicDescriptor
start = argOut.getByteArray()[1] - 1;
break;
case INT16:
- start = (int) ShortPointable.getShort(argOut.getByteArray(), 1) - 1;
+ start = ShortPointable.getShort(argOut.getByteArray(), 1) - 1;
break;
case FLOAT:
start = (int) FloatPointable.getFloat(argOut.getByteArray(), 1) - 1;
@@ -122,7 +122,7 @@ public class SubstringDescriptor extends AbstractScalarFunctionDynamicDescriptor
len = argOut.getByteArray()[1];
break;
case INT16:
- len = (int) ShortPointable.getShort(argOut.getByteArray(), 1);
+ len = ShortPointable.getShort(argOut.getByteArray(), 1);
break;
case FLOAT:
len = (int) FloatPointable.getFloat(argOut.getByteArray(), 1);
@@ -159,7 +159,7 @@ public class SubstringDescriptor extends AbstractScalarFunctionDynamicDescriptor
}
try {
- out.writeByte(stt);
+ out.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
out.write(array.getByteArray(), 0, array.getLength());
} catch (IOException e) {
throw new AlgebricksException(e);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java
index e6de4ce..37b414b 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/binary/PrintBinaryDescriptor.java
@@ -44,7 +44,6 @@ import org.apache.hyracks.util.string.UTF8StringWriter;
public class PrintBinaryDescriptor extends AbstractScalarFunctionDynamicDescriptor {
private static final long serialVersionUID = 1L;
- private static final byte SER_STRING_BYTE = ATypeTag.STRING.serialize();
@Override
public FunctionIdentifier getIdentifier() {
@@ -101,7 +100,7 @@ public class PrintBinaryDescriptor extends AbstractScalarFunctionDynamicDescript
throw new AlgebricksException(getIdentifier().getName()
+ ": expects format indicator of \"hex\" or \"base64\" in the 2nd argument");
}
- dataOutput.writeByte(SER_STRING_BYTE);
+ dataOutput.writeByte(ATypeTag.SERIALIZED_STRING_TYPE_TAG);
writer.writeUTF8(stringBuilder.toString(), dataOutput);
} catch (HyracksDataException e) {
throw new AlgebricksException(e);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByIndexEvalFactory.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByIndexEvalFactory.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByIndexEvalFactory.java
index da42249..7bc6aef 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByIndexEvalFactory.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByIndexEvalFactory.java
@@ -50,8 +50,6 @@ public class FieldAccessByIndexEvalFactory implements ICopyEvaluatorFactory {
private ICopyEvaluatorFactory fieldIndexEvalFactory;
private int nullBitmapSize;
private ARecordType recordType;
- private final static byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
- private final static byte SER_RECORD_TYPE_TAG = ATypeTag.RECORD.serialize();
public FieldAccessByIndexEvalFactory(ICopyEvaluatorFactory recordEvalFactory,
ICopyEvaluatorFactory fieldIndexEvalFactory, ARecordType recordType) {
@@ -59,11 +57,11 @@ public class FieldAccessByIndexEvalFactory implements ICopyEvaluatorFactory {
this.fieldIndexEvalFactory = fieldIndexEvalFactory;
this.recordType = recordType;
this.nullBitmapSize = ARecordType.computeNullBitmapSize(recordType);
-
}
@Override
public ICopyEvaluator createEvaluator(final IDataOutputProvider output) throws AlgebricksException {
+
return new ICopyEvaluator() {
private DataOutput out = output.getDataOutput();
@@ -81,36 +79,41 @@ public class FieldAccessByIndexEvalFactory implements ICopyEvaluatorFactory {
private IAType fieldValueType;
private ATypeTag fieldValueTypeTag = ATypeTag.NULL;
+ /*
+ * outInput0: the record
+ * outInput1: the index
+ *
+ * This method outputs into IDataOutputProvider output [field type tag (1 byte)][the field data]
+ */
@Override
public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
try {
outInput0.reset();
eval0.evaluate(tuple);
- outInput1.reset();
- eval1.evaluate(tuple);
byte[] serRecord = outInput0.getByteArray();
- if (serRecord[0] == SER_NULL_TYPE_TAG) {
+ if (serRecord[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
nullSerde.serialize(ANull.NULL, out);
return;
}
- if (serRecord[0] != SER_RECORD_TYPE_TAG) {
+ if (serRecord[0] != ATypeTag.SERIALIZED_RECORD_TYPE_TAG) {
throw new AlgebricksException("Field accessor is not defined for values of type "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serRecord[0]));
}
-
+ outInput1.reset();
+ eval1.evaluate(tuple);
fieldIndex = IntegerPointable.getInteger(outInput1.getByteArray(), 1);
+ fieldValueType = recordType.getFieldTypes()[fieldIndex];
fieldValueOffset = ARecordSerializerDeserializer.getFieldOffsetById(serRecord, fieldIndex,
nullBitmapSize, recordType.isOpen());
if (fieldValueOffset == 0) {
// the field is null, we checked the null bit map
- out.writeByte(SER_NULL_TYPE_TAG);
+ out.writeByte(ATypeTag.SERIALIZED_NULL_TYPE_TAG);
return;
}
- fieldValueType = recordType.getFieldTypes()[fieldIndex];
if (fieldValueType.getTypeTag().equals(ATypeTag.UNION)) {
if (((AUnionType) fieldValueType).isNullableType()) {
fieldValueTypeTag = ((AUnionType) fieldValueType).getNullableType().getTypeTag();
@@ -137,5 +140,4 @@ public class FieldAccessByIndexEvalFactory implements ICopyEvaluatorFactory {
}
};
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java
index cb33da1..66bedf0 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessByNameEvalFactory.java
@@ -45,9 +45,6 @@ public class FieldAccessByNameEvalFactory implements ICopyEvaluatorFactory {
private ICopyEvaluatorFactory recordEvalFactory;
private ICopyEvaluatorFactory fldNameEvalFactory;
- private final static byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
- private final static byte SER_RECORD_TYPE_TAG = ATypeTag.RECORD.serialize();
-
public FieldAccessByNameEvalFactory(ICopyEvaluatorFactory recordEvalFactory,
ICopyEvaluatorFactory fldNameEvalFactory) {
this.recordEvalFactory = recordEvalFactory;
@@ -81,12 +78,12 @@ public class FieldAccessByNameEvalFactory implements ICopyEvaluatorFactory {
eval1.evaluate(tuple);
byte[] serRecord = outInput0.getByteArray();
- if (serRecord[0] == SER_NULL_TYPE_TAG) {
+ if (serRecord[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
nullSerde.serialize(ANull.NULL, out);
return;
}
- if (serRecord[0] != SER_RECORD_TYPE_TAG) {
+ if (serRecord[0] != ATypeTag.SERIALIZED_RECORD_TYPE_TAG) {
throw new AlgebricksException(AsterixBuiltinFunctions.FIELD_ACCESS_BY_NAME.getName()
+ ": expects input type NULL or RECORD, but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(serRecord[0]));
@@ -95,7 +92,7 @@ public class FieldAccessByNameEvalFactory implements ICopyEvaluatorFactory {
byte[] serFldName = outInput1.getByteArray();
fieldValueOffset = ARecordSerializerDeserializer.getFieldOffsetByName(serRecord, serFldName);
if (fieldValueOffset < 0) {
- out.writeByte(ATypeTag.NULL.serialize());
+ out.writeByte(ATypeTag.SERIALIZED_NULL_TYPE_TAG);
return;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessUtil.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessUtil.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessUtil.java
index a442ef4..f9bb6fc 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessUtil.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/FieldAccessUtil.java
@@ -46,10 +46,6 @@ import org.apache.hyracks.data.std.util.ByteArrayAccessibleOutputStream;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public class FieldAccessUtil {
-
- private final static byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
- private final static byte SER_RECORD_TYPE_TAG = ATypeTag.RECORD.serialize();
-
@SuppressWarnings("unchecked")
private static ISerializerDeserializer<ANull> nullSerde = AqlSerializerDeserializerProvider.INSTANCE
.getSerializerDeserializer(BuiltinType.ANULL);
@@ -72,7 +68,7 @@ public class FieldAccessUtil {
}
public static boolean checkType(byte tagId, DataOutput out) throws AlgebricksException {
- if (tagId == SER_NULL_TYPE_TAG) {
+ if (tagId == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
try {
nullSerde.serialize(ANull.NULL, out);
} catch (HyracksDataException e) {
@@ -81,7 +77,7 @@ public class FieldAccessUtil {
return true;
}
- if (tagId != SER_RECORD_TYPE_TAG) {
+ if (tagId != ATypeTag.SERIALIZED_RECORD_TYPE_TAG) {
throw new AlgebricksException("Field accessor is not defined for values of type "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(tagId));
}
@@ -118,7 +114,7 @@ public class FieldAccessUtil {
if (subType.getTypeTag().equals(ATypeTag.UNION)) {
//enforced SubType
subType = ((AUnionType) subType).getNullableType();
- if (subType.getTypeTag().serialize() != SER_RECORD_TYPE_TAG) {
+ if (subType.getTypeTag().serialize() != ATypeTag.SERIALIZED_RECORD_TYPE_TAG) {
throw new AlgebricksException("Field accessor is not defined for values of type " + subTypeTag);
}
if (subType.getTypeTag() == ATypeTag.RECORD) {
@@ -135,7 +131,7 @@ public class FieldAccessUtil {
nullBitmapSize, ((ARecordType) subType).isOpen());
if (subFieldOffset == 0) {
// the field is null, we checked the null bit map
- out.writeByte(SER_NULL_TYPE_TAG);
+ out.writeByte(ATypeTag.SERIALIZED_NULL_TYPE_TAG);
return;
}
subType = ((ARecordType) subType).getFieldTypes()[subFieldIndex];
@@ -177,7 +173,7 @@ public class FieldAccessUtil {
subFieldOffset = ARecordSerializerDeserializer.getFieldOffsetByName(subRecord,
abvsFields[i].getByteArray());
if (subFieldOffset < 0) {
- out.writeByte(SER_NULL_TYPE_TAG);
+ out.writeByte(ATypeTag.SERIALIZED_NULL_TYPE_TAG);
return;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldValueEvalFactory.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldValueEvalFactory.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldValueEvalFactory.java
index 8cabee1..501c743 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldValueEvalFactory.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldValueEvalFactory.java
@@ -44,8 +44,6 @@ public class GetRecordFieldValueEvalFactory implements ICopyEvaluatorFactory {
private ICopyEvaluatorFactory fldNameEvalFactory;
private final ARecordType recordType;
- private final static byte SER_STRING_TYPE_TAG = ATypeTag.STRING.serialize();
-
public GetRecordFieldValueEvalFactory(ICopyEvaluatorFactory recordEvalFactory,
ICopyEvaluatorFactory fldNameEvalFactory, ARecordType recordType) {
this.recordEvalFactory = recordEvalFactory;
@@ -89,7 +87,7 @@ public class GetRecordFieldValueEvalFactory implements ICopyEvaluatorFactory {
eval1.evaluate(tuple);
byte[] serFldName = outInput1.getByteArray();
- if (serFldName[0] != SER_STRING_TYPE_TAG) {
+ if (serFldName[0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
nullSerde.serialize(ANull.NULL, out);
return;
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldsEvalFactory.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldsEvalFactory.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldsEvalFactory.java
index d8bafc0..d3f7a79 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldsEvalFactory.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/GetRecordFieldsEvalFactory.java
@@ -39,15 +39,10 @@ import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public class GetRecordFieldsEvalFactory implements ICopyEvaluatorFactory {
-
private static final long serialVersionUID = 1L;
-
private ICopyEvaluatorFactory recordEvalFactory;
private final ARecordType recordType;
- private final byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
- private final byte SER_RECORD_TYPE_TAG = ATypeTag.RECORD.serialize();
-
public GetRecordFieldsEvalFactory(ICopyEvaluatorFactory recordEvalFactory, ARecordType recordType) {
this.recordEvalFactory = recordEvalFactory;
this.recordType = recordType;
@@ -74,7 +69,7 @@ public class GetRecordFieldsEvalFactory implements ICopyEvaluatorFactory {
outInput0.reset();
eval0.evaluate(tuple);
- if (outInput0.getByteArray()[0] == SER_NULL_TYPE_TAG) {
+ if (outInput0.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
try {
nullSerde.serialize(ANull.NULL, out);
} catch (HyracksDataException e) {
@@ -82,7 +77,7 @@ public class GetRecordFieldsEvalFactory implements ICopyEvaluatorFactory {
}
}
- if (outInput0.getByteArray()[0] != SER_RECORD_TYPE_TAG) {
+ if (outInput0.getByteArray()[0] != ATypeTag.SERIALIZED_RECORD_TYPE_TAG) {
throw new AlgebricksException("Field accessor is not defined for values of type "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(outInput0.getByteArray()[0]));
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
index c26daca..d9323a5 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordAddFieldsDescriptor.java
@@ -62,6 +62,7 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public class RecordAddFieldsDescriptor extends AbstractScalarFunctionDynamicDescriptor {
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new RecordAddFieldsDescriptor();
}
@@ -87,10 +88,6 @@ public class RecordAddFieldsDescriptor extends AbstractScalarFunctionDynamicDesc
return new ICopyEvaluatorFactory() {
private static final long serialVersionUID = 1L;
- private final byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
- private final byte SER_ORDERED_TYPE_TAG = ATypeTag.ORDEREDLIST.serialize();
- private final byte SER_RECORD_TYPE_TAG = ATypeTag.RECORD.serialize();
-
@SuppressWarnings("unchecked")
private final ISerializerDeserializer<ANull> nullSerDe = AqlSerializerDeserializerProvider.INSTANCE
.getSerializerDeserializer(BuiltinType.ANULL);
@@ -145,8 +142,8 @@ public class RecordAddFieldsDescriptor extends AbstractScalarFunctionDynamicDesc
eval0.evaluate(tuple);
eval1.evaluate(tuple);
- if (abvs0.getByteArray()[0] == SER_NULL_TYPE_TAG
- || abvs1.getByteArray()[0] == SER_NULL_TYPE_TAG) {
+ if (abvs0.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG
+ || abvs1.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
try {
nullSerDe.serialize(ANull.NULL, output.getDataOutput());
} catch (HyracksDataException e) {
@@ -156,14 +153,14 @@ public class RecordAddFieldsDescriptor extends AbstractScalarFunctionDynamicDesc
}
// Make sure we get a valid record
- if (abvs0.getByteArray()[0] != SER_RECORD_TYPE_TAG) {
+ if (abvs0.getByteArray()[0] != ATypeTag.SERIALIZED_RECORD_TYPE_TAG) {
throw new AlgebricksException("Expected an ordederlist of type " + inRecType + " but "
+ "got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(abvs0.getByteArray()[0]));
}
// Make sure we get a valid list
- if (abvs1.getByteArray()[0] != SER_ORDERED_TYPE_TAG) {
+ if (abvs1.getByteArray()[0] != ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG) {
throw new AlgebricksException("Expected an ordederlist of type " + inListType + " but "
+ "got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(abvs1.getByteArray()[0]));
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescriptor.java
index 2c1a335..afd6fc1 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordMergeDescriptor.java
@@ -64,12 +64,12 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public class RecordMergeDescriptor extends AbstractScalarFunctionDynamicDescriptor {
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new RecordMergeDescriptor();
}
};
private static final long serialVersionUID = 1L;
- private static final byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
private ARecordType outRecType;
private ARecordType inRecType0;
private ARecordType inRecType1;
@@ -119,8 +119,8 @@ public class RecordMergeDescriptor extends AbstractScalarFunctionDynamicDescript
eval0.evaluate(tuple);
eval1.evaluate(tuple);
- if (abvs0.getByteArray()[0] == SER_NULL_TYPE_TAG
- || abvs1.getByteArray()[0] == SER_NULL_TYPE_TAG) {
+ if (abvs0.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG
+ || abvs1.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
try {
nullSerDe.serialize(ANull.NULL, output.getDataOutput());
} catch (HyracksDataException e) {
@@ -146,7 +146,7 @@ public class RecordMergeDescriptor extends AbstractScalarFunctionDynamicDescript
private void mergeFields(ARecordType combinedType, ARecordVisitablePointable leftRecord,
ARecordVisitablePointable rightRecord, boolean openFromParent, int nestedLevel)
- throws IOException, AsterixException, AlgebricksException {
+ throws IOException, AsterixException, AlgebricksException {
if (rbStack.size() < (nestedLevel + 1)) {
rbStack.add(new RecordBuilder());
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsDescriptor.java
index 0add4f0..ae752f9 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsDescriptor.java
@@ -23,7 +23,6 @@ import org.apache.asterix.om.functions.IFunctionDescriptor;
import org.apache.asterix.om.functions.IFunctionDescriptorFactory;
import org.apache.asterix.om.types.AOrderedListType;
import org.apache.asterix.om.types.ARecordType;
-import org.apache.asterix.om.types.ATypeTag;
import org.apache.asterix.om.types.IAType;
import org.apache.asterix.runtime.evaluators.base.AbstractScalarFunctionDynamicDescriptor;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
@@ -31,19 +30,15 @@ import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
import org.apache.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory;
public class RecordRemoveFieldsDescriptor extends AbstractScalarFunctionDynamicDescriptor {
-
private static final long serialVersionUID = 1L;
-
- private static final byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
- private static final byte SER_ORDEREDLIST_TYPE_TAG = ATypeTag.ORDEREDLIST.serialize();
-
public static final IFunctionDescriptorFactory FACTORY = new IFunctionDescriptorFactory() {
+ @Override
public IFunctionDescriptor createFunctionDescriptor() {
return new RecordRemoveFieldsDescriptor();
}
};
- private RecordRemoveFieldsDescriptor() {
+ private RecordRemoveFieldsDescriptor() {
}
private ARecordType outputRecordType;
@@ -56,6 +51,7 @@ public class RecordRemoveFieldsDescriptor extends AbstractScalarFunctionDynamicD
inputListType = (AOrderedListType) inListType;
}
+ @Override
public ICopyEvaluatorFactory createEvaluatorFactory(final ICopyEvaluatorFactory[] args) throws AlgebricksException {
return new RecordRemoveFieldsEvalFactory(args[0], args[1], outputRecordType, inputRecType, inputListType);
}
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsEvalFactory.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsEvalFactory.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsEvalFactory.java
index a74f055..441f91f 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsEvalFactory.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/records/RecordRemoveFieldsEvalFactory.java
@@ -53,10 +53,6 @@ import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
class RecordRemoveFieldsEvalFactory implements ICopyEvaluatorFactory {
private static final long serialVersionUID = 1L;
-
- private static final byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
- private static final byte SER_ORDEREDLIST_TYPE_TAG = ATypeTag.ORDEREDLIST.serialize();
- private static final byte SER_RECORD_TYPE_TAG = ATypeTag.RECORD.serialize();
@SuppressWarnings("unchecked")
private final ISerializerDeserializer<ANull> nullSerDe = AqlSerializerDeserializerProvider.INSTANCE
.getSerializerDeserializer(BuiltinType.ANULL);
@@ -95,7 +91,6 @@ class RecordRemoveFieldsEvalFactory implements ICopyEvaluatorFactory {
private final ArrayBackedValueStorage tabvs = new ArrayBackedValueStorage();
private final Deque<IVisitablePointable> recordPath = new ArrayDeque<>();
-
@Override
public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
outInput0.reset();
@@ -104,7 +99,7 @@ class RecordRemoveFieldsEvalFactory implements ICopyEvaluatorFactory {
eval0.evaluate(tuple);
eval1.evaluate(tuple);
- if (outInput0.getByteArray()[0] == SER_NULL_TYPE_TAG) {
+ if (outInput0.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
try {
nullSerDe.serialize(ANull.NULL, output.getDataOutput());
} catch (HyracksDataException e) {
@@ -113,13 +108,13 @@ class RecordRemoveFieldsEvalFactory implements ICopyEvaluatorFactory {
return;
}
- if (outInput0.getByteArray()[0] != SER_RECORD_TYPE_TAG) {
+ if (outInput0.getByteArray()[0] != ATypeTag.SERIALIZED_RECORD_TYPE_TAG) {
throw new AlgebricksException(AsterixBuiltinFunctions.REMOVE_FIELDS.getName()
+ ": expects input type " + inputRecType + ", but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(outInput0.getByteArray()[0]));
}
- if (outInput1.getByteArray()[0] != SER_ORDEREDLIST_TYPE_TAG) {
+ if (outInput1.getByteArray()[0] != ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG) {
throw new AlgebricksException(AsterixBuiltinFunctions.REMOVE_FIELDS.getName()
+ ": expects input type " + inputListType + ", but got "
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(outInput1.getByteArray()[0]));
@@ -142,8 +137,8 @@ class RecordRemoveFieldsEvalFactory implements ICopyEvaluatorFactory {
}
private void processRecord(ARecordType requiredType, ARecordVisitablePointable srp,
- AListVisitablePointable inputList, int nestedLevel) throws IOException, AsterixException,
- AlgebricksException {
+ AListVisitablePointable inputList, int nestedLevel)
+ throws IOException, AsterixException, AlgebricksException {
if (rbStack.size() < (nestedLevel + 1)) {
rbStack.add(new RecordBuilder());
}
@@ -173,8 +168,8 @@ class RecordRemoveFieldsEvalFactory implements ICopyEvaluatorFactory {
private void addKeptFieldToSubRecord(ARecordType requiredType, IVisitablePointable fieldNamePointable,
IVisitablePointable fieldValuePointable, IVisitablePointable fieldTypePointable,
- AListVisitablePointable inputList, int nestedLevel) throws IOException, AsterixException,
- AlgebricksException {
+ AListVisitablePointable inputList, int nestedLevel)
+ throws IOException, AsterixException, AlgebricksException {
runtimeRecordTypeInfo.reset(requiredType);
int pos = runtimeRecordTypeInfo.getFieldIndex(fieldNamePointable.getByteArray(),
@@ -191,7 +186,8 @@ class RecordRemoveFieldsEvalFactory implements ICopyEvaluatorFactory {
}
} else { // Open field
if (PointableHelper.sameType(ATypeTag.RECORD, fieldTypePointable)) {
- processRecord(null, (ARecordVisitablePointable) fieldValuePointable, inputList, nestedLevel + 1);
+ processRecord(null, (ARecordVisitablePointable) fieldValuePointable, inputList,
+ nestedLevel + 1);
tabvs.reset();
rbStack.get(nestedLevel + 1).write(tabvs.getDataOutput(), true);
rbStack.get(nestedLevel).addField(fieldNamePointable, tabvs);
http://git-wip-us.apache.org/repos/asf/incubator-asterixdb/blob/5dc958ce/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractIntervalLogicFuncDescriptor.java
----------------------------------------------------------------------
diff --git a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractIntervalLogicFuncDescriptor.java b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractIntervalLogicFuncDescriptor.java
index 4c5a748..da00cd2 100644
--- a/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractIntervalLogicFuncDescriptor.java
+++ b/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/AbstractIntervalLogicFuncDescriptor.java
@@ -38,13 +38,8 @@ import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
import org.apache.hyracks.dataflow.common.data.accessors.IFrameTupleReference;
public abstract class AbstractIntervalLogicFuncDescriptor extends AbstractScalarFunctionDynamicDescriptor {
-
private final static long serialVersionUID = 1L;
- // allowed input types
- private final static byte SER_INTERVAL_TYPE_TAG = ATypeTag.INTERVAL.serialize();
- private final static byte SER_NULL_TYPE_TAG = ATypeTag.NULL.serialize();
-
/* (non-Javadoc)
* @see org.apache.asterix.runtime.base.IScalarFunctionDynamicDescriptor#createEvaluatorFactory(org.apache.hyracks.algebricks.runtime.base.ICopyEvaluatorFactory[])
*/
@@ -81,24 +76,27 @@ public abstract class AbstractIntervalLogicFuncDescriptor extends AbstractScalar
eval1.evaluate(tuple);
try {
- if (argOut0.getByteArray()[0] == SER_NULL_TYPE_TAG
- || argOut1.getByteArray()[0] == SER_NULL_TYPE_TAG) {
+ if (argOut0.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG
+ || argOut1.getByteArray()[0] == ATypeTag.SERIALIZED_NULL_TYPE_TAG) {
nullSerde.serialize(ANull.NULL, out);
return;
}
- if (argOut0.getByteArray()[0] != SER_INTERVAL_TYPE_TAG
- || argOut1.getByteArray()[0] != SER_INTERVAL_TYPE_TAG) {
- throw new AlgebricksException(getIdentifier().getName()
- + ": expects input type (INTERVAL, INTERVAL) but got ("
- + EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(argOut0.getByteArray()[0])
- + ", "
- + EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(argOut1.getByteArray()[0])
- + ")");
+ if (argOut0.getByteArray()[0] != ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG
+ || argOut1.getByteArray()[0] != ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) {
+ throw new AlgebricksException(
+ getIdentifier().getName()
+ + ": expects input type (INTERVAL, INTERVAL) but got ("
+ + EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(
+ argOut0.getByteArray()[0])
+ + ", " + EnumDeserializer.ATYPETAGDESERIALIZER
+ .deserialize(argOut1.getByteArray()[0])
+ + ")");
}
- if (AIntervalSerializerDeserializer.getIntervalTimeType(argOut0.getByteArray(), 1) != AIntervalSerializerDeserializer
- .getIntervalTimeType(argOut1.getByteArray(), 1)) {
+ if (AIntervalSerializerDeserializer.getIntervalTimeType(argOut0.getByteArray(),
+ 1) != AIntervalSerializerDeserializer.getIntervalTimeType(argOut1.getByteArray(),
+ 1)) {
throw new AlgebricksException(getIdentifier().getName()
+ ": failed to compare intervals with different internal time type.");
}
@@ -107,8 +105,8 @@ public abstract class AbstractIntervalLogicFuncDescriptor extends AbstractScalar
AIntervalSerializerDeserializer.getIntervalStart(argOut0.getByteArray(), 1),
AIntervalSerializerDeserializer.getIntervalEnd(argOut0.getByteArray(), 1),
AIntervalSerializerDeserializer.getIntervalStart(argOut1.getByteArray(), 1),
- AIntervalSerializerDeserializer.getIntervalEnd(argOut1.getByteArray(), 1))) ? ABoolean.TRUE
- : ABoolean.FALSE;
+ AIntervalSerializerDeserializer.getIntervalEnd(argOut1.getByteArray(), 1)))
+ ? ABoolean.TRUE : ABoolean.FALSE;
booleanSerde.serialize(res, out);