summaryrefslogtreecommitdiff
path: root/internal/db/sqlite/errors.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/sqlite/errors.go')
-rw-r--r--internal/db/sqlite/errors.go30
1 files changed, 14 insertions, 16 deletions
diff --git a/internal/db/sqlite/errors.go b/internal/db/sqlite/errors.go
index b07b026de..f814fa8a4 100644
--- a/internal/db/sqlite/errors.go
+++ b/internal/db/sqlite/errors.go
@@ -15,7 +15,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
-//go:build !wasmsqlite3
+//go:build !moderncsqlite3
package sqlite
@@ -23,9 +23,7 @@ import (
"database/sql/driver"
"fmt"
- "modernc.org/sqlite"
- sqlite3 "modernc.org/sqlite/lib"
-
+ "github.com/ncruces/go-sqlite3"
"github.com/superseriousbusiness/gotosocial/internal/db"
)
@@ -33,30 +31,30 @@ import (
// handle conversion to any of our common db types.
func processSQLiteError(err error) error {
// Attempt to cast as sqlite error.
- sqliteErr, ok := err.(*sqlite.Error)
+ sqliteErr, ok := err.(*sqlite3.Error)
if !ok {
return err
}
// Handle supplied error code:
- switch sqliteErr.Code() {
- case sqlite3.SQLITE_CONSTRAINT_UNIQUE,
- sqlite3.SQLITE_CONSTRAINT_PRIMARYKEY:
+ switch sqliteErr.ExtendedCode() {
+ case sqlite3.CONSTRAINT_UNIQUE,
+ sqlite3.CONSTRAINT_PRIMARYKEY:
return db.ErrAlreadyExists
- // Busy should be very rare, but
- // on busy tell the database to close
- // the connection, re-open and re-attempt
- // which should give a necessary timeout.
- case sqlite3.SQLITE_BUSY,
- sqlite3.SQLITE_BUSY_RECOVERY,
- sqlite3.SQLITE_BUSY_SNAPSHOT:
+ // Busy should be very rare, but on
+ // busy tell the database to close the
+ // connection, re-open and re-attempt
+ // which should give necessary timeout.
+ case sqlite3.BUSY_RECOVERY,
+ sqlite3.BUSY_SNAPSHOT:
return driver.ErrBadConn
}
// Wrap the returned error with the code and
// extended code for easier debugging later.
- return fmt.Errorf("%w (code=%d)", err,
+ return fmt.Errorf("%w (code=%d extended=%d)", err,
sqliteErr.Code(),
+ sqliteErr.ExtendedCode(),
)
}