diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-11-28 18:41:04 +0100 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2020-12-01 13:07:12 +0100 |
commit | 2ad29dc2c516205a1f53d29c8e132ab61a4f0194 (patch) | |
tree | 4305f241fc71f5f14c215f4f314a64ca1792a4c1 | |
parent | 1f8db451f906894d72b8a012d1c3ef84de2bd049 (diff) | |
download | tracker-2ad29dc2c516205a1f53d29c8e132ab61a4f0194.tar.gz |
libtracker-data: Add internal error code for failed constraints
And add the missing plumbing for TRACKER_SPARQL_ERROR_CONSTRAINT to
be a thing.
-rw-r--r-- | src/libtracker-data/tracker-db-interface-sqlite.c | 5 | ||||
-rw-r--r-- | src/libtracker-data/tracker-db-interface.h | 3 | ||||
-rw-r--r-- | src/libtracker-sparql/tracker-error.c | 1 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c b/src/libtracker-data/tracker-db-interface-sqlite.c index 18a174e26..0fd28c066 100644 --- a/src/libtracker-data/tracker-db-interface-sqlite.c +++ b/src/libtracker-data/tracker-db-interface-sqlite.c @@ -2916,6 +2916,11 @@ execute_stmt (TrackerDBInterface *interface, TRACKER_DB_INTERFACE_ERROR, TRACKER_DB_INTERRUPTED, "Interrupted"); + } else if (result == SQLITE_CONSTRAINT) { + g_set_error (error, + TRACKER_DB_INTERFACE_ERROR, + TRACKER_DB_CONSTRAINT, + "Constraint would be broken"); } else { g_set_error (error, TRACKER_DB_INTERFACE_ERROR, diff --git a/src/libtracker-data/tracker-db-interface.h b/src/libtracker-data/tracker-db-interface.h index 28fe5c7e9..f415cdeca 100644 --- a/src/libtracker-data/tracker-db-interface.h +++ b/src/libtracker-data/tracker-db-interface.h @@ -64,7 +64,8 @@ typedef enum { TRACKER_DB_QUERY_ERROR, TRACKER_DB_INTERRUPTED, TRACKER_DB_OPEN_ERROR, - TRACKER_DB_NO_SPACE + TRACKER_DB_NO_SPACE, + TRACKER_DB_CONSTRAINT, } TrackerDBInterfaceError; typedef enum { diff --git a/src/libtracker-sparql/tracker-error.c b/src/libtracker-sparql/tracker-error.c index 89e42c023..849aa87db 100644 --- a/src/libtracker-sparql/tracker-error.c +++ b/src/libtracker-sparql/tracker-error.c @@ -87,6 +87,7 @@ _translate_internal_error (GError *error) /* This should never happen as we don't call sqlite3_interrupt() * anywhere, so it doesn't get its own public error code. */ case TRACKER_DB_INTERRUPTED: new_code = TRACKER_SPARQL_ERROR_INTERNAL; break; + case TRACKER_DB_CONSTRAINT: new_code = TRACKER_SPARQL_ERROR_CONSTRAINT; break; default: g_warn_if_reached (); } |