diff --git a/dialects/filter_test.go b/dialects/filter_test.go index e8395156..7e2ef0a2 100644 --- a/dialects/filter_test.go +++ b/dialects/filter_test.go @@ -3,38 +3,9 @@ package dialects import ( "testing" - "xorm.io/xorm/schemas" - "github.com/stretchr/testify/assert" ) -func TestQuoteFilter_Do(t *testing.T) { - f := QuoteFilter{schemas.Quoter{'[', ']', schemas.AlwaysReserve}} - var kases = []struct { - source string - expected string - }{ - { - "SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = ? AND `TABLE_NAME` = ? AND `COLUMN_NAME` = ?", - "SELECT [COLUMN_NAME] FROM [INFORMATION_SCHEMA].[COLUMNS] WHERE [TABLE_SCHEMA] = ? AND [TABLE_NAME] = ? AND [COLUMN_NAME] = ?", - }, - { - "SELECT 'abc```test```''', `a` FROM b", - "SELECT 'abc```test```''', [a] FROM b", - }, - { - "UPDATE table SET `a` = ~ `a`, `b`='abc`'", - "UPDATE table SET [a] = ~ [a], [b]='abc`'", - }, - } - - for _, kase := range kases { - t.Run(kase.source, func(t *testing.T) { - assert.EqualValues(t, kase.expected, f.Do(kase.source)) - }) - } -} - func TestSeqFilter(t *testing.T) { var kases = map[string]string{ "SELECT * FROM TABLE1 WHERE a=? AND b=?": "SELECT * FROM TABLE1 WHERE a=$1 AND b=$2", diff --git a/dialects/mssql.go b/dialects/mssql.go index af903a7a..cad18a29 100644 --- a/dialects/mssql.go +++ b/dialects/mssql.go @@ -525,7 +525,7 @@ func (db *mssql) ForUpdateSQL(query string) string { } func (db *mssql) Filters() []Filter { - return []Filter{ /*&QuoteFilter{db.Quoter()}*/ } + return []Filter{} } type odbcDriver struct { diff --git a/dialects/oracle.go b/dialects/oracle.go index 48ead247..c48d32b9 100644 --- a/dialects/oracle.go +++ b/dialects/oracle.go @@ -793,7 +793,6 @@ func (db *oracle) GetIndexes(ctx context.Context, tableName string) (map[string] func (db *oracle) Filters() []Filter { return []Filter{ - /*&QuoteFilter{db.Quoter()},*/ &SeqFilter{Prefix: ":", Start: 1}, } } diff --git a/dialects/postgres.go b/dialects/postgres.go index 736d66a8..8412ad40 100644 --- a/dialects/postgres.go +++ b/dialects/postgres.go @@ -1231,7 +1231,7 @@ func (db *postgres) GetIndexes(ctx context.Context, tableName string) (map[strin } func (db *postgres) Filters() []Filter { - return []Filter{ /*&QuoteFilter{db.Quoter()}, */ &SeqFilter{Prefix: "$", Start: 1}} + return []Filter{&SeqFilter{Prefix: "$", Start: 1}} } type pqDriver struct { diff --git a/schemas/quote_test.go b/schemas/quote_test.go index c7990f92..7a43bd24 100644 --- a/schemas/quote_test.go +++ b/schemas/quote_test.go @@ -146,3 +146,30 @@ func TestTrim(t *testing.T) { assert.EqualValues(t, dst, Quoter{'[', ']', AlwaysReserve}.Trim(src)) } } + +func TestReplace(t *testing.T) { + q := Quoter{'[', ']', AlwaysReserve} + var kases = []struct { + source string + expected string + }{ + { + "SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA` = ? AND `TABLE_NAME` = ? AND `COLUMN_NAME` = ?", + "SELECT [COLUMN_NAME] FROM [INFORMATION_SCHEMA].[COLUMNS] WHERE [TABLE_SCHEMA] = ? AND [TABLE_NAME] = ? AND [COLUMN_NAME] = ?", + }, + { + "SELECT 'abc```test```''', `a` FROM b", + "SELECT 'abc```test```''', [a] FROM b", + }, + { + "UPDATE table SET `a` = ~ `a`, `b`='abc`'", + "UPDATE table SET [a] = ~ [a], [b]='abc`'", + }, + } + + for _, kase := range kases { + t.Run(kase.source, func(t *testing.T) { + assert.EqualValues(t, kase.expected, q.Replace(kase.source)) + }) + } +}