good morning!!!!

Skip to content
Snippets Groups Projects
Commit c74ad218 authored by José Carlos Nieto's avatar José Carlos Nieto
Browse files

Adding support for debugLog().

parent fad3aac6
No related branches found
No related tags found
No related merge requests found
......@@ -70,6 +70,13 @@ func debugEnabled() bool {
return false
}
func debugLog(query string, args []interface{}, err error) {
if debugEnabled() == true {
d := sqlutil.Debug{query, args, err}
d.Print()
}
}
func init() {
template = &sqlgen.Template{
......@@ -106,74 +113,96 @@ func init() {
}
func (self *Source) doExec(stmt sqlgen.Statement, args ...interface{}) (sql.Result, error) {
var query string
var res sql.Result
var err error
defer func() {
debugLog(query, args, err)
}()
if self.session == nil {
return nil, db.ErrNotConnected
}
query := stmt.Compile(template)
if debugEnabled() == true {
sqlutil.DebugQuery(query, args)
}
query = stmt.Compile(template)
if self.tx != nil {
return self.tx.Exec(query, args...)
res, err = self.tx.Exec(query, args...)
} else {
res, err = self.session.Exec(query, args...)
}
return self.session.Exec(query, args...)
return res, err
}
func (self *Source) doQuery(stmt sqlgen.Statement, args ...interface{}) (*sql.Rows, error) {
var rows *sql.Rows
var query string
var err error
defer func() {
debugLog(query, args, err)
}()
if self.session == nil {
return nil, db.ErrNotConnected
}
query := stmt.Compile(template)
if debugEnabled() == true {
sqlutil.DebugQuery(query, args)
}
query = stmt.Compile(template)
if self.tx != nil {
return self.tx.Query(query, args...)
rows, err = self.tx.Query(query, args...)
} else {
rows, err = self.session.Query(query, args...)
}
return self.session.Query(query, args...)
return rows, err
}
func (self *Source) doQueryRow(stmt sqlgen.Statement, args ...interface{}) (*sql.Row, error) {
var query string
var row *sql.Row
var err error
defer func() {
debugLog(query, args, err)
}()
if self.session == nil {
return nil, db.ErrNotConnected
}
query := stmt.Compile(template)
if debugEnabled() == true {
sqlutil.DebugQuery(query, args)
}
query = stmt.Compile(template)
if self.tx != nil {
return self.tx.QueryRow(query, args...), nil
row = self.tx.QueryRow(query, args...)
} else {
row = self.session.QueryRow(query, args...)
}
return self.session.QueryRow(query, args...), nil
return row, err
}
func (self *Source) doRawQuery(query string, args ...interface{}) (*sql.Rows, error) {
var rows *sql.Rows
var err error
defer func() {
debugLog(query, args, err)
}()
if self.session == nil {
return nil, db.ErrNotConnected
}
if debugEnabled() == true {
sqlutil.DebugQuery(query, args)
}
if self.tx != nil {
return self.tx.Query(query, args...)
rows, err = self.tx.Query(query, args...)
} else {
rows, err = self.session.Query(query, args...)
}
return self.session.Query(query, args...)
return rows, err
}
// Returns the string name of the database.
......
......@@ -23,6 +23,7 @@ package sqlite
import (
"database/sql"
"fmt"
"strings"
"upper.io/db"
"upper.io/db/util/sqlgen"
......@@ -112,12 +113,17 @@ func (self *Result) Sort(fields ...string) db.Result {
}
// Retrieves only the given fields.
func (self *Result) Select(fields ...string) db.Result {
func (self *Result) Select(fields ...interface{}) db.Result {
self.columns = make(sqlgen.Columns, 0, len(fields))
l := len(fields)
for i := 0; i < l; i++ {
self.columns = append(self.columns, sqlgen.Column{fields[i]})
switch value := fields[i].(type) {
case db.Raw:
self.columns = append(self.columns, sqlgen.Column{sqlgen.Raw{fmt.Sprintf(`%v`, value.Value)}})
default:
self.columns = append(self.columns, sqlgen.Column{value})
}
}
return self
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment