beliefer opened a new pull request #25074: [SPARK-27924]Support ANSI SQL Boolean-Predicate syntax URL: https://github.com/apache/spark/pull/25074 ## What changes were proposed in this pull request? The syntax Boolean-Predicate is an ANSI SQL. ``` expression IS [NOT] TRUE expression IS [NOT] FALSE expression IS [NOT] UNKNOWN ``` For example: ``` spark-sql> select null is true; false Time taken: 0.159 seconds, Fetched 1 row(s) spark-sql> select null is not true; true Time taken: 0.15 seconds, Fetched 1 row(s) spark-sql> select false is true; false Time taken: 0.105 seconds, Fetched 1 row(s) spark-sql> select false is not true; true Time taken: 0.136 seconds, Fetched 1 row(s) spark-sql> select true is true; true Time taken: 0.109 seconds, Fetched 1 row(s) spark-sql> select true is not true; false Time taken: 0.155 seconds, Fetched 1 row(s) spark-sql> select null is false; false Time taken: 0.09 seconds, Fetched 1 row(s) spark-sql> select null is not false; true Time taken: 0.12 seconds, Fetched 1 row(s) spark-sql> select false is false; true Time taken: 0.113 seconds, Fetched 1 row(s) spark-sql> select false is not false; false Time taken: 0.106 seconds, Fetched 1 row(s) spark-sql> select true is false; false Time taken: 0.097 seconds, Fetched 1 row(s) spark-sql> select true is not false; true Time taken: 0.107 seconds, Fetched 1 row(s) spark-sql> select null is unknown; true Time taken: 0.106 seconds, Fetched 1 row(s) spark-sql> select null is not unknown; false Time taken: 0.113 seconds, Fetched 1 row(s) spark-sql> select false is unknown; false Time taken: 0.109 seconds, Fetched 1 row(s) spark-sql> select false is not unknown; true Time taken: 0.164 seconds, Fetched 1 row(s) spark-sql> select true is unknown; false Time taken: 0.11 seconds, Fetched 1 row(s) spark-sql> select true is not unknown; true Time taken: 0.12 seconds, Fetched 1 row(s) ``` **Note**: A null input is treated as the logical value "unknown". There are some mainstream database support the syntax. **PostgreSQL:** https://www.postgresql.org/docs/9.1/functions-comparison.html **Hive:** https://issues.apache.org/jira/browse/HIVE-13583 **Redshift:** https://docs.aws.amazon.com/redshift/latest/dg/r_Boolean_type.html **Vertica:** https://www.vertica.com/docs/9.2.x/HTML/Content/Authoring/SQLReferenceManual/LanguageElements/Predicates/Boolean-predicate.htm ## How was this patch tested? new UT.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
