diff options
| author | 2022-04-01 19:36:20 -0300 | |
|---|---|---|
| committer | 2022-04-02 01:32:44 +0200 | |
| commit | aa593b41beedea008561785dd764b9ffb3426cbe (patch) | |
| tree | af7f140554760bb70bed548fa23143433e8cb12a /sqlite.zig | |
| parent | add error offsets to DetailedError (diff) | |
| download | zig-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.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); |