diff --git a/packages/sqltree/src/dumpSqlCondition.ts b/packages/sqltree/src/dumpSqlCondition.ts index 4ef5d02bf..636443d8a 100644 --- a/packages/sqltree/src/dumpSqlCondition.ts +++ b/packages/sqltree/src/dumpSqlCondition.ts @@ -39,7 +39,7 @@ export function dumpSqlCondition(dmp: SqlDumper, condition: Condition) { break; case 'like': dumpSqlExpression(dmp, condition.left); - dmp.put(' ^like '); + dmp.put(dmp.dialect.ilike ? ' ^ilike ' : ' ^like '); dumpSqlExpression(dmp, condition.right); break; case 'notLike': diff --git a/packages/types/dialect.d.ts b/packages/types/dialect.d.ts index cacc14a53..c7fbd678a 100644 --- a/packages/types/dialect.d.ts +++ b/packages/types/dialect.d.ts @@ -1,6 +1,7 @@ export interface SqlDialect { rangeSelect?: boolean; limitSelect?: boolean; + ilike?: boolean; rowNumberOverPaging?: boolean; stringEscapeChar: string; offsetFetchRangeSyntax?: boolean; diff --git a/plugins/dbgate-plugin-postgres/src/frontend/drivers.js b/plugins/dbgate-plugin-postgres/src/frontend/drivers.js index fc0b987db..91de9dd52 100644 --- a/plugins/dbgate-plugin-postgres/src/frontend/drivers.js +++ b/plugins/dbgate-plugin-postgres/src/frontend/drivers.js @@ -5,6 +5,7 @@ const { postgreSplitterOptions } = require('dbgate-query-splitter/lib/options'); /** @type {import('dbgate-types').SqlDialect} */ const dialect = { rangeSelect: true, + ilike: true, // stringEscapeChar: '\\', stringEscapeChar: "'", fallbackDataType: 'varchar',