aboutsummaryrefslogtreecommitdiff
path: root/sqlite3.go
diff options
context:
space:
mode:
authorkiwih <hammondpearce@outlook.com>2015-08-07 15:13:52 +1200
committerkiwih <hammondpearce@outlook.com>2015-08-07 15:13:52 +1200
commit6b4ee3cb4fabfc0cb5c26e21e126fc739d52ce02 (patch)
treec0f37b4653f23dabdd248e860cfdfe630aaf28e2 /sqlite3.go
parentupdate README.md (diff)
downloadgolite-6b4ee3cb4fabfc0cb5c26e21e126fc739d52ce02.tar.gz
golite-6b4ee3cb4fabfc0cb5c26e21e126fc739d52ce02.tar.xz
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
Diffstat (limited to 'sqlite3.go')
-rw-r--r--sqlite3.go16
1 files 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 <stdint.h>
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()