diff options
author | Jesse Hallam <jesse.hallam@gmail.com> | 2018-04-16 21:23:20 -0400 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2018-04-16 18:23:20 -0700 |
commit | 3a4c7603b3ce35ab247b4dddaf7a2506375ba2c9 (patch) | |
tree | b60b9b7dd321ba741946f4bd57556895c211c3ed /vendor/github.com/mattn/go-sqlite3/sqlite3_type.go | |
parent | ba6f9075c1fcc3fbfa5ba94e97df6a4dd9e70b50 (diff) | |
download | chat-3a4c7603b3ce35ab247b4dddaf7a2506375ba2c9.tar.gz chat-3a4c7603b3ce35ab247b4dddaf7a2506375ba2c9.tar.bz2 chat-3a4c7603b3ce35ab247b4dddaf7a2506375ba2c9.zip |
MM-10020: avoid duplicating unique indexes (#8587)
* unit test TestGet(Search)Replica
This adds partial, testing-focused support for SQLite, as well as removing
some translated log messages that required initializing i18n just for
testing.
* avoid returning master twice when no replicas are configured
* remove duplicate indexes
* unit test GetAllConns
Diffstat (limited to 'vendor/github.com/mattn/go-sqlite3/sqlite3_type.go')
-rw-r--r-- | vendor/github.com/mattn/go-sqlite3/sqlite3_type.go | 57 |
1 files changed, 57 insertions, 0 deletions
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 000000000..200d071cd --- /dev/null +++ b/vendor/github.com/mattn/go-sqlite3/sqlite3_type.go @@ -0,0 +1,57 @@ +package sqlite3 + +/* +#ifndef USE_LIBSQLITE3 +#include <sqlite3-binding.h> +#else +#include <sqlite3.h> +#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))) +} |