summaryrefslogtreecommitdiff
path: root/sqlite.zig
diff options
context:
space:
mode:
authorGravatar Luna2022-04-01 19:36:20 -0300
committerGravatar Vincent Rischmann2022-04-02 01:32:44 +0200
commitaa593b41beedea008561785dd764b9ffb3426cbe (patch)
treeaf7f140554760bb70bed548fa23143433e8cb12a /sqlite.zig
parentadd error offsets to DetailedError (diff)
downloadzig-sqlite-aa593b41beedea008561785dd764b9ffb3426cbe.tar.gz
zig-sqlite-aa593b41beedea008561785dd764b9ffb3426cbe.tar.xz
zig-sqlite-aa593b41beedea008561785dd764b9ffb3426cbe.zip
only use sqlite3_error_offset if compatible
Diffstat (limited to 'sqlite.zig')
-rw-r--r--sqlite.zig9
1 files changed, 8 insertions, 1 deletions
diff --git a/sqlite.zig b/sqlite.zig
index 8a70568..f6632b6 100644
--- a/sqlite.zig
+++ b/sqlite.zig
@@ -283,10 +283,17 @@ fn getDetailedErrorFromResultCode(code: c_int) DetailedError {
283 }; 283 };
284} 284}
285 285
286fn getErrorOffset(db: *c.sqlite3) i32 {
287 if (comptime c.SQLITE_VERSION_NUMBER >= 3038000) {
288 return c.sqlite3_error_offset(db);
289 }
290 return -1;
291}
292
286fn getLastDetailedErrorFromDb(db: *c.sqlite3) DetailedError { 293fn getLastDetailedErrorFromDb(db: *c.sqlite3) DetailedError {
287 return .{ 294 return .{
288 .code = @intCast(usize, c.sqlite3_extended_errcode(db)), 295 .code = @intCast(usize, c.sqlite3_extended_errcode(db)),
289 .near = @intCast(i32, c.sqlite3_error_offset(db)), 296 .near = getErrorOffset(db),
290 .message = blk: { 297 .message = blk: {
291 const msg = c.sqlite3_errmsg(db); 298 const msg = c.sqlite3_errmsg(db);
292 break :blk mem.sliceTo(msg, 0); 299 break :blk mem.sliceTo(msg, 0);