@cubejs-backend/druid-driver 1.4.2 → 1.4.4
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.
package/dist/src/DruidQuery.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DruidQuery.d.ts","sourceRoot":"","sources":["../../src/DruidQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,iCAAiC,CAAC;
|
|
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"}
|
package/dist/src/DruidQuery.js
CHANGED
|
@@ -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;
|
|
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.
|
|
5
|
+
"version": "1.4.4",
|
|
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.
|
|
32
|
-
"@cubejs-backend/schema-compiler": "1.4.
|
|
33
|
-
"@cubejs-backend/shared": "1.4.
|
|
31
|
+
"@cubejs-backend/base-driver": "1.4.4",
|
|
32
|
+
"@cubejs-backend/schema-compiler": "1.4.4",
|
|
33
|
+
"@cubejs-backend/shared": "1.4.4",
|
|
34
34
|
"axios": "^1.8.3"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
|
-
"@cubejs-backend/linter": "1.4.
|
|
37
|
+
"@cubejs-backend/linter": "1.4.4",
|
|
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": "
|
|
50
|
+
"gitHead": "1675e538f739774b1335e2e0baed8b29040b9c4d"
|
|
51
51
|
}
|