Skip to content

Commit

Permalink
Merge pull request #1842 from pi-hole/tweak/rollback_error
Browse files Browse the repository at this point in the history
Do not overwrite errors on ROLLBACK
  • Loading branch information
DL6ER authored Dec 26, 2023
2 parents 88a0ee4 + d92e1a0 commit a8d2991
Showing 1 changed file with 21 additions and 63 deletions.
84 changes: 21 additions & 63 deletions src/database/gravity-db.c
Original file line number Diff line number Diff line change
Expand Up @@ -1840,15 +1840,11 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d) - SQL error prepare(\"%s\"): %s",
listtype, querystr, *message);

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
listtype, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);

return false;
}

Expand All @@ -1860,15 +1856,11 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*
listtype, querystr, *message);
sqlite3_reset(stmt);
sqlite3_finalize(stmt);

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
listtype, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);

return false;
}

Expand All @@ -1888,15 +1880,11 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d) - SQL error prepare(\"%s\"): %s",
listtype, querystr, *message);

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
listtype, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);

return false;
}

Expand All @@ -1914,15 +1902,11 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*
type->valueint, rc, *message);
sqlite3_reset(stmt);
sqlite3_finalize(stmt);

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
type->valueint, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);

return false;
}

Expand All @@ -1936,15 +1920,11 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*
listtype, rc, *message);
sqlite3_reset(stmt);
sqlite3_finalize(stmt);

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
listtype, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);

return false;
}

Expand All @@ -1956,15 +1936,11 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*
listtype, querystr, *message);
sqlite3_reset(stmt);
sqlite3_finalize(stmt);

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
listtype, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);

return false;
}

Expand Down Expand Up @@ -2024,13 +2000,7 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec: %s",
listtype, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);

break;
}
Expand All @@ -2048,13 +2018,7 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
listtype, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
}

// Commit transaction
Expand All @@ -2069,13 +2033,7 @@ bool gravityDB_delFromTable(const enum gravity_list_type listtype, const cJSON*

// Rollback transaction
querystr = "ROLLBACK TRANSACTION;";
rc = sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
if(rc != SQLITE_OK)
{
*message = sqlite3_errmsg(gravity_db);
log_err("gravityDB_delFromTable(%d): SQL error exec(\"%s\"): %s",
listtype, querystr, *message);
}
sqlite3_exec(gravity_db, querystr, NULL, NULL, NULL);
}

return okay;
Expand Down

0 comments on commit a8d2991

Please sign in to comment.