[ 
https://issues.apache.org/jira/browse/BEAM-4624?focusedWorklogId=115628&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-115628
 ]

ASF GitHub Bot logged work on BEAM-4624:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 25/Jun/18 20:12
            Start Date: 25/Jun/18 20:12
    Worklog Time Spent: 10m 
      Work Description: kennknowles closed pull request #5744: [BEAM-4624] add 
comparison operator test
URL: https://github.com/apache/beam/pull/5744
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/interpreter/operator/comparison/BeamSqlCompareExpression.java
 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/interpreter/operator/comparison/BeamSqlCompareExpression.java
index ff07dd1ab23..fdfb46e1d34 100644
--- 
a/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/interpreter/operator/comparison/BeamSqlCompareExpression.java
+++ 
b/sdks/java/extensions/sql/src/main/java/org/apache/beam/sdk/extensions/sql/impl/interpreter/operator/comparison/BeamSqlCompareExpression.java
@@ -66,6 +66,7 @@ public boolean accept() {
       case BOOLEAN:
         return BeamSqlPrimitive.of(
             SqlTypeName.BOOLEAN, compare((Boolean) leftValue, (Boolean) 
rightValue));
+      case CHAR:
       case VARCHAR:
         return BeamSqlPrimitive.of(
             SqlTypeName.BOOLEAN, compare((CharSequence) leftValue, 
(CharSequence) rightValue));
diff --git 
a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlDslSqlStdOperatorsTest.java
 
b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlDslSqlStdOperatorsTest.java
index 916d9c1985a..3581a190f0c 100644
--- 
a/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlDslSqlStdOperatorsTest.java
+++ 
b/sdks/java/extensions/sql/src/test/java/org/apache/beam/sdk/extensions/sql/BeamSqlDslSqlStdOperatorsTest.java
@@ -240,6 +240,154 @@ public void testLogicOperators() {
     checker.buildRunAndCheck();
   }
 
+  @Test
+  @SqlOperatorTest(name = "<", kind = "LESS_THAN")
+  @SqlOperatorTest(name = ">", kind = "GREATER_THAN")
+  @SqlOperatorTest(name = "<=", kind = "LESS_THAN_OR_EQUAL")
+  @SqlOperatorTest(name = "<>", kind = "NOT_EQUALS")
+  @SqlOperatorTest(name = "=", kind = "EQUALS")
+  @SqlOperatorTest(name = ">=", kind = "GREATER_THAN_OR_EQUAL")
+  @SqlOperatorTest(name = "LIKE", kind = "LIKE")
+  @SqlOperatorTest(name = "IS NOT NULL", kind = "IS_NOT_NULL")
+  @SqlOperatorTest(name = "IS NULL", kind = "IS_NULL")
+  @SqlOperatorTest(name = "IS TRUE", kind = "IS_TRUE")
+  @SqlOperatorTest(name = "IS NOT TRUE", kind = "IS_NOT_TRUE")
+  @SqlOperatorTest(name = "IS FALSE", kind = "IS_FALSE")
+  @SqlOperatorTest(name = "IS NOT FALSE", kind = "IS_NOT_FALSE")
+  @SqlOperatorTest(name = "IS UNKNOWN", kind = "IS_NULL")
+  @SqlOperatorTest(name = "IS NOT UNKNOWN", kind = "IS_NOT_NULL")
+  @SqlOperatorTest(name = "IS DISTINCT FROM", kind = "IS_DISTINCT_FROM")
+  @SqlOperatorTest(name = "IS NOT DISTINCT FROM", kind = 
"IS_NOT_DISTINCT_FROM")
+  public void testComparisonOperatorFunction() {
+    ExpressionChecker checker =
+        new ExpressionChecker()
+            .addExpr("1 < 2", true)
+            .addExpr("2 < 1", false)
+            .addExpr("'a' < 'b'", true)
+            .addExpr("'b' < 'a'", false)
+            .addExpr("1.0 < 2.0", true)
+            .addExpr("2.0 < 1.0", false)
+            .addExpr("9223372036854775806 < 9223372036854775807", true)
+            .addExpr("9223372036854775807 < 9223372036854775806", false)
+            .addExpr("false < true", true)
+            .addExpr("true < false", false)
+            .addExpr("1 > 2", false)
+            .addExpr("2 > 1", true)
+            .addExpr("'a' > 'b'", false)
+            .addExpr("'b' > 'a'", true)
+            .addExpr("1.0 > 2.0", false)
+            .addExpr("2.0 > 1.0", true)
+            .addExpr("9223372036854775806 > 9223372036854775807", false)
+            .addExpr("9223372036854775807 > 9223372036854775806", true)
+            .addExpr("false > true", false)
+            .addExpr("true > false", true)
+            .addExpr("1 <> 2", true)
+            .addExpr("1 <> 1", false)
+            .addExpr("'a' <> 'b'", true)
+            .addExpr("'a' <> 'a'", false)
+            .addExpr("1.0 <> 2.0", true)
+            .addExpr("1.0 <> 1.0", false)
+            .addExpr("9223372036854775806 <> 9223372036854775807", true)
+            .addExpr("9223372036854775806 <> 9223372036854775806", false)
+            .addExpr("false <> true", true)
+            .addExpr("false <> false", false)
+            .addExpr("1 = 1", true)
+            .addExpr("2 = 1", false)
+            .addExpr("'a' = 'a'", true)
+            .addExpr("'b' = 'a'", false)
+            .addExpr("1.0 = 1.0", true)
+            .addExpr("2.0 = 1.0", false)
+            .addExpr("9223372036854775807 = 9223372036854775807", true)
+            .addExpr("9223372036854775807 = 9223372036854775806", false)
+            .addExpr("true = true", true)
+            .addExpr("true = false", false)
+            .addExpr("1 >= 2", false)
+            .addExpr("2 >= 2", true)
+            .addExpr("2 >= 1", true)
+            .addExpr("'a' >= 'b'", false)
+            .addExpr("'b' >= 'b'", true)
+            .addExpr("'b' >= 'a'", true)
+            .addExpr("1.0 >= 2.0", false)
+            .addExpr("2.0 >= 1.0", true)
+            .addExpr("2.0 >= 2.0", true)
+            .addExpr("9223372036854775806 >= 9223372036854775807", false)
+            .addExpr("9223372036854775807 >= 9223372036854775806", true)
+            .addExpr("9223372036854775807 >= 9223372036854775807", true)
+            .addExpr("false >= true", false)
+            .addExpr("true >= false", true)
+            .addExpr("true >= true", true)
+            .addExpr("'string_true_test' LIKE 'string_true_test'", true)
+            .addExpr("'string_true_test' LIKE 'string_false_test'", false)
+            .addExpr("'string_false_test' LIKE 'string_false_test'", true)
+            .addExpr("'string_false_test' LIKE 'string_true_test'", false)
+            .addExpr("'string_true_test' LIKE 'string_true_test%'", true)
+            .addExpr("'string_true_test' LIKE 'string_false_test%'", false)
+            .addExpr("'string_true_test' LIKE 'string_true%'", true)
+            .addExpr("'string_true_test' LIKE 'string_false%'", false)
+            .addExpr("'string_true_test' LIKE 'string%test'", true)
+            .addExpr("'string_true_test' LIKE '%test'", true)
+            .addExpr("'string_true_test' LIKE '%string_true_test'", true)
+            .addExpr("'string_true_test' LIKE '%string_false_test'", false)
+            .addExpr("'string_true_test' LIKE '%false_test'", false)
+            .addExpr("'string_false_test' LIKE '%false_test'", true)
+            .addExpr("'string_true_test' LIKE 'string_tr_e_test'", true)
+            .addExpr("'string_true_test' LIKE 'string______test'", true)
+            .addExpr("'string_false_test' LIKE 'string______test'", false)
+            .addExpr("'string_false_test' LIKE 'string_______test'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_te__'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_te___'", false)
+            .addExpr("'string_false_test' LIKE 'string_false_te_'", false)
+            .addExpr("'string_true_test' LIKE 'string_true_te__'", true)
+            .addExpr("'string_true_test' LIKE '_ring_true_te__'", false)
+            .addExpr("'string_false_test' LIKE '__ring_false_te__'", true)
+            .addExpr("'string_true_test' LIKE '_%ring_true_te__'", true)
+            .addExpr("'string_true_test' LIKE '_%tring_true_te__'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_te%__'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_te__%'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_t%__'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_t__%'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_te_%'", true)
+            .addExpr("'string_false_test' LIKE 'string_false_te%_'", true)
+            .addExpr("'string_true_test' LIKE 'string_%test'", true)
+            .addExpr("'string_true_test' LIKE 'string%_test'", true)
+            .addExpr("'string_true_test' LIKE 'string_%_test'", true)
+            .addExpr("1 IS NOT NULL", true)
+            .addExpr("true IS NOT NULL", true)
+            .addExpr("1.0 IS NOT NULL", true)
+            .addExpr("'a' IS NOT NULL", true)
+            .addExpr("NULL IS NOT NULL", false)
+            .addExpr("1 IS NULL", false)
+            .addExpr("true IS NULL", false)
+            .addExpr("1.0 IS NULL", false)
+            .addExpr("'a' IS NULL", false)
+            .addExpr("NULL IS NULL", true)
+            .addExpr("true IS TRUE", true)
+            .addExpr("false IS TRUE", false)
+            .addExpr("true IS NOT TRUE", false)
+            .addExpr("false IS NOT TRUE", true)
+            .addExpr("true IS FALSE", false)
+            .addExpr("false IS FALSE", true)
+            .addExpr("true IS NOT FALSE", true)
+            .addExpr("false IS NOT FALSE", false)
+            .addExpr("3 = 5 IS NOT UNKNOWN", true)
+            .addExpr("5 = 5 IS NOT UNKNOWN", true)
+            .addExpr("(NOT 5 = 5) IS NOT UNKNOWN", true)
+            .addExpr("(3 = NULL) IS UNKNOWN", false)
+            .addExpr("(3 = NULL) IS NOT UNKNOWN", false)
+            .addExpr("(NULL = NULL) IS NOT UNKNOWN", false)
+            .addExpr("(NOT NULL = NULL) IS NOT UNKNOWN", false)
+            .addExpr("1 IS DISTINCT FROM 2", true)
+            .addExpr("1.0 IS DISTINCT FROM 2.0", true)
+            .addExpr("'a' IS DISTINCT FROM 'b'", true)
+            .addExpr("true IS DISTINCT FROM false", true)
+            .addExpr("1 IS NOT DISTINCT FROM 2", false)
+            .addExpr("1.0 IS NOT DISTINCT FROM 2.0", false)
+            .addExpr("'a' IS NOT DISTINCT FROM 'b'", false)
+            .addExpr("true IS NOT DISTINCT FROM false", false);
+
+    checker.buildRunAndCheck();
+  }
+
   @Test
   @SqlOperatorTest(name = "CHARACTER_LENGTH", kind = "OTHER_FUNCTION")
   @SqlOperatorTest(name = "CHAR_LENGTH", kind = "OTHER_FUNCTION")


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


Issue Time Tracking
-------------------

    Worklog Id:     (was: 115628)
    Time Spent: 3h 40m  (was: 3.5h)

> Test comparison operator at DSL level
> -------------------------------------
>
>                 Key: BEAM-4624
>                 URL: https://issues.apache.org/jira/browse/BEAM-4624
>             Project: Beam
>          Issue Type: Sub-task
>          Components: dsl-sql
>            Reporter: Rui Wang
>            Assignee: Rui Wang
>            Priority: Major
>          Time Spent: 3h 40m
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to