@@ -13,6 +13,11 @@ SqliteException createExceptionRaw(
13
13
// Getting hold of more explanatory error code as SQLITE_IOERR error group has
14
14
// an extensive list of extended error codes
15
15
final extendedCode = db.sqlite3_extended_errcode ();
16
+ final offset = switch (db.sqlite3_error_offset ()) {
17
+ < 0 => null ,
18
+ final offset => offset,
19
+ };
20
+
16
21
return createExceptionFromExtendedCode (
17
22
bindings,
18
23
db,
@@ -21,6 +26,7 @@ SqliteException createExceptionRaw(
21
26
operation: operation,
22
27
previousStatement: previousStatement,
23
28
statementArgs: statementArgs,
29
+ offset: offset,
24
30
);
25
31
}
26
32
@@ -32,6 +38,7 @@ SqliteException createExceptionFromExtendedCode(
32
38
String ? operation,
33
39
String ? previousStatement,
34
40
List <Object ?>? statementArgs,
41
+ int ? offset,
35
42
}) {
36
43
// We don't need to free the pointer returned by sqlite3_errmsg: "Memory to
37
44
// hold the error message string is managed internally. The application does
@@ -48,6 +55,7 @@ SqliteException createExceptionFromExtendedCode(
48
55
previousStatement,
49
56
statementArgs,
50
57
operation,
58
+ offset,
51
59
);
52
60
}
53
61
@@ -68,10 +76,14 @@ SqliteException createException(
68
76
);
69
77
}
70
78
71
- Never throwException (DatabaseImplementation db, int returnCode,
72
- {String ? operation,
73
- String ? previousStatement,
74
- List <Object ?>? statementArgs}) {
79
+ Never throwException (
80
+ DatabaseImplementation db,
81
+ int returnCode, {
82
+ String ? operation,
83
+ String ? previousStatement,
84
+ List <Object ?>? statementArgs,
85
+ int ? offset,
86
+ }) {
75
87
throw createException (
76
88
db,
77
89
returnCode,
0 commit comments