diff options
author | Zac Medico <zmedico@gmail.com> | 2016-03-06 12:27:17 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gmail.com> | 2016-03-06 12:27:17 -0800 |
commit | f544db98ccf4918ec2ec090a4d74450ef45b4b1c (patch) | |
tree | 6e41739686a444e15de21fe28531c740deeddf95 /sqlite3.go | |
parent | Merge pull request #278 from rkintzi/json1 (diff) | |
download | golite-f544db98ccf4918ec2ec090a4d74450ef45b4b1c.tar.gz golite-f544db98ccf4918ec2ec090a4d74450ef45b4b1c.tar.xz |
Add SQLiteRows.DeclTypes() method
Diffstat (limited to 'sqlite3.go')
-rw-r--r-- | sqlite3.go | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -893,6 +893,17 @@ func (rc *SQLiteRows) Columns() []string { return rc.cols } +// Return column types. +func (rc *SQLiteRows) DeclTypes() []string { + if rc.decltype == nil { + rc.decltype = make([]string, rc.nc) + for i := 0; i < rc.nc; i++ { + rc.decltype[i] = strings.ToLower(C.GoString(C.sqlite3_column_decltype(rc.s.s, C.int(i)))) + } + } + return rc.decltype +} + // Move cursor to next. func (rc *SQLiteRows) Next(dest []driver.Value) error { rv := C.sqlite3_step(rc.s.s) @@ -907,12 +918,7 @@ func (rc *SQLiteRows) Next(dest []driver.Value) error { return nil } - if rc.decltype == nil { - rc.decltype = make([]string, rc.nc) - for i := 0; i < rc.nc; i++ { - rc.decltype[i] = strings.ToLower(C.GoString(C.sqlite3_column_decltype(rc.s.s, C.int(i)))) - } - } + rc.DeclTypes() for i := range dest { switch C.sqlite3_column_type(rc.s.s, C.int(i)) { |