checkpoint for adding partial comparator: resolving test failure
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java
index e055d78..b13c7cc 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/AbstractComparisonEvaluator.java
@@ -86,6 +86,25 @@
evalRight.evaluate(tuple);
}
+ protected void checkComparable() throws AlgebricksException {
+ if (outLeft.getLength() != 0) {
+ ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(outLeft.getByteArray()[0]);
+ switch (typeTag) {
+ case DURATION:
+ case INTERVAL:
+ case LINE:
+ case POINT:
+ case POINT3D:
+ case POLYGON:
+ case CIRCLE:
+ case RECTANGLE:
+ throw new AlgebricksException("Inequality comparison for " + typeTag + " is not defined.");
+ default:
+ return;
+ }
+ }
+ }
+
protected ComparisonResult compareResults() throws AlgebricksException {
boolean isLeftNull = false;
boolean isRightNull = false;
diff --git a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/ComparisonEvalFactory.java b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/ComparisonEvalFactory.java
index ed77276..8d57c2e 100644
--- a/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/ComparisonEvalFactory.java
+++ b/asterix-runtime/src/main/java/edu/uci/ics/asterix/runtime/evaluators/comparisons/ComparisonEvalFactory.java
@@ -121,6 +121,7 @@
@Override
public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
evalInputs(tuple);
+ checkComparable();
ComparisonResult r = compareResults();
if (r == ComparisonResult.UNKNOWN) {
try {
@@ -150,6 +151,7 @@
@Override
public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
evalInputs(tuple);
+ checkComparable();
ComparisonResult r = compareResults();
if (r == ComparisonResult.UNKNOWN) {
try {
@@ -178,6 +180,7 @@
@Override
public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
evalInputs(tuple);
+ checkComparable();
ComparisonResult r = compareResults();
if (r == ComparisonResult.UNKNOWN) {
try {
@@ -207,6 +210,7 @@
@Override
public void evaluate(IFrameTupleReference tuple) throws AlgebricksException {
evalInputs(tuple);
+ checkComparable();
ComparisonResult r = compareResults();
if (r == ComparisonResult.UNKNOWN) {
try {