diff options
Diffstat (limited to '')
| -rw-r--r-- | sqlite.zig | 9 |
1 files changed, 8 insertions, 1 deletions
| @@ -283,10 +283,17 @@ fn getDetailedErrorFromResultCode(code: c_int) DetailedError { | |||
| 283 | }; | 283 | }; |
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | fn 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 | |||
| 286 | fn getLastDetailedErrorFromDb(db: *c.sqlite3) DetailedError { | 293 | fn 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); |