aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/jmoiron/sqlx/sqlx.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/jmoiron/sqlx/sqlx.go')
-rw-r--r--vendor/github.com/jmoiron/sqlx/sqlx.go18
1 files changed, 15 insertions, 3 deletions
diff --git a/vendor/github.com/jmoiron/sqlx/sqlx.go b/vendor/github.com/jmoiron/sqlx/sqlx.go
index 4859d5a..4385c3f 100644
--- a/vendor/github.com/jmoiron/sqlx/sqlx.go
+++ b/vendor/github.com/jmoiron/sqlx/sqlx.go
@@ -228,6 +228,14 @@ func (r *Row) Columns() ([]string, error) {
return r.rows.Columns()
}
+// ColumnTypes returns the underlying sql.Rows.ColumnTypes(), or the deferred error
+func (r *Row) ColumnTypes() ([]*sql.ColumnType, error) {
+ if r.err != nil {
+ return []*sql.ColumnType{}, r.err
+ }
+ return r.rows.ColumnTypes()
+}
+
// Err returns the error encountered while scanning.
func (r *Row) Err() error {
return r.err
@@ -593,7 +601,7 @@ func (r *Rows) StructScan(dest interface{}) error {
return errors.New("must pass a pointer, not a value, to StructScan destination")
}
- v = reflect.Indirect(v)
+ v = v.Elem()
if !r.started {
columns, err := r.Columns()
@@ -627,10 +635,14 @@ func (r *Rows) StructScan(dest interface{}) error {
func Connect(driverName, dataSourceName string) (*DB, error) {
db, err := Open(driverName, dataSourceName)
if err != nil {
- return db, err
+ return nil, err
}
err = db.Ping()
- return db, err
+ if err != nil {
+ db.Close()
+ return nil, err
+ }
+ return db, nil
}
// MustConnect connects to a database and panics on error.