From 73ef85bc5db590c22689e11be20737a3dd88168f Mon Sep 17 00:00:00 2001 From: Niall Sheridan Date: Wed, 28 Dec 2016 21:18:36 +0000 Subject: Update dependencies --- vendor/github.com/mattn/go-sqlite3/sqlite3_type.go | 57 ++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 vendor/github.com/mattn/go-sqlite3/sqlite3_type.go (limited to 'vendor/github.com/mattn/go-sqlite3/sqlite3_type.go') diff --git a/vendor/github.com/mattn/go-sqlite3/sqlite3_type.go b/vendor/github.com/mattn/go-sqlite3/sqlite3_type.go new file mode 100644 index 0000000..200d071 --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3_type.go @@ -0,0 +1,57 @@ +package sqlite3 + +/* +#ifndef USE_LIBSQLITE3 +#include +#else +#include +#endif +*/ +import "C" +import ( + "reflect" + "time" +) + +// ColumnTypeDatabaseTypeName implement RowsColumnTypeDatabaseTypeName. +func (rc *SQLiteRows) ColumnTypeDatabaseTypeName(i int) string { + return C.GoString(C.sqlite3_column_decltype(rc.s.s, C.int(i))) +} + +/* +func (rc *SQLiteRows) ColumnTypeLength(index int) (length int64, ok bool) { + return 0, false +} + +func (rc *SQLiteRows) ColumnTypePrecisionScale(index int) (precision, scale int64, ok bool) { + return 0, 0, false +} +*/ + +// ColumnTypeNullable implement RowsColumnTypeNullable. +func (rc *SQLiteRows) ColumnTypeNullable(i int) (nullable, ok bool) { + return true, true +} + +// ColumnTypeScanType implement RowsColumnTypeScanType. +func (rc *SQLiteRows) ColumnTypeScanType(i int) reflect.Type { + switch C.sqlite3_column_type(rc.s.s, C.int(i)) { + case C.SQLITE_INTEGER: + switch C.GoString(C.sqlite3_column_decltype(rc.s.s, C.int(i))) { + case "timestamp", "datetime", "date": + return reflect.TypeOf(time.Time{}) + case "boolean": + return reflect.TypeOf(false) + } + return reflect.TypeOf(int64(0)) + case C.SQLITE_FLOAT: + return reflect.TypeOf(float64(0)) + case C.SQLITE_BLOB: + return reflect.SliceOf(reflect.TypeOf(byte(0))) + case C.SQLITE_NULL: + return reflect.TypeOf(nil) + case C.SQLITE_TEXT: + return reflect.TypeOf("") + } + return reflect.SliceOf(reflect.TypeOf(byte(0))) +} -- cgit v1.2.3