diff --git a/web-console/src/utils/general.spec.ts b/web-console/src/utils/general.spec.ts index e0d17151cee..264554f72ff 100644 --- a/web-console/src/utils/general.spec.ts +++ b/web-console/src/utils/general.spec.ts @@ -16,7 +16,7 @@ * limitations under the License. */ -import { alphanumericCompare, sortWithPrefixSuffix } from './general'; +import { alphanumericCompare, sortWithPrefixSuffix, sqlQueryCustomTableFilter } from './general'; describe('general', () => { describe('sortWithPrefixSuffix', () => { @@ -42,4 +42,22 @@ describe('general', () => { ).toEqual('gefcdhba'); }); }); + + describe('sqlQueryCustomTableFilter', () => { + it('works', () => { + expect( + sqlQueryCustomTableFilter({ + id: 'datasource', + value: `hello`, + }), + ).toMatchInlineSnapshot(`"LOWER(\\"datasource\\") LIKE LOWER('hello%')"`); + + expect( + sqlQueryCustomTableFilter({ + id: 'datasource', + value: `"hello"`, + }), + ).toMatchInlineSnapshot(`"\\"datasource\\" = 'hello'"`); + }); + }); }); diff --git a/web-console/src/utils/general.tsx b/web-console/src/utils/general.tsx index 2e9aeac8c83..7f13b04fce1 100644 --- a/web-console/src/utils/general.tsx +++ b/web-console/src/utils/general.tsx @@ -113,9 +113,10 @@ export function sqlQueryCustomTableFilter(filter: Filter): string { const needleAndMode: NeedleAndMode = getNeedleAndMode(filter.value); const needle = needleAndMode.needle; if (needleAndMode.mode === 'exact') { - return `${columnName} = '${needle.toUpperCase()}' OR ${columnName} = '${needle.toLowerCase()}'`; + return `${columnName} = '${needle}'`; + } else { + return `LOWER(${columnName}) LIKE LOWER('${needle}%')`; } - return `${columnName} LIKE '${needle.toUpperCase()}%' OR ${columnName} LIKE '${needle.toLowerCase()}%'`; } // ----------------------------