@cubejs-backend/druid-driver 1.4.3 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,5 +8,6 @@ export declare class DruidQuery extends BaseQuery {
8
8
  timeStampCast(value: string): string;
9
9
  timeStampParam(): string;
10
10
  nowTimestampSql(): string;
11
+ sqlTemplates(): any;
11
12
  }
12
13
  //# sourceMappingURL=DruidQuery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DruidQuery.d.ts","sourceRoot":"","sources":["../../src/DruidQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAqBxE,qBAAa,UAAW,SAAQ,SAAS;IAChC,SAAS,CAAC,MAAM,KAAA;IAIhB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAIxD,SAAS,CAAC,KAAK,EAAE,MAAM;IAIvB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI/C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI1C,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,cAAc;IAId,eAAe,IAAI,MAAM;CAGjC"}
1
+ {"version":3,"file":"DruidQuery.d.ts","sourceRoot":"","sources":["../../src/DruidQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAyBxE,qBAAa,UAAW,SAAQ,SAAS;IAChC,SAAS,CAAC,MAAM,KAAA;IAIhB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAIxD,SAAS,CAAC,KAAK,EAAE,MAAM;IAIvB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI/C,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAI1C,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,cAAc;IAId,eAAe,IAAI,MAAM;IAIzB,YAAY;CAUpB"}
@@ -13,10 +13,14 @@ const GRANULARITY_TO_INTERVAL = {
13
13
  year: date => `DATE_TRUNC('year', ${date})`
14
14
  };
15
15
  class DruidFilter extends schema_compiler_1.BaseFilter {
16
+ /**
17
+ * Druid SQL is Calcite-based and has no default LIKE escape character, so the ESCAPE clause
18
+ * is required for BaseFilter.escapeWildcardChars to have any effect
19
+ */
16
20
  likeIgnoreCase(column, not, param, type) {
17
21
  const p = (!type || type === 'contains' || type === 'ends') ? '%' : '';
18
22
  const s = (!type || type === 'contains' || type === 'starts') ? '%' : '';
19
- return `LOWER(${column})${not ? ' NOT' : ''} LIKE CONCAT('${p}', LOWER(${this.allocateParam(param)}), '${s}')`;
23
+ return `LOWER(${column})${not ? ' NOT' : ''} LIKE CONCAT('${p}', LOWER(${this.allocateParam(param)}), '${s}') ESCAPE '\\'`;
20
24
  }
21
25
  }
22
26
  class DruidQuery extends schema_compiler_1.BaseQuery {
@@ -44,6 +48,16 @@ class DruidQuery extends schema_compiler_1.BaseQuery {
44
48
  nowTimestampSql() {
45
49
  return 'CURRENT_TIMESTAMP';
46
50
  }
51
+ sqlTemplates() {
52
+ const templates = super.sqlTemplates();
53
+ // Druid has neither ILIKE nor a default LIKE escape character, so mirror
54
+ // DruidFilter.likeIgnoreCase: case insensitivity comes from LOWER() on both sides and
55
+ // `filters.like_escape_char` only takes effect through an explicit ESCAPE clause, which
56
+ // binds to the whole right operand and so cannot sit inside LOWER().
57
+ templates.tesseract.ilike = 'LOWER({{ expr }}) {% if negated %}NOT {% endif %}LIKE {{ pattern }}';
58
+ templates.filters.like_pattern = 'CONCAT({% if start_wild %}\'%\'{% else %}\'\'{% endif %}, LOWER({{ value }}), {% if end_wild %}\'%\'{% else %}\'\'{% endif %}) ESCAPE \'\\\'';
59
+ return templates;
60
+ }
47
61
  }
48
62
  exports.DruidQuery = DruidQuery;
49
63
  //# sourceMappingURL=DruidQuery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DruidQuery.js","sourceRoot":"","sources":["../../src/DruidQuery.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AAExE,MAAM,uBAAuB,GAA6C;IACxE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,GAAG;IACzC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,GAAG;IAC7C,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,yBAAyB,IAAI,GAAG;IACjD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;CAC5C,CAAC;AAEF,MAAM,WAAY,SAAQ,4BAAU;IAC3B,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAY;QACpD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;IACjH,CAAC;CACF;AAED,MAAa,UAAW,SAAQ,2BAAS;IAChC,SAAS,CAAC,MAAM;QACrB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,iBAAiB,CAAC,WAAmB,EAAE,SAAiB;QAC7D,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,OAAO,oBAAoB,KAAK,6BAA6B,IAAI,CAAC,QAAQ,kBAAkB,CAAC;IAC/F,CAAC;IAEM,gBAAgB,CAAC,IAAY,EAAE,QAAgB;QACpD,OAAO,IAAI,IAAI,eAAe,QAAQ,GAAG,CAAC;IAC5C,CAAC;IAEM,WAAW,CAAC,IAAY,EAAE,QAAgB;QAC/C,OAAO,IAAI,IAAI,eAAe,QAAQ,GAAG,CAAC;IAC5C,CAAC;IAEM,aAAa,CAAC,KAAa;QAChC,OAAO,cAAc,KAAK,GAAG,CAAC;IAChC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAEM,eAAe;QACpB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;CACF;AAhCD,gCAgCC"}
1
+ {"version":3,"file":"DruidQuery.js","sourceRoot":"","sources":["../../src/DruidQuery.ts"],"names":[],"mappings":";;;AAAA,qEAAwE;AAExE,MAAM,uBAAuB,GAA6C;IACxE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,qBAAqB,IAAI,GAAG;IACzC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;IAC3C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,wBAAwB,IAAI,GAAG;IAC/C,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,uBAAuB,IAAI,GAAG;IAC7C,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,yBAAyB,IAAI,GAAG;IACjD,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,sBAAsB,IAAI,GAAG;CAC5C,CAAC;AAEF,MAAM,WAAY,SAAQ,4BAAU;IAClC;;;OAGG;IACI,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAY;QACpD,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,SAAS,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;IAC7H,CAAC;CACF;AAED,MAAa,UAAW,SAAQ,2BAAS;IAChC,SAAS,CAAC,MAAM;QACrB,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,iBAAiB,CAAC,WAAmB,EAAE,SAAiB;QAC7D,OAAO,uBAAuB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAEM,SAAS,CAAC,KAAa;QAC5B,OAAO,oBAAoB,KAAK,6BAA6B,IAAI,CAAC,QAAQ,kBAAkB,CAAC;IAC/F,CAAC;IAEM,gBAAgB,CAAC,IAAY,EAAE,QAAgB;QACpD,OAAO,IAAI,IAAI,eAAe,QAAQ,GAAG,CAAC;IAC5C,CAAC;IAEM,WAAW,CAAC,IAAY,EAAE,QAAgB;QAC/C,OAAO,IAAI,IAAI,eAAe,QAAQ,GAAG,CAAC;IAC5C,CAAC;IAEM,aAAa,CAAC,KAAa;QAChC,OAAO,cAAc,KAAK,GAAG,CAAC;IAChC,CAAC;IAEM,cAAc;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAEM,eAAe;QACpB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEM,YAAY;QACjB,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACvC,yEAAyE;QACzE,sFAAsF;QACtF,wFAAwF;QACxF,qEAAqE;QACrE,SAAS,CAAC,SAAS,CAAC,KAAK,GAAG,qEAAqE,CAAC;QAClG,SAAS,CAAC,OAAO,CAAC,YAAY,GAAG,8IAA8I,CAAC;QAChL,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AA3CD,gCA2CC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@cubejs-backend/druid-driver",
3
3
  "description": "Cube.js Druid database driver",
4
4
  "author": "Cube Dev, Inc.",
5
- "version": "1.4.3",
5
+ "version": "1.4.5",
6
6
  "license": "Apache-2.0",
7
7
  "repository": {
8
8
  "type": "git",
@@ -28,13 +28,13 @@
28
28
  "dist/src/*"
29
29
  ],
30
30
  "dependencies": {
31
- "@cubejs-backend/base-driver": "1.4.3",
32
- "@cubejs-backend/schema-compiler": "1.4.3",
33
- "@cubejs-backend/shared": "1.4.3",
31
+ "@cubejs-backend/base-driver": "1.4.5",
32
+ "@cubejs-backend/schema-compiler": "1.4.5",
33
+ "@cubejs-backend/shared": "1.4.5",
34
34
  "axios": "^1.8.3"
35
35
  },
36
36
  "devDependencies": {
37
- "@cubejs-backend/linter": "1.4.3",
37
+ "@cubejs-backend/linter": "1.4.5",
38
38
  "@types/jest": "^29",
39
39
  "@types/node": "^20",
40
40
  "jest": "^29",
@@ -47,5 +47,5 @@
47
47
  "eslintConfig": {
48
48
  "extends": "../cubejs-linter"
49
49
  },
50
- "gitHead": "b748c5e612e463e5eaaf240ea9d21d4a421ee926"
50
+ "gitHead": "49aa8076b977f6f2bafda1cdbe1a776c23ad35a6"
51
51
  }