From 693501fd607555f0d45740f017a547cf450e3e2a Mon Sep 17 00:00:00 2001 From: evalphobia Date: Sun, 30 Aug 2015 20:07:18 +0900 Subject: [PATCH] Fixed FOR UPDATE for each dialects #290 --- mssql_dialect.go | 4 ++++ sqlite3_dialect.go | 4 ++++ statement.go | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/mssql_dialect.go b/mssql_dialect.go index 0eef76d4..41989b91 100644 --- a/mssql_dialect.go +++ b/mssql_dialect.go @@ -509,6 +509,10 @@ func (db *mssql) CreateTableSql(table *core.Table, tableName, storeEngine, chars return sql } +func (db *mssql) ForUpdateSql(query string) string { + return query +} + func (db *mssql) Filters() []core.Filter { return []core.Filter{&core.IdFilter{}, &core.QuoteFilter{}} } diff --git a/sqlite3_dialect.go b/sqlite3_dialect.go index 94e7d6b3..80873dbd 100644 --- a/sqlite3_dialect.go +++ b/sqlite3_dialect.go @@ -250,6 +250,10 @@ func (db *sqlite3) DropIndexSql(tableName string, index *core.Index) string { return fmt.Sprintf("DROP INDEX %v", quote(idxName)) } +func (db *sqlite3) ForUpdateSql(query string) string { + return query +} + /*func (db *sqlite3) ColumnCheckSql(tableName, colName string) (string, []interface{}) { args := []interface{}{tableName} sql := "SELECT name FROM sqlite_master WHERE type='table' and name = ? and ((sql like '%`" + colName + "`%') or (sql like '%[" + colName + "]%'))" diff --git a/statement.go b/statement.go index 063a6193..61d42dfe 100644 --- a/statement.go +++ b/statement.go @@ -1283,7 +1283,7 @@ func (statement *Statement) genSelectSql(columnStr string) (a string) { } } if statement.IsForUpdate { - a += " FOR UPDATE" + a = statement.Engine.dialect.ForUpdateSql(a) } return