From f458c7c181012790f541bd05c759f2674242f110 Mon Sep 17 00:00:00 2001 From: Emilhein Date: Fri, 30 Aug 2024 14:47:52 +0200 Subject: [PATCH 1/2] Update the likeIgnoreCase method for the druid driver --- packages/cubejs-druid-driver/src/DruidQuery.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/cubejs-druid-driver/src/DruidQuery.ts b/packages/cubejs-druid-driver/src/DruidQuery.ts index cdcedeb7e97df..715dd69977b5f 100644 --- a/packages/cubejs-druid-driver/src/DruidQuery.ts +++ b/packages/cubejs-druid-driver/src/DruidQuery.ts @@ -16,15 +16,16 @@ class DruidFilter extends BaseFilter { public likeIgnoreCase(column, not, param, type: string) { const p = (!type || type === 'contains' || type === 'ends') ? '%' : ''; const s = (!type || type === 'contains' || type === 'starts') ? '%' : ''; - return `${column}${not ? ' NOT' : ''} LIKE CONCAT('${p}', ${this.allocateParam(param)}, '${s}')`; + return `LOWER(${column})${not ? ' NOT' : ''} LIKE CONCAT('${p}', LOWER(${this.allocateParam(param)}), '${s}')`; } + } export class DruidQuery extends BaseQuery { public newFilter(filter) { return new DruidFilter(this, filter); } - + public timeGroupedColumn(granularity: string, dimension: string) { return GRANULARITY_TO_INTERVAL[granularity](dimension); } From a89f8ad45e376ebe9d36bc3ebe143e129bb58aff Mon Sep 17 00:00:00 2001 From: Emilhein Date: Fri, 30 Aug 2024 14:55:34 +0200 Subject: [PATCH 2/2] Update test --- packages/cubejs-druid-driver/src/DruidQuery.ts | 1 - packages/cubejs-druid-driver/test/druid-query.test.ts | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/cubejs-druid-driver/src/DruidQuery.ts b/packages/cubejs-druid-driver/src/DruidQuery.ts index 715dd69977b5f..c22abc450101b 100644 --- a/packages/cubejs-druid-driver/src/DruidQuery.ts +++ b/packages/cubejs-druid-driver/src/DruidQuery.ts @@ -18,7 +18,6 @@ class DruidFilter extends BaseFilter { const s = (!type || type === 'contains' || type === 'starts') ? '%' : ''; return `LOWER(${column})${not ? ' NOT' : ''} LIKE CONCAT('${p}', LOWER(${this.allocateParam(param)}), '${s}')`; } - } export class DruidQuery extends BaseQuery { diff --git a/packages/cubejs-druid-driver/test/druid-query.test.ts b/packages/cubejs-druid-driver/test/druid-query.test.ts index 9f9a8eb6dec5f..09bc54cfd3859 100644 --- a/packages/cubejs-druid-driver/test/druid-query.test.ts +++ b/packages/cubejs-druid-driver/test/druid-query.test.ts @@ -32,7 +32,7 @@ describe('DruidQuery', () => { type: 'time', } } - + }) `, {}); @@ -54,7 +54,7 @@ describe('DruidQuery', () => { }, ); const queryAndParams = query.buildSqlAndParams(); - expect(queryAndParams[0]).toContain('LIKE CONCAT(\'%\', ?, \'%\'))'); + expect(queryAndParams[0]).toContain('LIKE CONCAT(\'%\', LOWER(?), \'%\'))'); })); it('druid query timezone shift test', () => compiler.compile().then(() => {