Skip to content

Commit ecbfaa2

Browse files
committed
Upper all filter values to case insensitive search
1 parent 078aa73 commit ecbfaa2

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/database/schemas.ts

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ export default class Schemas {
2323
let selects: string[] = [];
2424
let query : string;
2525

26+
if (details.filter) {
27+
// This is so we can do a case insensitive filter
28+
details.filter = details.filter.toUpperCase();
29+
}
30+
2631
// If there are multiple types, we build a union. It's important that the ordering of the columns in the selects are consistant:
2732
// OBJ_TYPE, NAME, TEXT, SYS_NAME, SYS_SCHEMA, SPECNAME, BASE_SCHEMA, BASE_OBJ
2833

@@ -32,7 +37,7 @@ export default class Schemas {
3237
selects.push([
3338
`select '${type}' as OBJ_TYPE, SCHEMA_NAME as NAME, SCHEMA_TEXT as TEXT, SYSTEM_SCHEMA_NAME as SYS_NAME, '' as SYS_SCHEMA, '' as SPECNAME, '' as BASE_SCHEMA, '' as BASE_OBJ`,
3439
`from QSYS2.SYSSCHEMAS`,
35-
details.filter ? `where SCHEMA_NAME = '${details.filter}' or SYSTEM_SCHEMA_NAME = '${details.filter}'` : ``,
40+
details.filter ? `where UPPER(SCHEMA_NAME) = '${details.filter}' or UPPER(SYSTEM_SCHEMA_NAME) = '${details.filter}'` : ``,
3641
`order by QSYS2.DELIMIT_NAME(SCHEMA_NAME) asc`
3742
].join(` `));
3843
break;
@@ -43,7 +48,7 @@ export default class Schemas {
4348
selects.push([
4449
`select '${type}' as OBJ_TYPE, TABLE_NAME as NAME, TABLE_TEXT as TEXT, SYSTEM_TABLE_NAME as SYS_NAME, SYSTEM_TABLE_SCHEMA as SYS_SCHEMA, '' as SPECNAME, BASE_TABLE_SCHEMA as BASE_SCHEMA, BASE_TABLE_NAME as BASE_OBJ`,
4550
`from QSYS2.SYSTABLES`,
46-
`where TABLE_SCHEMA = '${schema}' and TABLE_TYPE in (${typeMap[type].map(item => `'${item}'`).join(`, `)}) ${details.filter ? `and TABLE_NAME like '%${details.filter}%'`: ``}`,
51+
`where TABLE_SCHEMA = '${schema}' and TABLE_TYPE in (${typeMap[type].map(item => `'${item}'`).join(`, `)}) ${details.filter ? `and UPPER(TABLE_NAME) like '%${details.filter}%'`: ``}`,
4752
`order by TABLE_NAME asc`
4853
].join(` `));
4954
break;
@@ -52,7 +57,7 @@ export default class Schemas {
5257
selects.push([
5358
`select '${type}' as OBJ_TYPE, CONSTRAINT_NAME as NAME, CONSTRAINT_TEXT as TEXT, SYSTEM_TABLE_NAME as SYS_NAME, SYSTEM_TABLE_SCHEMA as SYS_SCHEMA, '' as SPECNAME, TABLE_SCHEMA as BASE_SCHEMA, TABLE_NAME as BASE_OBJ`,
5459
`from QSYS2.SYSCST`,
55-
`where CONSTRAINT_SCHEMA = '${schema}' ${details.filter ? `and CONSTRAINT_NAME like '%${details.filter}%'`: ``}`,
60+
`where CONSTRAINT_SCHEMA = '${schema}' ${details.filter ? `and UPPER(CONSTRAINT_NAME) like '%${details.filter}%'`: ``}`,
5661
`order by CONSTRAINT_NAME asc`
5762
].join(` `));
5863
break;
@@ -61,7 +66,7 @@ export default class Schemas {
6166
selects.push([
6267
`select '${type}' as OBJ_TYPE, ROUTINE_NAME as NAME, coalesce(ROUTINE_TEXT, LONG_COMMENT) as TEXT, '' as SYS_NAME, '' as SYS_SCHEMA, SPECIFIC_NAME as SPECNAME, '' as BASE_SCHEMA, '' as BASE_OBJ`,
6368
`from QSYS2.SYSFUNCS`,
64-
`where ROUTINE_SCHEMA = '${schema}' ${details.filter ? `and ROUTINE_NAME like '%${details.filter}%'`: ``} and FUNCTION_ORIGIN in ('E','U')`,
69+
`where ROUTINE_SCHEMA = '${schema}' ${details.filter ? `and UPPER(ROUTINE_NAME) like '%${details.filter}%'`: ``} and FUNCTION_ORIGIN in ('E','U')`,
6570
`order by ROUTINE_NAME asc`
6671
].join(` `));
6772
break;
@@ -70,7 +75,7 @@ export default class Schemas {
7075
selects.push([
7176
`select '${type}' as OBJ_TYPE, VARIABLE_NAME as NAME, VARIABLE_TEXT as TEXT, SYSTEM_VAR_NAME as SYS_NAME, SYSTEM_VAR_SCHEMA as SYS_SCHEMA, '' as SPECNAME, '' as BASE_SCHEMA, '' as BASE_OBJ`,
7277
`from QSYS2.SYSVARIABLES`,
73-
`where VARIABLE_SCHEMA = '${schema}' ${details.filter ? `and VARIABLE_NAME like '%${details.filter}%'`: ``}`,
78+
`where VARIABLE_SCHEMA = '${schema}' ${details.filter ? `and UPPER(VARIABLE_NAME) like '%${details.filter}%'`: ``}`,
7479
`order by VARIABLE_NAME asc`
7580
].join(` `));
7681
break;
@@ -79,7 +84,7 @@ export default class Schemas {
7984
selects.push([
8085
`select '${type}' as OBJ_TYPE, INDEX_NAME as NAME, INDEX_TEXT as TEXT, SYSTEM_INDEX_NAME as SYS_NAME, SYSTEM_INDEX_SCHEMA as SYS_SCHEMA, '' as SPECNAME, TABLE_SCHEMA as BASE_SCHEMA, TABLE_NAME as BASE_OBJ`,
8186
`from QSYS2.SYSINDEXES`,
82-
`where INDEX_SCHEMA = '${schema}' ${details.filter ? `and INDEX_NAME like '%${details.filter}%'`: ``}`,
87+
`where INDEX_SCHEMA = '${schema}' ${details.filter ? `and UPPER(INDEX_NAME) like '%${details.filter}%'`: ``}`,
8388
`order by INDEX_NAME asc`
8489
].join(` `));
8590
break;
@@ -88,7 +93,7 @@ export default class Schemas {
8893
selects.push([
8994
`select '${type}' as OBJ_TYPE, ROUTINE_NAME as NAME, ROUTINE_TEXT as TEXT, '' as SYS_NAME, '' as SYS_SCHEMA, SPECIFIC_NAME as SPECNAME, '' as BASE_SCHEMA, '' as BASE_OBJ`,
9095
`from QSYS2.SYSPROCS`,
91-
`where ROUTINE_SCHEMA = '${schema}' ${details.filter ? `and ROUTINE_NAME like '%${details.filter}%'`: ``}`,
96+
`where ROUTINE_SCHEMA = '${schema}' ${details.filter ? `and UPPER(ROUTINE_NAME) like '%${details.filter}%'`: ``}`,
9297
`order by ROUTINE_NAME asc`
9398
].join(` `));
9499
break;
@@ -97,7 +102,7 @@ export default class Schemas {
97102
selects.push([
98103
`select '${type}' as OBJ_TYPE, SEQUENCE_NAME as NAME, SEQUENCE_TEXT as TEXT, SYSTEM_SEQ_NAME as SYS_NAME, SYSTEM_SEQ_SCHEMA as SYS_SCHEMA, '' as SPECNAME, '' as BASE_SCHEMA, '' as BASE_OBJ`,
99104
`from QSYS2.SYSSEQUENCES`,
100-
`where SEQUENCE_SCHEMA = '${schema}' ${details.filter ? `and SEQUENCE_NAME like '%${details.filter}%'`: ``}`,
105+
`where SEQUENCE_SCHEMA = '${schema}' ${details.filter ? `and UPPER(SEQUENCE_NAME) like '%${details.filter}%'`: ``}`,
101106
`order by SEQUENCE_NAME asc`
102107
].join(` `));
103108
break;
@@ -116,7 +121,7 @@ export default class Schemas {
116121
selects.push([
117122
`select '${type}' as OBJ_TYPE, TRIGGER_NAME as NAME, TRIGGER_TEXT as TEXT, '' as SYS_NAME, '' as SYS_SCHEMA, '' as SPECNAME, EVENT_OBJECT_SCHEMA as BASE_SCHEMA, EVENT_OBJECT_TABLE as BASE_OBJ`,
118123
`from QSYS2.SYSTRIGGERS`,
119-
`where TRIGGER_SCHEMA = '${schema}' ${details.filter ? `and TRIGGER_NAME like '%${details.filter}%'`: ``}`,
124+
`where TRIGGER_SCHEMA = '${schema}' ${details.filter ? `and UPPER(TRIGGER_NAME) like '%${details.filter}%'`: ``}`,
120125
`order by TRIGGER_NAME asc`
121126
].join(` `));
122127
break;
@@ -125,7 +130,7 @@ export default class Schemas {
125130
selects.push([
126131
`select '${type}' as OBJ_TYPE, USER_DEFINED_TYPE_NAME as NAME, TYPE_TEXT as TEXT, SYSTEM_TYPE_NAME as SYS_NAME, SYSTEM_TYPE_SCHEMA as SYS_SCHEMA, '' as SPECNAME, '' as BASE_SCHEMA, '' as BASE_OBJ`,
127132
`from QSYS2.SYSTYPES`,
128-
`where USER_DEFINED_TYPE_SCHEMA = '${schema}' ${details.filter ? `and USER_DEFINED_TYPE_NAME like '%${details.filter}%'`: ``}`,
133+
`where USER_DEFINED_TYPE_SCHEMA = '${schema}' ${details.filter ? `and UPPER(USER_DEFINED_TYPE_NAME) like '%${details.filter}%'`: ``}`,
129134
`order by USER_DEFINED_TYPE_NAME asc`
130135
].join(` `));
131136
break;

0 commit comments

Comments
 (0)