You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by dl...@apache.org on 2018/05/30 17:44:31 UTC
[04/24] asterixdb git commit: [ASTERIXDB-2393][COMP][RT] Add source
location to error messages
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetOverlappingIntervalDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetOverlappingIntervalDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetOverlappingIntervalDescriptor.java
index 4bd3ede..7a15151 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetOverlappingIntervalDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetOverlappingIntervalDescriptor.java
@@ -62,7 +62,7 @@ public class GetOverlappingIntervalDescriptor extends AbstractScalarFunctionDyna
public IScalarEvaluator createScalarEvaluator(final IHyracksTaskContext ctx) throws HyracksDataException {
return new IScalarEvaluator() {
- protected final IntervalLogic il = new IntervalLogic();
+ protected final IntervalLogic il = new IntervalLogic(sourceLoc);
private ArrayBackedValueStorage resultStorage = new ArrayBackedValueStorage();
private DataOutput out = resultStorage.getDataOutput();
private TaggedValuePointable argPtr0 =
@@ -100,7 +100,8 @@ public class GetOverlappingIntervalDescriptor extends AbstractScalarFunctionDyna
byte intervalType1 = interval1.getType();
if (intervalType0 != intervalType1) {
- throw new IncompatibleTypeException(getIdentifier(), intervalType0, intervalType1);
+ throw new IncompatibleTypeException(sourceLoc, getIdentifier(), intervalType0,
+ intervalType1);
}
if (il.overlaps(interval0, interval1) || il.overlappedBy(interval0, interval1)
@@ -115,10 +116,10 @@ public class GetOverlappingIntervalDescriptor extends AbstractScalarFunctionDyna
result.set(resultStorage);
return;
} else if (type0 != ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, type0,
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, type0,
ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG);
} else {
- throw new IncompatibleTypeException(getIdentifier(), type0, type1);
+ throw new IncompatibleTypeException(sourceLoc, getIdentifier(), type0, type1);
}
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetYearMonthDurationDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetYearMonthDurationDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetYearMonthDurationDescriptor.java
index fd58d6c..03faa96 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetYearMonthDurationDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/GetYearMonthDurationDescriptor.java
@@ -81,7 +81,7 @@ public class GetYearMonthDurationDescriptor extends AbstractScalarFunctionDynami
byte[] bytes0 = argPtr0.getByteArray();
int offset0 = argPtr0.getStartOffset();
if (bytes0[offset0] != ATypeTag.SERIALIZED_DURATION_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_DURATION_TYPE_TAG);
}
aYearMonthDuration.setMonths(ADurationSerializerDeserializer.getYearMonth(bytes0, offset0 + 1));
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
index 5694c27..ac2e06a 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalBinDescriptor.java
@@ -117,7 +117,7 @@ public class IntervalBinDescriptor extends AbstractScalarFunctionDynamicDescript
chrononToBin = ADateTimeSerializerDeserializer.getChronon(bytes0, offset0 + 1);
break;
default:
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_DATE_TYPE_TAG, ATypeTag.SERIALIZED_TIME_TYPE_TAG,
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
@@ -127,7 +127,8 @@ public class IntervalBinDescriptor extends AbstractScalarFunctionDynamicDescript
ATypeTag type1 = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(bytes1[offset1]);
if (type0 != type1) {
- throw new IncompatibleTypeException(getIdentifier(), bytes0[offset0], bytes1[offset1]);
+ throw new IncompatibleTypeException(sourceLoc, getIdentifier(), bytes0[offset0],
+ bytes1[offset1]);
}
long chrononToStart = 0;
@@ -143,7 +144,7 @@ public class IntervalBinDescriptor extends AbstractScalarFunctionDynamicDescript
chrononToStart = ADateTimeSerializerDeserializer.getChronon(bytes1, offset1 + 1);
break;
default:
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_DATE_TYPE_TAG, ATypeTag.SERIALIZED_TIME_TYPE_TAG,
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
@@ -169,11 +170,11 @@ public class IntervalBinDescriptor extends AbstractScalarFunctionDynamicDescript
+ ((totalMonths < 0 && totalMonths % yearMonth != 0) ? -1 : 0);
if (binIndex > Integer.MAX_VALUE) {
- throw new OverflowException(getIdentifier());
+ throw new OverflowException(sourceLoc, getIdentifier());
}
if (binIndex < Integer.MIN_VALUE) {
- throw new UnderflowException(getIdentifier());
+ throw new UnderflowException(sourceLoc, getIdentifier());
}
break;
@@ -209,7 +210,7 @@ public class IntervalBinDescriptor extends AbstractScalarFunctionDynamicDescript
break;
case TIME:
if (yearMonth != 0) {
- throw new InvalidDataFormatException(getIdentifier(),
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG);
}
binStartChronon = DurationArithmeticOperations.addDuration(chrononToStart,
@@ -224,7 +225,7 @@ public class IntervalBinDescriptor extends AbstractScalarFunctionDynamicDescript
yearMonth * ((int) binIndex + 1), dayTime * (binIndex + 1), false);
break;
default:
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_DATE_TYPE_TAG, ATypeTag.SERIALIZED_TIME_TYPE_TAG,
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java
index 8f447d0..db0046c 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/IntervalLogic.java
@@ -23,18 +23,23 @@ import java.io.Serializable;
import org.apache.asterix.om.pointables.nonvisitor.AIntervalPointable;
import org.apache.asterix.runtime.evaluators.comparisons.ComparisonHelper;
import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.exceptions.SourceLocation;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.VoidPointable;
public class IntervalLogic implements Serializable {
private static final long serialVersionUID = 1L;
- private final ComparisonHelper ch = new ComparisonHelper();
+ private final ComparisonHelper ch;
private final transient IPointable s1 = VoidPointable.FACTORY.createPointable();
private final transient IPointable e1 = VoidPointable.FACTORY.createPointable();
private final transient IPointable s2 = VoidPointable.FACTORY.createPointable();
private final transient IPointable e2 = VoidPointable.FACTORY.createPointable();
+ public IntervalLogic(SourceLocation sourceLoc) {
+ ch = new ComparisonHelper(sourceLoc);
+ }
+
public boolean validateInterval(AIntervalPointable ip1) throws HyracksDataException {
ip1.getStart(s1);
ip1.getEnd(e1);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MillisecondsFromDayTimeDurationDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MillisecondsFromDayTimeDurationDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MillisecondsFromDayTimeDurationDescriptor.java
index c3bf58d..8e01e11 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MillisecondsFromDayTimeDurationDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MillisecondsFromDayTimeDurationDescriptor.java
@@ -80,7 +80,7 @@ public class MillisecondsFromDayTimeDurationDescriptor extends AbstractScalarFun
byte[] bytes = argPtr0.getByteArray();
int offset = argPtr0.getStartOffset();
if (bytes[offset] != ATypeTag.SERIALIZED_DAY_TIME_DURATION_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes[offset],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes[offset],
ATypeTag.SERIALIZED_DAY_TIME_DURATION_TYPE_TAG);
}
aInt64.setValue(ADayTimeDurationSerializerDeserializer.getDayTime(bytes, offset + 1));
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MonthsFromYearMonthDurationDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MonthsFromYearMonthDurationDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MonthsFromYearMonthDurationDescriptor.java
index 3d595c3..5bfd78e 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MonthsFromYearMonthDurationDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/MonthsFromYearMonthDurationDescriptor.java
@@ -81,7 +81,7 @@ public class MonthsFromYearMonthDurationDescriptor extends AbstractScalarFunctio
int offset = argPtr0.getStartOffset();
if (bytes[offset] != ATypeTag.SERIALIZED_YEAR_MONTH_DURATION_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes[offset],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes[offset],
ATypeTag.SERIALIZED_YEAR_MONTH_DURATION_TYPE_TAG);
}
aInt64.setValue(AYearMonthDurationSerializerDeserializer.getYearMonth(bytes, offset + 1));
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/OverlapBinsDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/OverlapBinsDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/OverlapBinsDescriptor.java
index 9710e3f..c8f73b9 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/OverlapBinsDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/OverlapBinsDescriptor.java
@@ -125,7 +125,7 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
intervalStart = intervalStart * GregorianCalendarSystem.CHRONON_OF_DAY;
}
} else {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG);
}
@@ -134,7 +134,8 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
int offset1 = argPtr1.getStartOffset();
ATypeTag type1 = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(bytes1[offset1]);
if (intervalTypeTag != bytes1[offset1]) {
- throw new IncompatibleTypeException(getIdentifier(), intervalTypeTag, bytes1[offset1]);
+ throw new IncompatibleTypeException(sourceLoc, getIdentifier(), intervalTypeTag,
+ bytes1[offset1]);
}
long anchorTime;
@@ -150,7 +151,7 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
anchorTime = ADateTimeSerializerDeserializer.getChronon(bytes1, offset1 + 1);
break;
default:
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_DATE_TYPE_TAG, ATypeTag.SERIALIZED_TIME_TYPE_TAG,
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
@@ -178,11 +179,11 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
+ ((totalMonths < 0 && totalMonths % yearMonth != 0) ? -1 : 0);
if (firstBinIndex > Integer.MAX_VALUE) {
- throw new OverflowException(getIdentifier());
+ throw new OverflowException(sourceLoc, getIdentifier());
}
if (firstBinIndex < Integer.MIN_VALUE) {
- throw new UnderflowException(getIdentifier());
+ throw new UnderflowException(sourceLoc, getIdentifier());
}
break;
@@ -195,7 +196,7 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
+ ((totalChronon < 0 && totalChronon % dayTime != 0) ? -1 : 0);
break;
default:
- throw new TypeMismatchException(getIdentifier(), 2, bytes2[offset2],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 2, bytes2[offset2],
ATypeTag.SERIALIZED_YEAR_MONTH_DURATION_TYPE_TAG,
ATypeTag.SERIALIZED_DAY_TIME_DURATION_TYPE_TAG);
}
@@ -233,7 +234,7 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
} else if (intervalTypeTag == ATypeTag.SERIALIZED_TIME_TYPE_TAG) {
if (yearMonth != 0) {
- throw new InvalidDataFormatException(getIdentifier(),
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG);
}
@@ -248,7 +249,7 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
if (binStartChronon < 0 || binStartChronon >= GregorianCalendarSystem.CHRONON_OF_DAY) {
// avoid the case where a time bin is before 00:00:00 or no early than 24:00:00
- throw new InvalidDataFormatException(getIdentifier(),
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG);
}
@@ -272,7 +273,7 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
}
if (binEndChronon < binStartChronon) {
- throw new InvalidDataFormatException(getIdentifier(),
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
ATypeTag.SERIALIZED_INTERVAL_TYPE_TAG);
}
}
@@ -292,7 +293,7 @@ public class OverlapBinsDescriptor extends AbstractScalarFunctionDynamicDescript
binOffset++;
} while (binEndChronon < intervalEnd);
} else {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_DATE_TYPE_TAG, ATypeTag.SERIALIZED_TIME_TYPE_TAG,
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateDescriptor.java
index f8d5cf7..da8d732 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateDescriptor.java
@@ -104,11 +104,11 @@ public class ParseDateDescriptor extends AbstractScalarFunctionDynamicDescriptor
int len1 = argPtr1.getLength();
if (bytes0[offset0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
if (bytes1[offset1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
@@ -136,7 +136,8 @@ public class ParseDateDescriptor extends AbstractScalarFunctionDynamicDescriptor
formatStart += formatLength + 1;
}
if (!processSuccessfully) {
- throw new InvalidDataFormatException(getIdentifier(), ATypeTag.SERIALIZED_DATE_TYPE_TAG);
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
+ ATypeTag.SERIALIZED_DATE_TYPE_TAG);
}
aDate.setValue((int) (aInt64.getLongValue() / GregorianCalendarSystem.CHRONON_OF_DAY));
dateSerde.serialize(aDate, out);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateTimeDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateTimeDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateTimeDescriptor.java
index 8bb1a20..ab19f9e 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateTimeDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseDateTimeDescriptor.java
@@ -96,11 +96,11 @@ public class ParseDateTimeDescriptor extends AbstractScalarFunctionDynamicDescri
int len1 = argPtr1.getLength();
if (bytes0[offset0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
if (bytes1[offset1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
utf8Ptr.set(bytes0, offset0 + 1, len0 - 1);
@@ -127,7 +127,7 @@ public class ParseDateTimeDescriptor extends AbstractScalarFunctionDynamicDescri
formatStart += formatLength + 1;
}
if (!processSuccessfully) {
- throw new InvalidDataFormatException(getIdentifier(),
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
aDateTime.setValue(aInt64.getLongValue());
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseTimeDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseTimeDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseTimeDescriptor.java
index 6b9488d..af85b5b 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseTimeDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/ParseTimeDescriptor.java
@@ -96,11 +96,11 @@ public class ParseTimeDescriptor extends AbstractScalarFunctionDynamicDescriptor
int len1 = argPtr1.getLength();
if (bytes0[offset0] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
if (bytes1[offset1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
utf8Ptr.set(bytes0, offset0 + 1, len0 - 1);
@@ -127,7 +127,8 @@ public class ParseTimeDescriptor extends AbstractScalarFunctionDynamicDescriptor
formatStart += formatLength + 1;
}
if (!processSuccessfully) {
- throw new InvalidDataFormatException(getIdentifier(), ATypeTag.SERIALIZED_TIME_TYPE_TAG);
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
+ ATypeTag.SERIALIZED_TIME_TYPE_TAG);
}
aTime.setValue((int) aInt64.getLongValue());
timeSerde.serialize(aTime, out);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateDescriptor.java
index 98fe013..c0b155d 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateDescriptor.java
@@ -89,11 +89,11 @@ public class PrintDateDescriptor extends AbstractScalarFunctionDynamicDescriptor
try {
if (bytes0[offset0] != ATypeTag.SERIALIZED_DATE_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_DATE_TYPE_TAG);
}
if (bytes1[offset1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
long chronon = ADateSerializerDeserializer.getChronon(bytes0, offset0 + 1)
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateTimeDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateTimeDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateTimeDescriptor.java
index 5d2f088..066bef0 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateTimeDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintDateTimeDescriptor.java
@@ -89,11 +89,11 @@ public class PrintDateTimeDescriptor extends AbstractScalarFunctionDynamicDescri
try {
if (bytes0[offset0] != ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
if (bytes1[offset1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
long chronon = ADateTimeSerializerDeserializer.getChronon(bytes0, offset0 + 1);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintTimeDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintTimeDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintTimeDescriptor.java
index 48a5382..2ad3642 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintTimeDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/PrintTimeDescriptor.java
@@ -88,11 +88,11 @@ public class PrintTimeDescriptor extends AbstractScalarFunctionDynamicDescriptor
try {
if (bytes0[offset0] != ATypeTag.SERIALIZED_TIME_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_TIME_TYPE_TAG);
}
if (bytes1[offset1] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_STRING_TYPE_TAG);
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/TimeFromDatetimeDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/TimeFromDatetimeDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/TimeFromDatetimeDescriptor.java
index 273cba4..3010540 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/TimeFromDatetimeDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/TimeFromDatetimeDescriptor.java
@@ -89,7 +89,7 @@ public class TimeFromDatetimeDescriptor extends AbstractScalarFunctionDynamicDes
int offset = argPtr.getStartOffset();
if (bytes[offset] != ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes[offset],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes[offset],
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
long datetimeChronon = ADateTimeSerializerDeserializer.getChronon(bytes, offset + 1);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInDaysDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInDaysDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInDaysDescriptor.java
index 3dc449d..a069347 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInDaysDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDateInDaysDescriptor.java
@@ -82,7 +82,7 @@ public class UnixTimeFromDateInDaysDescriptor extends AbstractScalarFunctionDyna
int offset = argPtr.getStartOffset();
if (bytes[offset] != ATypeTag.SERIALIZED_DATE_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes[offset],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes[offset],
ATypeTag.SERIALIZED_DATE_TYPE_TAG);
}
long dateChronon = ADateSerializerDeserializer.getChronon(bytes, offset + 1);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInMsDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInMsDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInMsDescriptor.java
index 2dc57c5..4003195 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInMsDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInMsDescriptor.java
@@ -80,7 +80,7 @@ public class UnixTimeFromDatetimeInMsDescriptor extends AbstractScalarFunctionDy
int offset = argPtr.getStartOffset();
if (bytes[offset] != ATypeTag.SERIALIZED_DATETIME_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes[offset],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes[offset],
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
long datetimeChronon = ADateTimeSerializerDeserializer.getChronon(bytes, offset + 1);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInSecsDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInSecsDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInSecsDescriptor.java
index 34fedb6..b8adc06 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInSecsDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromDatetimeInSecsDescriptor.java
@@ -86,7 +86,7 @@ public class UnixTimeFromDatetimeInSecsDescriptor extends AbstractScalarFunction
int offset = argPtr.getStartOffset();
if (bytes[offset] != SERIALIZED_DATETIME_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes[offset],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes[offset],
ATypeTag.SERIALIZED_DATETIME_TYPE_TAG);
}
long datetimeChronon = ADateTimeSerializerDeserializer.getChronon(bytes, offset + 1);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java
index 0909764..c1932f6 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/UnixTimeFromTimeInMsDescriptor.java
@@ -82,7 +82,7 @@ public class UnixTimeFromTimeInMsDescriptor extends AbstractScalarFunctionDynami
int offset = argPtr.getStartOffset();
if (bytes[offset] != ATypeTag.SERIALIZED_TIME_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes[offset],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes[offset],
ATypeTag.SERIALIZED_TIME_TYPE_TAG);
}
long timeChronon = ATimeSerializerDeserializer.getChronon(bytes, offset + 1);
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/YearMonthDurationComparatorDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/YearMonthDurationComparatorDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/YearMonthDurationComparatorDescriptor.java
index 5748956..f7407c2 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/YearMonthDurationComparatorDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/evaluators/functions/temporal/YearMonthDurationComparatorDescriptor.java
@@ -83,17 +83,17 @@ public class YearMonthDurationComparatorDescriptor extends AbstractScalarFunctio
int offset1 = argPtr1.getStartOffset();
if (bytes0[offset0] != ATypeTag.SERIALIZED_DURATION_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 0, bytes0[offset0],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 0, bytes0[offset0],
ATypeTag.SERIALIZED_DURATION_TYPE_TAG);
}
if (bytes1[offset1] != ATypeTag.SERIALIZED_DURATION_TYPE_TAG) {
- throw new TypeMismatchException(getIdentifier(), 1, bytes1[offset1],
+ throw new TypeMismatchException(sourceLoc, getIdentifier(), 1, bytes1[offset1],
ATypeTag.SERIALIZED_DURATION_TYPE_TAG);
}
if ((ADurationSerializerDeserializer.getDayTime(bytes0, offset0 + 1) != 0)
|| (ADurationSerializerDeserializer.getDayTime(bytes1, offset1 + 1) != 0)) {
- throw new InvalidDataFormatException(getIdentifier(),
+ throw new InvalidDataFormatException(sourceLoc, getIdentifier(),
ATypeTag.SERIALIZED_YEAR_MONTH_DURATION_TYPE_TAG);
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/IncompatibleTypeException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/IncompatibleTypeException.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/IncompatibleTypeException.java
index 5feb87f..503958b 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/IncompatibleTypeException.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/IncompatibleTypeException.java
@@ -23,19 +23,23 @@ import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.asterix.om.types.EnumDeserializer;
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public class IncompatibleTypeException extends RuntimeDataException {
// Incompatible input parameters, e.g., "1.0" > 1.0
- public IncompatibleTypeException(FunctionIdentifier fid, byte typeTagLeft, byte typeTagRight) {
- super(ErrorCode.TYPE_INCOMPATIBLE, fid.getName(),
+ public IncompatibleTypeException(SourceLocation sourceLoc, FunctionIdentifier fid, byte typeTagLeft,
+ byte typeTagRight) {
+ super(ErrorCode.TYPE_INCOMPATIBLE, sourceLoc, fid.getName(),
EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(typeTagLeft),
EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(typeTagRight));
}
// Incompatible input parameters, e.g., "1.0" > 1.0
- public IncompatibleTypeException(String functionName, byte typeTagLeft, byte typeTagRight) {
- super(ErrorCode.TYPE_INCOMPATIBLE, functionName, EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(typeTagLeft),
+ public IncompatibleTypeException(SourceLocation sourceLoc, String functionName, byte typeTagLeft,
+ byte typeTagRight) {
+ super(ErrorCode.TYPE_INCOMPATIBLE, sourceLoc, functionName,
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(typeTagLeft),
EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(typeTagRight));
}
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/InvalidDataFormatException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/InvalidDataFormatException.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/InvalidDataFormatException.java
index acb0495..3350fed 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/InvalidDataFormatException.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/InvalidDataFormatException.java
@@ -23,20 +23,22 @@ import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.asterix.om.types.EnumDeserializer;
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public class InvalidDataFormatException extends RuntimeDataException {
- public InvalidDataFormatException(FunctionIdentifier fid, byte expectedTypeTag) {
- super(ErrorCode.INVALID_FORMAT, fid.getName(),
+ public InvalidDataFormatException(SourceLocation sourceLoc, FunctionIdentifier fid, byte expectedTypeTag) {
+ super(ErrorCode.INVALID_FORMAT, sourceLoc, fid.getName(),
EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(expectedTypeTag));
}
- public InvalidDataFormatException(FunctionIdentifier fid, String expectedType) {
- super(ErrorCode.INVALID_FORMAT, fid.getName(), expectedType);
+ public InvalidDataFormatException(SourceLocation sourceLoc, FunctionIdentifier fid, String expectedType) {
+ super(ErrorCode.INVALID_FORMAT, sourceLoc, fid.getName(), expectedType);
}
- public InvalidDataFormatException(FunctionIdentifier fid, Throwable cause, byte expectedTypeTag) {
- super(ErrorCode.INVALID_FORMAT, fid.getName(), cause, expectedTypeTag);
+ public InvalidDataFormatException(SourceLocation sourceLoc, FunctionIdentifier fid, Throwable cause,
+ byte expectedTypeTag) {
+ super(ErrorCode.INVALID_FORMAT, sourceLoc, fid.getName(), cause, expectedTypeTag);
addSuppressed(cause);
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/OverflowException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/OverflowException.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/OverflowException.java
index 3690236..fde465d 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/OverflowException.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/OverflowException.java
@@ -22,17 +22,11 @@ package org.apache.asterix.runtime.exceptions;
import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public class OverflowException extends RuntimeDataException {
-
// Overflow.
- public OverflowException(FunctionIdentifier fid) {
- super(ErrorCode.OVERFLOW, fid.getName());
+ public OverflowException(SourceLocation sourceLoc, FunctionIdentifier fid) {
+ super(ErrorCode.OVERFLOW, sourceLoc, fid.getName());
}
-
- // Overflow.
- public OverflowException(String functionName) {
- super(ErrorCode.OVERFLOW, functionName);
- }
-
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java
index f6cf1c7..9fe602b 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/TypeMismatchException.java
@@ -26,6 +26,7 @@ import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.asterix.om.types.EnumDeserializer;
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public class TypeMismatchException extends RuntimeDataException {
@@ -36,9 +37,24 @@ public class TypeMismatchException extends RuntimeDataException {
}
// Parameter type mistmatch.
+ public TypeMismatchException(SourceLocation sourceLoc, FunctionIdentifier fid, Integer i, byte actualTypeTag,
+ byte... expectedTypeTags) {
+ super(ErrorCode.TYPE_MISMATCH, sourceLoc, fid.getName(), indexToPosition(i),
+ toExpectedTypeString(expectedTypeTags),
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(actualTypeTag));
+ }
+
+ // Parameter type mistmatch.
public TypeMismatchException(String functionName, Integer i, byte actualTypeTag, byte... expectedTypeTags) {
super(ErrorCode.TYPE_MISMATCH, functionName, indexToPosition(i), toExpectedTypeString(expectedTypeTags),
EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(actualTypeTag));
}
+ // Parameter type mistmatch.
+ public TypeMismatchException(SourceLocation sourceLoc, String functionName, Integer i, byte actualTypeTag,
+ byte... expectedTypeTags) {
+ super(ErrorCode.TYPE_MISMATCH, sourceLoc, functionName, indexToPosition(i),
+ toExpectedTypeString(expectedTypeTags),
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(actualTypeTag));
+ }
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnderflowException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnderflowException.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnderflowException.java
index 6471cbd..27bbcaa 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnderflowException.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnderflowException.java
@@ -22,17 +22,12 @@ package org.apache.asterix.runtime.exceptions;
import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public class UnderflowException extends RuntimeDataException {
// Underflow.
- public UnderflowException(FunctionIdentifier fid) {
- super(ErrorCode.UNDERFLOW, fid.getName());
+ public UnderflowException(SourceLocation sourceLoc, FunctionIdentifier fid) {
+ super(ErrorCode.UNDERFLOW, sourceLoc, fid.getName());
}
-
- // Underflow.
- public UnderflowException(String functionName) {
- super(ErrorCode.UNDERFLOW, functionName);
- }
-
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedItemTypeException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedItemTypeException.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedItemTypeException.java
index f634649..25cfe29 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedItemTypeException.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedItemTypeException.java
@@ -23,16 +23,19 @@ import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.asterix.om.types.EnumDeserializer;
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public class UnsupportedItemTypeException extends RuntimeDataException {
// Unsupported item type.
- public UnsupportedItemTypeException(FunctionIdentifier fid, byte itemTypeTag) {
- super(ErrorCode.TYPE_ITEM, fid.getName(), EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(itemTypeTag));
+ public UnsupportedItemTypeException(SourceLocation sourceLoc, FunctionIdentifier fid, byte itemTypeTag) {
+ super(ErrorCode.TYPE_ITEM, sourceLoc, fid.getName(),
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(itemTypeTag));
}
// Unsupported item type.
- public UnsupportedItemTypeException(String functionName, byte itemTypeTag) {
- super(ErrorCode.TYPE_ITEM, functionName, EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(itemTypeTag));
+ public UnsupportedItemTypeException(SourceLocation sourceLoc, String functionName, byte itemTypeTag) {
+ super(ErrorCode.TYPE_ITEM, sourceLoc, functionName,
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(itemTypeTag));
}
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedTypeException.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedTypeException.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedTypeException.java
index 29b3819..32e9239 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedTypeException.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/exceptions/UnsupportedTypeException.java
@@ -23,12 +23,13 @@ import org.apache.asterix.common.exceptions.ErrorCode;
import org.apache.asterix.common.exceptions.RuntimeDataException;
import org.apache.asterix.om.types.EnumDeserializer;
import org.apache.hyracks.algebricks.core.algebra.functions.FunctionIdentifier;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public class UnsupportedTypeException extends RuntimeDataException {
// Unsupported input type.
- public UnsupportedTypeException(FunctionIdentifier fid, byte actualTypeTag) {
- super(ErrorCode.TYPE_UNSUPPORTED, fid.getName(),
+ public UnsupportedTypeException(SourceLocation sourceLoc, FunctionIdentifier fid, byte actualTypeTag) {
+ super(ErrorCode.TYPE_UNSUPPORTED, sourceLoc, fid.getName(),
EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(actualTypeTag));
}
@@ -36,4 +37,10 @@ public class UnsupportedTypeException extends RuntimeDataException {
public UnsupportedTypeException(String funcName, byte actualTypeTag) {
super(ErrorCode.TYPE_UNSUPPORTED, funcName, EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(actualTypeTag));
}
+
+ // Unsupported input type.
+ public UnsupportedTypeException(SourceLocation sourceLoc, String funcName, byte actualTypeTag) {
+ super(ErrorCode.TYPE_UNSUPPORTED, sourceLoc, funcName,
+ EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(actualTypeTag));
+ }
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java
index e237319..8b25e06 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/formats/NonTaggedDataFormat.java
@@ -79,6 +79,7 @@ import org.apache.hyracks.algebricks.runtime.evaluators.ConstantEvalFactory;
import org.apache.hyracks.api.dataflow.value.IMissingWriterFactory;
import org.apache.hyracks.api.dataflow.value.IPredicateEvaluatorFactoryProvider;
import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.exceptions.SourceLocation;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
public class NonTaggedDataFormat implements IDataFormat {
@@ -120,7 +121,7 @@ public class NonTaggedDataFormat implements IDataFormat {
@SuppressWarnings("unchecked")
@Override
public IScalarEvaluatorFactory getFieldAccessEvaluatorFactory(IFunctionManager functionManager, ARecordType recType,
- List<String> fldName, int recordColumn) throws AlgebricksException {
+ List<String> fldName, int recordColumn, SourceLocation sourceLoc) throws AlgebricksException {
IScalarEvaluatorFactory recordEvalFactory = new ColumnAccessEvalFactory(recordColumn);
if (fldName.size() == 1) {
@@ -141,6 +142,7 @@ public class NonTaggedDataFormat implements IDataFormat {
IScalarEvaluatorFactory fldIndexEvalFactory =
new ConstantEvalFactory(Arrays.copyOf(abvs.getByteArray(), abvs.getLength()));
IFunctionDescriptor fDesc = functionManager.lookupFunction(BuiltinFunctions.FIELD_ACCESS_BY_INDEX);
+ fDesc.setSourceLocation(sourceLoc);
fDesc.setImmutableStates(recType);
return fDesc.createEvaluatorFactory(
new IScalarEvaluatorFactory[] { recordEvalFactory, fldIndexEvalFactory });
@@ -157,6 +159,7 @@ public class NonTaggedDataFormat implements IDataFormat {
IScalarEvaluatorFactory fldNameEvalFactory =
new ConstantEvalFactory(Arrays.copyOf(abvs.getByteArray(), abvs.getLength()));
IFunctionDescriptor fDesc = functionManager.lookupFunction(BuiltinFunctions.FIELD_ACCESS_BY_NAME);
+ fDesc.setSourceLocation(sourceLoc);
return fDesc.createEvaluatorFactory(
new IScalarEvaluatorFactory[] { recordEvalFactory, fldNameEvalFactory });
}
@@ -164,6 +167,7 @@ public class NonTaggedDataFormat implements IDataFormat {
if (fldName.size() > 1) {
IFunctionDescriptor fDesc = functionManager.lookupFunction(BuiltinFunctions.FIELD_ACCESS_NESTED);
+ fDesc.setSourceLocation(sourceLoc);
fDesc.setImmutableStates(recType, fldName);
return fDesc.createEvaluatorFactory(new IScalarEvaluatorFactory[] { recordEvalFactory });
}
@@ -174,10 +178,10 @@ public class NonTaggedDataFormat implements IDataFormat {
@SuppressWarnings("unchecked")
@Override
public IScalarEvaluatorFactory[] createMBRFactory(IFunctionManager functionManager, ARecordType recType,
- List<String> fldName, int recordColumn, int dimension, List<String> filterFieldName, boolean isPointMBR)
- throws AlgebricksException {
+ List<String> fldName, int recordColumn, int dimension, List<String> filterFieldName, boolean isPointMBR,
+ SourceLocation sourceLoc) throws AlgebricksException {
IScalarEvaluatorFactory evalFactory =
- getFieldAccessEvaluatorFactory(functionManager, recType, fldName, recordColumn);
+ getFieldAccessEvaluatorFactory(functionManager, recType, fldName, recordColumn, sourceLoc);
int numOfFields = isPointMBR ? dimension : dimension * 2;
IScalarEvaluatorFactory[] evalFactories =
new IScalarEvaluatorFactory[numOfFields + (filterFieldName == null ? 0 : 1)];
@@ -209,7 +213,7 @@ public class NonTaggedDataFormat implements IDataFormat {
}
if (filterFieldName != null) {
evalFactories[numOfFields] =
- getFieldAccessEvaluatorFactory(functionManager, recType, filterFieldName, recordColumn);
+ getFieldAccessEvaluatorFactory(functionManager, recType, filterFieldName, recordColumn, sourceLoc);
}
return evalFactories;
}
@@ -217,7 +221,8 @@ public class NonTaggedDataFormat implements IDataFormat {
@SuppressWarnings("unchecked")
@Override
public Triple<IScalarEvaluatorFactory, ScalarFunctionCallExpression, IAType> partitioningEvaluatorFactory(
- IFunctionManager functionManager, ARecordType recType, List<String> fldName) throws AlgebricksException {
+ IFunctionManager functionManager, ARecordType recType, List<String> fldName, SourceLocation sourceLoc)
+ throws AlgebricksException {
String[] names = recType.getFieldNames();
int n = names.length;
if (fldName.size() > 1) {
@@ -237,6 +242,7 @@ public class NonTaggedDataFormat implements IDataFormat {
IScalarEvaluatorFactory fldIndexEvalFactory =
new ConstantEvalFactory(Arrays.copyOf(abvs.getByteArray(), abvs.getLength()));
IFunctionDescriptor fDesc = functionManager.lookupFunction(BuiltinFunctions.FIELD_ACCESS_BY_INDEX);
+ fDesc.setSourceLocation(sourceLoc);
fDesc.setImmutableStates(recType);
IScalarEvaluatorFactory evalFactory = fDesc.createEvaluatorFactory(
new IScalarEvaluatorFactory[] { recordEvalFactory, fldIndexEvalFactory });
@@ -246,6 +252,7 @@ public class NonTaggedDataFormat implements IDataFormat {
ScalarFunctionCallExpression partitionFun = new ScalarFunctionCallExpression(finfoAccess,
new MutableObject<>(new VariableReferenceExpression(METADATA_DUMMY_VAR)),
new MutableObject<>(new ConstantExpression(new AsterixConstantValue(new AInt32(i)))));
+ partitionFun.setSourceLocation(sourceLoc);
return new Triple<>(evalFactory, partitionFun, recType.getFieldTypes()[i]);
}
}
@@ -261,6 +268,7 @@ public class NonTaggedDataFormat implements IDataFormat {
throw new AlgebricksException(e);
}
IFunctionDescriptor fDesc = functionManager.lookupFunction(BuiltinFunctions.FIELD_ACCESS_NESTED);
+ fDesc.setSourceLocation(sourceLoc);
fDesc.setImmutableStates(recType, fldName);
IScalarEvaluatorFactory evalFactory =
fDesc.createEvaluatorFactory(new IScalarEvaluatorFactory[] { recordEvalFactory });
@@ -269,6 +277,7 @@ public class NonTaggedDataFormat implements IDataFormat {
ScalarFunctionCallExpression partitionFun = new ScalarFunctionCallExpression(finfoAccess,
new MutableObject<>(new VariableReferenceExpression(METADATA_DUMMY_VAR)),
new MutableObject<>(new ConstantExpression(new AsterixConstantValue(as))));
+ partitionFun.setSourceLocation(sourceLoc);
return new Triple<>(evalFactory, partitionFun, recType.getSubFieldType(fldName));
}
throw new AlgebricksException("Could not find field " + fldName + " in the schema.");
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/unnestingfunctions/std/ScanCollectionDescriptor.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/unnestingfunctions/std/ScanCollectionDescriptor.java b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/unnestingfunctions/std/ScanCollectionDescriptor.java
index 3409e61..eaf0d9c 100644
--- a/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/unnestingfunctions/std/ScanCollectionDescriptor.java
+++ b/asterixdb/asterix-runtime/src/main/java/org/apache/asterix/runtime/unnestingfunctions/std/ScanCollectionDescriptor.java
@@ -35,6 +35,7 @@ import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluator;
import org.apache.hyracks.algebricks.runtime.base.IUnnestingEvaluatorFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
+import org.apache.hyracks.api.exceptions.SourceLocation;
import org.apache.hyracks.data.std.api.IPointable;
import org.apache.hyracks.data.std.primitive.VoidPointable;
import org.apache.hyracks.data.std.util.ArrayBackedValueStorage;
@@ -57,16 +58,18 @@ public class ScanCollectionDescriptor extends AbstractUnnestingFunctionDynamicDe
@Override
public IUnnestingEvaluatorFactory createUnnestingEvaluatorFactory(final IScalarEvaluatorFactory[] args) {
- return new ScanCollectionUnnestingFunctionFactory(args[0]);
+ return new ScanCollectionUnnestingFunctionFactory(args[0], sourceLoc);
}
public static class ScanCollectionUnnestingFunctionFactory implements IUnnestingEvaluatorFactory {
private static final long serialVersionUID = 1L;
private IScalarEvaluatorFactory listEvalFactory;
+ private final SourceLocation sourceLoc;
- public ScanCollectionUnnestingFunctionFactory(IScalarEvaluatorFactory arg) {
+ public ScanCollectionUnnestingFunctionFactory(IScalarEvaluatorFactory arg, SourceLocation sourceLoc) {
this.listEvalFactory = arg;
+ this.sourceLoc = sourceLoc;
}
@Override
@@ -91,7 +94,7 @@ public class ScanCollectionDescriptor extends AbstractUnnestingFunctionDynamicDe
}
if (typeTag != ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG
&& typeTag != ATypeTag.SERIALIZED_UNORDEREDLIST_TYPE_TAG) {
- throw new TypeMismatchException(BuiltinFunctions.SCAN_COLLECTION, 0, typeTag,
+ throw new TypeMismatchException(sourceLoc, BuiltinFunctions.SCAN_COLLECTION, 0, typeTag,
ATypeTag.SERIALIZED_ORDEREDLIST_TYPE_TAG, ATypeTag.SERIALIZED_UNORDEREDLIST_TYPE_TAG);
}
listAccessor.reset(inputVal.getByteArray(), inputVal.getStartOffset());
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-test-framework/src/main/java/org/apache/asterix/testframework/context/TestCaseContext.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-test-framework/src/main/java/org/apache/asterix/testframework/context/TestCaseContext.java b/asterixdb/asterix-test-framework/src/main/java/org/apache/asterix/testframework/context/TestCaseContext.java
index 7a34648..4735c67 100644
--- a/asterixdb/asterix-test-framework/src/main/java/org/apache/asterix/testframework/context/TestCaseContext.java
+++ b/asterixdb/asterix-test-framework/src/main/java/org/apache/asterix/testframework/context/TestCaseContext.java
@@ -202,6 +202,11 @@ public class TestCaseContext {
return filePath;
}
+ public boolean isSourceLocationExpected(CompilationUnit cUnit) {
+ Boolean v = cUnit.isSourceLocation();
+ return v != null ? v : testSuite.isSourceLocation();
+ }
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder(testCase.getFilePath());
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-test-framework/src/main/resources/Catalog.xsd
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-test-framework/src/main/resources/Catalog.xsd b/asterixdb/asterix-test-framework/src/main/resources/Catalog.xsd
index 7a5387c..7a4feea 100644
--- a/asterixdb/asterix-test-framework/src/main/resources/Catalog.xsd
+++ b/asterixdb/asterix-test-framework/src/main/resources/Catalog.xsd
@@ -63,6 +63,14 @@
</xs:annotation>
</xs:attribute>
+ <xs:attribute name="SourceLocation" type="xs:boolean" default="false">
+ <xs:annotation>
+ <xs:documentation>
+ whether to expect a source location in error messages
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
</xs:complexType>
<xs:unique name="unique-test-group">
@@ -160,6 +168,17 @@
</xs:annotation>
</xs:element>
+ <!-- Whether the source location is expected in the error message -->
+
+ <xs:element name="source-location" type="xs:boolean" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>
+ Whether to expect a source location in the error message
+ (default is defined by the test-suite element)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
</xs:sequence>
<!-- This name is always equal to the name of the test case -->
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/runtime/CommitRuntimeFactory.java
----------------------------------------------------------------------
diff --git a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/runtime/CommitRuntimeFactory.java b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/runtime/CommitRuntimeFactory.java
index bbfde38..708e8dc 100644
--- a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/runtime/CommitRuntimeFactory.java
+++ b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/runtime/CommitRuntimeFactory.java
@@ -21,12 +21,12 @@ package org.apache.asterix.transaction.management.runtime;
import org.apache.asterix.common.api.IJobEventListenerFactory;
import org.apache.hyracks.algebricks.runtime.base.IPushRuntime;
-import org.apache.hyracks.algebricks.runtime.base.IPushRuntimeFactory;
+import org.apache.hyracks.algebricks.runtime.operators.base.AbstractPushRuntimeFactory;
import org.apache.hyracks.api.context.IHyracksTaskContext;
import org.apache.hyracks.api.exceptions.HyracksDataException;
import org.apache.hyracks.api.job.IJobletEventListenerFactory;
-public class CommitRuntimeFactory implements IPushRuntimeFactory {
+public class CommitRuntimeFactory extends AbstractPushRuntimeFactory {
private static final long serialVersionUID = 1L;
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java
index 54292c3..46e80be 100644
--- a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java
+++ b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/AlgebricksException.java
@@ -22,6 +22,7 @@ import java.io.Serializable;
import org.apache.hyracks.api.exceptions.ErrorCode;
import org.apache.hyracks.api.exceptions.IFormattedException;
+import org.apache.hyracks.api.exceptions.SourceLocation;
import org.apache.hyracks.api.util.ErrorMessageUtil;
public class AlgebricksException extends Exception implements IFormattedException {
@@ -32,15 +33,17 @@ public class AlgebricksException extends Exception implements IFormattedExceptio
private final int errorCode;
private final Serializable[] params;
private final String nodeId;
+ private final SourceLocation sourceLoc;
@SuppressWarnings("squid:S1165") // exception class not final
private transient CachedMessage msgCache;
- public AlgebricksException(String component, int errorCode, String message, Throwable cause, String nodeId,
- Serializable... params) {
+ public AlgebricksException(String component, int errorCode, String message, Throwable cause,
+ SourceLocation sourceLoc, String nodeId, Serializable... params) {
super(message, cause);
this.component = component;
this.errorCode = errorCode;
+ this.sourceLoc = sourceLoc;
this.nodeId = nodeId;
this.params = params;
}
@@ -50,7 +53,7 @@ public class AlgebricksException extends Exception implements IFormattedExceptio
*/
@Deprecated
public AlgebricksException(String message) {
- this(ErrorMessageUtil.NONE, UNKNOWN, message, null, (Serializable[]) null);
+ this(ErrorMessageUtil.NONE, UNKNOWN, message, null, null, (Serializable[]) null);
}
/**
@@ -66,32 +69,60 @@ public class AlgebricksException extends Exception implements IFormattedExceptio
*/
@Deprecated
public AlgebricksException(String message, Throwable cause) {
- this(ErrorMessageUtil.NONE, UNKNOWN, message, cause, (String) null);
+ this(ErrorMessageUtil.NONE, UNKNOWN, message, cause, null, (Serializable[]) null);
+ }
+
+ public AlgebricksException(String component, int errorCode, SourceLocation sourceLoc, Serializable... params) {
+ this(component, errorCode, null, null, sourceLoc, null, params);
}
public AlgebricksException(String component, int errorCode, Serializable... params) {
- this(component, errorCode, null, null, null, params);
+ this(component, errorCode, null, null, null, null, params);
+ }
+
+ public AlgebricksException(Throwable cause, int errorCode, SourceLocation sourceLoc, Serializable... params) {
+ this(ErrorMessageUtil.NONE, errorCode, cause.getMessage(), cause, sourceLoc, null, params);
}
public AlgebricksException(Throwable cause, int errorCode, Serializable... params) {
- this(ErrorMessageUtil.NONE, errorCode, cause.getMessage(), cause, null, params);
+ this(ErrorMessageUtil.NONE, errorCode, cause.getMessage(), cause, null, null, params);
+ }
+
+ public AlgebricksException(String component, int errorCode, String message, SourceLocation sourceLoc,
+ Serializable... params) {
+ this(component, errorCode, message, null, sourceLoc, null, params);
}
public AlgebricksException(String component, int errorCode, String message, Serializable... params) {
- this(component, errorCode, message, null, null, params);
+ this(component, errorCode, message, null, null, null, params);
+ }
+
+ public AlgebricksException(String component, int errorCode, Throwable cause, SourceLocation sourceLoc,
+ Serializable... params) {
+ this(component, errorCode, cause.getMessage(), cause, sourceLoc, null, params);
}
public AlgebricksException(String component, int errorCode, Throwable cause, Serializable... params) {
- this(component, errorCode, cause.getMessage(), cause, null, params);
+ this(component, errorCode, cause.getMessage(), cause, null, null, params);
+ }
+
+ public AlgebricksException(String component, int errorCode, String message, Throwable cause,
+ SourceLocation sourceLoc, Serializable... params) {
+ this(component, errorCode, message, cause, sourceLoc, null, params);
}
public AlgebricksException(String component, int errorCode, String message, Throwable cause,
Serializable... params) {
- this(component, errorCode, message, cause, null, params);
+ this(component, errorCode, message, cause, null, null, params);
+ }
+
+ public static AlgebricksException create(int errorCode, SourceLocation sourceLoc, Serializable... params) {
+ return new AlgebricksException(ErrorCode.HYRACKS, errorCode, ErrorCode.getErrorMessage(errorCode), sourceLoc,
+ params);
}
public static AlgebricksException create(int errorCode, Serializable... params) {
- return new AlgebricksException(ErrorCode.HYRACKS, errorCode, ErrorCode.getErrorMessage(errorCode), params);
+ return create(errorCode, null, params);
}
@Override
@@ -112,11 +143,15 @@ public class AlgebricksException extends Exception implements IFormattedExceptio
return nodeId;
}
+ public SourceLocation getSourceLocation() {
+ return sourceLoc;
+ }
+
@Override
public String getMessage() {
if (msgCache == null) {
- msgCache =
- new CachedMessage(ErrorMessageUtil.formatMessage(component, errorCode, super.getMessage(), params));
+ msgCache = new CachedMessage(
+ ErrorMessageUtil.formatMessage(component, errorCode, super.getMessage(), sourceLoc, params));
}
return msgCache.message;
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/NotImplementedException.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/NotImplementedException.java b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/NotImplementedException.java
index 16bc73e..d308969 100644
--- a/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/NotImplementedException.java
+++ b/hyracks-fullstack/algebricks/algebricks-common/src/main/java/org/apache/hyracks/algebricks/common/exceptions/NotImplementedException.java
@@ -22,18 +22,10 @@ public class NotImplementedException extends RuntimeException {
private static final long serialVersionUID = 2L;
public NotImplementedException() {
- System.err.println("Not implemented.");
+ super("Not implemented.");
}
public NotImplementedException(String message) {
super(message);
}
-
- public NotImplementedException(Throwable cause) {
- super(cause);
- }
-
- public NotImplementedException(String message, Throwable cause) {
- super(message, cause);
- }
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalExpression.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalExpression.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalExpression.java
index 7e10203..1de7e3c 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalExpression.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalExpression.java
@@ -27,6 +27,7 @@ import org.apache.commons.lang3.mutable.Mutable;
import org.apache.hyracks.algebricks.common.exceptions.AlgebricksException;
import org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionVisitor;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public interface ILogicalExpression {
@@ -73,4 +74,6 @@ public interface ILogicalExpression {
public abstract ILogicalExpression cloneExpression();
public boolean isFunctional();
+
+ SourceLocation getSourceLocation();
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalOperator.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalOperator.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalOperator.java
index dd7e065..6bd0d02 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalOperator.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/base/ILogicalOperator.java
@@ -33,6 +33,7 @@ import org.apache.hyracks.algebricks.core.algebra.typing.ITypingContext;
import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalExpressionReferenceTransform;
import org.apache.hyracks.algebricks.core.algebra.visitors.ILogicalOperatorVisitor;
import org.apache.hyracks.algebricks.core.jobgen.impl.JobGenContext;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public interface ILogicalOperator {
@@ -103,4 +104,6 @@ public interface ILogicalOperator {
* Indicates whether the expressions used by this operator must be variable reference expressions.
*/
public boolean requiresVariableReferenceExpressions();
+
+ SourceLocation getSourceLocation();
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractLogicalExpression.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractLogicalExpression.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractLogicalExpression.java
index 0717c0e..de4d5ac 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractLogicalExpression.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AbstractLogicalExpression.java
@@ -25,9 +25,12 @@ import org.apache.hyracks.algebricks.core.algebra.base.EquivalenceClass;
import org.apache.hyracks.algebricks.core.algebra.base.ILogicalExpression;
import org.apache.hyracks.algebricks.core.algebra.base.LogicalVariable;
import org.apache.hyracks.algebricks.core.algebra.properties.FunctionalDependency;
+import org.apache.hyracks.api.exceptions.SourceLocation;
public abstract class AbstractLogicalExpression implements ILogicalExpression {
+ protected SourceLocation sourceLoc;
+
@Override
public void getConstraintsAndEquivClasses(Collection<FunctionalDependency> fds,
Map<LogicalVariable, EquivalenceClass> equivClasses) {
@@ -45,4 +48,12 @@ public abstract class AbstractLogicalExpression implements ILogicalExpression {
return true;
}
+ @Override
+ public SourceLocation getSourceLocation() {
+ return sourceLoc;
+ }
+
+ public void setSourceLocation(SourceLocation sourceLoc) {
+ this.sourceLoc = sourceLoc;
+ }
}
http://git-wip-us.apache.org/repos/asf/asterixdb/blob/ee54cc02/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AggregateFunctionCallExpression.java
----------------------------------------------------------------------
diff --git a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AggregateFunctionCallExpression.java b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AggregateFunctionCallExpression.java
index 8fca47c..bdd820e 100644
--- a/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AggregateFunctionCallExpression.java
+++ b/hyracks-fullstack/algebricks/algebricks-core/src/main/java/org/apache/hyracks/algebricks/core/algebra/expressions/AggregateFunctionCallExpression.java
@@ -59,6 +59,7 @@ public class AggregateFunctionCallExpression extends AbstractFunctionCallExpress
AggregateFunctionCallExpression fun = new AggregateFunctionCallExpression(finfo, twoStep, clonedArgs);
fun.setStepTwoAggregate(stepTwoAggregate);
fun.setStepOneAggregate(stepOneAggregate);
+ fun.setSourceLocation(sourceLoc);
return fun;
}