From a8b9f5d8b8ed5659b85d1ffb4c54061fa5af8952 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 11 Apr 2014 23:33:56 +0800 Subject: [PATCH] bug fixed and code refactoring --- mysql_dialect.go | 3 +++ postgres_dialect.go | 19 +------------------ 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/mysql_dialect.go b/mysql_dialect.go index 52a8a15e..58a30c44 100644 --- a/mysql_dialect.go +++ b/mysql_dialect.go @@ -119,10 +119,13 @@ func (db *mysql) GetColumns(tableName string) ([]string, map[string]*core.Column return nil, nil, err } defer cnn.Close() + rows, err := cnn.Query(s, args...) if err != nil { return nil, nil, err } + defer rows.Close() + cols := make(map[string]*core.Column) colSeq := make([]string, 0) for rows.Next() { diff --git a/postgres_dialect.go b/postgres_dialect.go index 58d39f9d..51269d53 100644 --- a/postgres_dialect.go +++ b/postgres_dialect.go @@ -276,23 +276,6 @@ func (db *postgres) GetIndexes(tableName string) (map[string]*core.Index, error) return indexes, nil } -// PgSeqFilter filter SQL replace ?, ? ... to $1, $2 ... -type PgSeqFilter struct { -} - -func (s *PgSeqFilter) Do(sql string, dialect core.Dialect, table *core.Table) string { - segs := strings.Split(sql, "?") - size := len(segs) - res := "" - for i, c := range segs { - if i < size-1 { - res += c + fmt.Sprintf("$%v", i+1) - } - } - res += segs[size-1] - return res -} - func (db *postgres) Filters() []core.Filter { - return []core.Filter{&core.IdFilter{}, &core.QuoteFilter{}, &PgSeqFilter{}} + return []core.Filter{&core.IdFilter{}, &core.QuoteFilter{}, &core.SeqFilter{"$", 1}} }