aboutsummaryrefslogtreecommitdiff
path: root/sqlite3.go
diff options
context:
space:
mode:
Diffstat (limited to 'sqlite3.go')
-rw-r--r--sqlite3.go18
1 files changed, 12 insertions, 6 deletions
diff --git a/sqlite3.go b/sqlite3.go
index db34b23..afeb99e 100644
--- a/sqlite3.go
+++ b/sqlite3.go
@@ -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)) {