This is an automated email from the ASF dual-hosted git repository.

vogievetsky pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git


The following commit(s) were added to refs/heads/master by this push:
     new fa48d4ea7d0 use is not distinct from (#15349)
fa48d4ea7d0 is described below

commit fa48d4ea7d0e5009110a6e2d53ce7516b52d9b3f
Author: Vadim Ogievetsky <[email protected]>
AuthorDate: Wed Nov 8 18:02:42 2023 -0800

    use is not distinct from (#15349)
---
 licenses.yaml                                      |  2 +-
 web-console/package-lock.json                      | 14 ++++----
 web-console/package.json                           |  2 +-
 .../explore-view/modules/table-react-module.tsx    | 41 +++++++++++-----------
 4 files changed, 29 insertions(+), 30 deletions(-)

diff --git a/licenses.yaml b/licenses.yaml
index eb2d63dd245..6f3fc81f49d 100644
--- a/licenses.yaml
+++ b/licenses.yaml
@@ -4987,7 +4987,7 @@ license_category: binary
 module: web-console
 license_name: Apache License version 2.0
 copyright: Imply Data
-version: 0.21.1
+version: 0.21.4
 
 ---
 
diff --git a/web-console/package-lock.json b/web-console/package-lock.json
index 3aad3ec2b95..42228155346 100644
--- a/web-console/package-lock.json
+++ b/web-console/package-lock.json
@@ -14,7 +14,7 @@
         "@blueprintjs/datetime2": "^0.9.35",
         "@blueprintjs/icons": "^4.16.0",
         "@blueprintjs/popover2": "^1.14.9",
-        "@druid-toolkit/query": "^0.21.1",
+        "@druid-toolkit/query": "^0.21.4",
         "@druid-toolkit/visuals-core": "^0.3.3",
         "@druid-toolkit/visuals-react": "^0.3.3",
         "ace-builds": "~1.4.14",
@@ -2344,9 +2344,9 @@
       }
     },
     "node_modules/@druid-toolkit/query": {
-      "version": "0.21.1",
-      "resolved": 
"https://registry.npmjs.org/@druid-toolkit/query/-/query-0.21.1.tgz";,
-      "integrity": 
"sha512-p9bE0mlE0Lv6w1HOOr6m/NB1l4oQy0ew6HFa3hSZ1T/qlDx8CPT5MXRRhruEmgtneZx4UrN6RqFULJNFVv+aWg==",
+      "version": "0.21.4",
+      "resolved": 
"https://registry.npmjs.org/@druid-toolkit/query/-/query-0.21.4.tgz";,
+      "integrity": 
"sha512-rZYRrtahy68ZMp3XDWa2Z3Pa28yiQMgDVHbB7ZAqynNFbKOgqS1j08LS122CRmNrvpAUyzwCnMj3Og4BvWeq1Q==",
       "dependencies": {
         "tslib": "^2.5.2"
       }
@@ -26105,9 +26105,9 @@
       "dev": true
     },
     "@druid-toolkit/query": {
-      "version": "0.21.1",
-      "resolved": 
"https://registry.npmjs.org/@druid-toolkit/query/-/query-0.21.1.tgz";,
-      "integrity": 
"sha512-p9bE0mlE0Lv6w1HOOr6m/NB1l4oQy0ew6HFa3hSZ1T/qlDx8CPT5MXRRhruEmgtneZx4UrN6RqFULJNFVv+aWg==",
+      "version": "0.21.4",
+      "resolved": 
"https://registry.npmjs.org/@druid-toolkit/query/-/query-0.21.4.tgz";,
+      "integrity": 
"sha512-rZYRrtahy68ZMp3XDWa2Z3Pa28yiQMgDVHbB7ZAqynNFbKOgqS1j08LS122CRmNrvpAUyzwCnMj3Og4BvWeq1Q==",
       "requires": {
         "tslib": "^2.5.2"
       }
diff --git a/web-console/package.json b/web-console/package.json
index d43d6615ba4..1cd3fd894ad 100644
--- a/web-console/package.json
+++ b/web-console/package.json
@@ -68,7 +68,7 @@
     "@blueprintjs/datetime2": "^0.9.35",
     "@blueprintjs/icons": "^4.16.0",
     "@blueprintjs/popover2": "^1.14.9",
-    "@druid-toolkit/query": "^0.21.1",
+    "@druid-toolkit/query": "^0.21.4",
     "@druid-toolkit/visuals-core": "^0.3.3",
     "@druid-toolkit/visuals-react": "^0.3.3",
     "ace-builds": "~1.4.14",
diff --git a/web-console/src/views/explore-view/modules/table-react-module.tsx 
b/web-console/src/views/explore-view/modules/table-react-module.tsx
index dabe6217c9b..6dacaf477a1 100644
--- a/web-console/src/views/explore-view/modules/table-react-module.tsx
+++ b/web-console/src/views/explore-view/modules/table-react-module.tsx
@@ -16,11 +16,12 @@
  * limitations under the License.
  */
 
-import type { SqlColumn, SqlOrderByExpression } from '@druid-toolkit/query';
+import type { SqlOrderByExpression } from '@druid-toolkit/query';
 import {
   C,
   F,
   SqlCase,
+  SqlColumn,
   SqlExpression,
   SqlFunction,
   SqlLiteral,
@@ -72,20 +73,6 @@ const KNOWN_AGGREGATIONS = [
   'ANY_VALUE',
 ];
 
-const NULL_REPLACEMENT = SqlLiteral.create('__VIS_NULL__');
-
-function nullableColumn(column: ExpressionMeta) {
-  return column.sqlType !== 'TIMESTAMP';
-}
-
-function nvl(ex: SqlExpression): SqlExpression {
-  return SqlFunction.simple('NVL', [ex.cast('VARCHAR'), NULL_REPLACEMENT]);
-}
-
-function joinEquals(c1: SqlColumn, c2: SqlColumn, nullable: boolean): 
SqlExpression {
-  return c1.applyIf(nullable, nvl).equal(c2.applyIf(nullable, nvl));
-}
-
 function toGroupByExpression(
   splitColumn: ExpressionMeta,
   timeBucket: string,
@@ -144,6 +131,20 @@ function toShowColumnExpression(
   return ex.as(showColumn.name);
 }
 
+function shiftTimeInWhere(where: SqlExpression, period: string): SqlExpression 
{
+  return where.walk(q => {
+    if (
+      (q instanceof SqlColumn && q.getName() === '__time') ||
+      (q instanceof SqlFunction && q.getEffectiveFunctionName() === 
'TIME_SHIFT') ||
+      (q instanceof SqlFunction && q.getEffectiveFunctionName() === 
'MAX_DATA_TIME')
+    ) {
+      return SqlFunction.simple('TIME_SHIFT', [q, period, 1]);
+    } else {
+      return q;
+    }
+  }) as SqlExpression;
+}
+
 interface QueryAndHints {
   query: SqlQuery;
   groupHints: string[];
@@ -370,7 +371,7 @@ function TableModule(props: TableModuleProps) {
             compares.map((comparePeriod, i) =>
               SqlWithPart.simple(
                 `compare${i}`,
-                getInitQuery(table, where)
+                getInitQuery(table, shiftTimeInWhere(where, comparePeriod))
                   .applyForEach(splitColumns, (q, splitColumn) =>
                     q.addSelect(toGroupByExpression(splitColumn, timeBucket, 
comparePeriod), {
                       addToGroupBy: 'end',
@@ -417,11 +418,9 @@ function TableModule(props: TableModuleProps) {
             T(`compare${i}`),
             SqlExpression.and(
               ...splitColumns.map(splitColumn =>
-                joinEquals(
-                  main.column(splitColumn.name),
-                  T(`compare${i}`).column(splitColumn.name),
-                  nullableColumn(splitColumn),
-                ),
+                main
+                  .column(splitColumn.name)
+                  
.isNotDistinctFrom(T(`compare${i}`).column(splitColumn.name)),
               ),
             ),
           ),


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to