diff options
author | mattn <mattn.jp@gmail.com> | 2016-03-07 18:57:06 +0900 |
---|---|---|
committer | mattn <mattn.jp@gmail.com> | 2016-03-07 18:57:06 +0900 |
commit | 10876d7dac65f02064c03d7372a2f1dfb90043fe (patch) | |
tree | 6b405f398b7f2dd7194601ad6dcf136248724393 /sqlite3.go | |
parent | Conditional build for the FTS5 Extension (diff) | |
parent | Test SQLiteRows.DeclTypes() (diff) | |
download | golite-10876d7dac65f02064c03d7372a2f1dfb90043fe.tar.gz golite-10876d7dac65f02064c03d7372a2f1dfb90043fe.tar.xz |
Merge pull request #282 from zmedico/decltypes
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)) { |