From 858e2fef68f78fce43043f33e0edaefb15e255fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Carlos=20Nieto?= <jose.carlos@menteslibres.net> Date: Thu, 8 Oct 2015 10:08:00 -0500 Subject: [PATCH] Adding HasExecStatement interface to delegate Exec to the adapter. --- internal/sqladapter/database.go | 8 ++++++++ internal/sqlutil/result/result.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/internal/sqladapter/database.go b/internal/sqladapter/database.go index 94b30a8a..e04b5850 100644 --- a/internal/sqladapter/database.go +++ b/internal/sqladapter/database.go @@ -17,6 +17,10 @@ import ( "upper.io/db/internal/sqlutil/tx" ) +type HasExecStatement interface { + Exec(stmt *sqlx.Stmt, args ...interface{}) (sql.Result, error) +} + type PartialDatabase interface { PopulateSchema() error TableExists(name string) error @@ -195,6 +199,10 @@ func (d *BaseDatabase) Exec(stmt *sqlgen.Statement, args ...interface{}) (sql.Re return nil, err } + if execer, ok := d.partial.(HasExecStatement); ok { + return execer.Exec(p, args...) + } + return p.Exec(args...) } diff --git a/internal/sqlutil/result/result.go b/internal/sqlutil/result/result.go index 6f052d2b..a508ac5b 100644 --- a/internal/sqlutil/result/result.go +++ b/internal/sqlutil/result/result.go @@ -147,7 +147,7 @@ func (r *Result) Count() (uint64, error) { }{} q := r.buildSelect() - q.Columns(db.Raw{"COUNT(1) AS _t"}).Limit(1) + q.Columns(db.Raw{"count(1) AS _t"}).Limit(1) if err := q.Iterator().One(&counter); err != nil { return 0, err -- GitLab