diff --git a/mysql/database.go b/mysql/database.go
index 378affda08fcb73899a8ebae2580a172d000638c..7730534e524c2d62b96512736c440cd0bf15d231 100644
--- a/mysql/database.go
+++ b/mysql/database.go
@@ -43,6 +43,8 @@ var (
 	TimeFormat = "%d:%02d:%02d.%03d"
 )
 
+var template *sqlgen.Template
+
 var (
 	columnPattern  = regexp.MustCompile(`^([a-z]+)\(?([0-9,]+)?\)?\s?([a-z]*)?`)
 	sqlPlaceholder = sqlgen.Value{sqlgen.Raw{`?`}}
@@ -69,7 +71,7 @@ func debugEnabled() bool {
 
 func init() {
 
-	sqlgen.SetTemplate(sqlgen.Template{
+	template = &sqlgen.Template{
 		mysqlColumnSeparator,
 		mysqlIdentifierSeparator,
 		mysqlIdentifierQuote,
@@ -97,7 +99,7 @@ func init() {
 		mysqlDropDatabaseLayout,
 		mysqlDropTableLayout,
 		mysqlSelectCountLayout,
-	})
+	}
 
 	db.Register(Driver, &Source{})
 }
@@ -108,7 +110,7 @@ func (self *Source) doExec(stmt sqlgen.Statement, args ...interface{}) (sql.Resu
 		return nil, db.ErrNotConnected
 	}
 
-	query := stmt.Compile()
+	query := stmt.Compile(template)
 
 	if debugEnabled() == true {
 		sqlutil.DebugQuery(query, args)
@@ -126,7 +128,7 @@ func (self *Source) doQuery(stmt sqlgen.Statement, args ...interface{}) (*sql.Ro
 		return nil, db.ErrNotConnected
 	}
 
-	query := stmt.Compile()
+	query := stmt.Compile(template)
 
 	if debugEnabled() == true {
 		sqlutil.DebugQuery(query, args)
@@ -144,7 +146,7 @@ func (self *Source) doQueryRow(stmt sqlgen.Statement, args ...interface{}) (*sql
 		return nil, db.ErrNotConnected
 	}
 
-	query := stmt.Compile()
+	query := stmt.Compile(template)
 
 	if debugEnabled() == true {
 		sqlutil.DebugQuery(query, args)
diff --git a/mysql/result.go b/mysql/result.go
index 0564f8f9365bab4cda01820827ab1a6593298b4a..1f4b3a89f54643ec0cffd6486e55183963b36104 100644
--- a/mysql/result.go
+++ b/mysql/result.go
@@ -28,7 +28,7 @@ import (
 	"upper.io/db/util/sqlgen"
 )
 
-type counter struct {
+type counter_t struct {
 	Total uint64 `db:"_t"`
 }
 
@@ -239,7 +239,7 @@ func (self *Result) Count() (uint64, error) {
 
 	defer rows.Close()
 
-	dst := counter{}
+	dst := counter_t{}
 	self.table.T.FetchRow(&dst, rows)
 
 	return dst.Total, nil