Dmitry Lychagin has submitted this change and it was merged. Change subject: [NO ISSUE][SQL] Implement IS KNOWN ......................................................................
[NO ISSUE][SQL] Implement IS KNOWN - user model changes: yes - storage format changes: no - interface changes: no Details: - Implement IS KNOWN - synonym for IS VALUED Change-Id: I9df31c5b54905c3a98f6c9a51337ee07f52c11c0 Reviewed-on: https://asterix-gerrit.ics.uci.edu/2603 Sonar-Qube: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Contrib: Jenkins <[email protected]> Integration-Tests: Jenkins <[email protected]> Reviewed-by: Till Westmann <[email protected]> --- M asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/is/is.1.query.sqlpp M asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/is/is.1.adm M asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md M asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj 4 files changed, 16 insertions(+), 9 deletions(-) Approvals: Anon. E. Moose #1000171: Till Westmann: Looks good to me, approved Jenkins: Verified; No violations found; ; Verified diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/is/is.1.query.sqlpp b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/is/is.1.query.sqlpp index 81f2a3f..77e8d91 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/is/is.1.query.sqlpp +++ b/asterixdb/asterix-app/src/test/resources/runtimets/queries_sqlpp/null-missing/is/is.1.query.sqlpp @@ -41,5 +41,11 @@ "21": 1 is valued, "22": null is not valued, "23": missing is not valued, - "24": 1 is not valued + "24": 1 is not valued, + "25": null is known, + "26": missing is known, + "27": 1 is known, + "28": null is not known, + "29": missing is not known, + "30": 1 is not known }; diff --git a/asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/is/is.1.adm b/asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/is/is.1.adm index 920f7b4..cf13212 100644 --- a/asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/is/is.1.adm +++ b/asterixdb/asterix-app/src/test/resources/runtimets/results/null-missing/is/is.1.adm @@ -1 +1 @@ -{ "1": true, "3": false, "4": false, "6": true, "7": false, "8": true, "9": false, "10": true, "11": false, "12": true, "13": true, "14": true, "15": false, "16": false, "17": false, "18": true, "19": false, "20": false, "21": true, "22": true, "23": true, "24": false } +{ "1": true, "3": false, "4": false, "6": true, "7": false, "8": true, "9": false, "10": true, "11": false, "12": true, "13": true, "14": true, "15": false, "16": false, "17": false, "18": true, "19": false, "20": false, "21": true, "22": true, "23": true, "24": false, "25": false, "26": false, "27": true, "28": true, "29": true, "30": false } diff --git a/asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md b/asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md index 93e2f5d..5c19566 100644 --- a/asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md +++ b/asterixdb/asterix-doc/src/main/markdown/sqlpp/2_expr.md @@ -103,16 +103,16 @@ The following table enumerates all of SQL++'s comparison operators. -| Operator | Purpose | Example | -|----------------|--------------------------------------------|------------| +| Operator | Purpose | Example | +|----------------|------------------------------------------------|------------| | IS NULL | Test if a value is NULL | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS NULL; | | IS NOT NULL | Test if a value is not NULL | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS NOT NULL; | | IS MISSING | Test if a value is MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS MISSING; | | IS NOT MISSING | Test if a value is not MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS NOT MISSING;| | IS UNKNOWN | Test if a value is NULL or MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS UNKNOWN; | | IS NOT UNKNOWN | Test if a value is neither NULL nor MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS NOT UNKNOWN;| -| IS VALUED | Test if a value is neither NULL nor MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS VALUED; | -| IS NOT VALUED | Test if a value is NULL or MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS NOT VALUED;| +| IS KNOWN (IS VALUED) | Test if a value is neither NULL nor MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS KNOWN; | +| IS NOT KNOWN (IS NOT VALUED) | Test if a value is NULL or MISSING | SELECT * FROM ChirpMessages cm <br/>WHERE cm.user.name IS NOT KNOWN; | | BETWEEN | Test if a value is between a start value and <br/>a end value. The comparison is inclusive <br/>to both start and end values. | SELECT * FROM ChirpMessages cm <br/>WHERE cm.chirpId BETWEEN 10 AND 20;| | = | Equality test | SELECT * FROM ChirpMessages cm <br/>WHERE cm.chirpId=10; | | != | Inequality test | SELECT * FROM ChirpMessages cm <br/>WHERE cm.chirpId!=10;| @@ -134,8 +134,8 @@ | IS NOT MISSING | TRUE | TRUE | FALSE | | IS UNKNOWN | FALSE | TRUE | TRUE | | IS NOT UNKNOWN | TRUE | FALSE | FALSE| -| IS VALUED | TRUE | FALSE | FALSE | -| IS NOT VALUED | FALSE | TRUE | TRUE | +| IS KNOWN (IS VALUED) | TRUE | FALSE | FALSE | +| IS NOT KNOWN (IS NOT VALUED) | FALSE | TRUE | TRUE | ### <a id="Logical_operators">Logical Operators</a> Logical operators perform logical `NOT`, `AND`, and `OR` operations over Boolean values (`TRUE` and `FALSE`) plus `NULL` and `MISSING`. diff --git a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj index 9af114b..7f9149d 100644 --- a/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj +++ b/asterixdb/asterix-lang-sqlpp/src/main/javacc/SQLPP.jj @@ -2018,7 +2018,7 @@ <NULL> { fn = BuiltinFunctions.IS_NULL; } | <MISSING> { fn = BuiltinFunctions.IS_MISSING; } | <UNKNOWN> { fn = BuiltinFunctions.IS_UNKNOWN; } | - <VALUED> { not = !not; fn = BuiltinFunctions.IS_UNKNOWN; } + (<KNOWN> | <VALUED>) { not = !not; fn = BuiltinFunctions.IS_UNKNOWN; } ) { FunctionSignature signature = new FunctionSignature(fn); @@ -3252,6 +3252,7 @@ | <JOIN : "join"> | <KEYWORD : "keyword"> | <KEY : "key"> + | <KNOWN : "known"> | <LEFT : "left"> | <LETTING : "letting"> | <LET : "let"> -- To view, visit https://asterix-gerrit.ics.uci.edu/2603 To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-MessageType: merged Gerrit-Change-Id: I9df31c5b54905c3a98f6c9a51337ee07f52c11c0 Gerrit-PatchSet: 2 Gerrit-Project: asterixdb Gerrit-Branch: master Gerrit-Owner: Dmitry Lychagin <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Dmitry Lychagin <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Till Westmann <[email protected]>
