From 6b4ee3cb4fabfc0cb5c26e21e126fc739d52ce02 Mon Sep 17 00:00:00 2001 From: kiwih Date: Fri, 7 Aug 2015 15:13:52 +1200 Subject: [PATCH] Add fix for go-sqlite3 truncating 64-bit integers when compiled by 32-bit mingw-gcc on windows by converting 'long' variable types to 'long long' in sqlite3.go --- sqlite3.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sqlite3.go b/sqlite3.go index 233e7e9..d57d9fb 100644 --- a/sqlite3.go +++ b/sqlite3.go @@ -48,21 +48,21 @@ _sqlite3_bind_blob(sqlite3_stmt *stmt, int n, void *p, int np) { #include static int -_sqlite3_exec(sqlite3* db, const char* pcmd, long* rowid, long* changes) +_sqlite3_exec(sqlite3* db, const char* pcmd, long long* rowid, long long* changes) { int rv = sqlite3_exec(db, pcmd, 0, 0, 0); - *rowid = (long) sqlite3_last_insert_rowid(db); - *changes = (long) sqlite3_changes(db); + *rowid = (long long) sqlite3_last_insert_rowid(db); + *changes = (long long) sqlite3_changes(db); return rv; } static int -_sqlite3_step(sqlite3_stmt* stmt, long* rowid, long* changes) +_sqlite3_step(sqlite3_stmt* stmt, long long* rowid, long long* changes) { int rv = sqlite3_step(stmt); sqlite3* db = sqlite3_db_handle(stmt); - *rowid = (long) sqlite3_last_insert_rowid(db); - *changes = (long) sqlite3_changes(db); + *rowid = (long long) sqlite3_last_insert_rowid(db); + *changes = (long long) sqlite3_changes(db); return rv; } @@ -243,7 +243,7 @@ func (c *SQLiteConn) exec(cmd string) (driver.Result, error) { pcmd := C.CString(cmd) defer C.free(unsafe.Pointer(pcmd)) - var rowid, changes C.long + var rowid, changes C.longlong rv := C._sqlite3_exec(c.db, pcmd, &rowid, &changes) if rv != C.SQLITE_OK { return nil, c.lastError() @@ -536,7 +536,7 @@ func (s *SQLiteStmt) Exec(args []driver.Value) (driver.Result, error) { C.sqlite3_clear_bindings(s.s) return nil, err } - var rowid, changes C.long + var rowid, changes C.longlong rv := C._sqlite3_step(s.s, &rowid, &changes) if rv != C.SQLITE_ROW && rv != C.SQLITE_OK && rv != C.SQLITE_DONE { err := s.c.lastError()