# HG changeset patch # User jbe # Date 1381585737 -7200 # Node ID ee922d2869927820154a60461cc0c356143a9f97 # Parent 782eb17c7ad93dc3299b2ea0a933702af6f44ebb lf_update_issue_order deletes stale entries in "issue_order" that may arise due to missing referential integrity diff -r 782eb17c7ad9 -r ee922d286992 lf_update_issue_order.c --- a/lf_update_issue_order.c Sat Oct 12 15:33:35 2013 +0200 +++ b/lf_update_issue_order.c Sat Oct 12 15:48:57 2013 +0200 @@ -605,6 +605,23 @@ PQclear(res); } + // clean-up entries of deleted issues + res = PQexec(db, "DELETE FROM \"issue_order\" USING \"issue_order\" AS \"issue_order2\" NATURAL LEFT JOIN \"issue\" WHERE \"issue_order\".\"id\" = \"issue_order2\".\"id\" AND \"issue\".\"id\" ISNULL"); + if (!res) { + fprintf(stderr, "Error in pqlib while sending SQL command deleting ordering data of deleted issues.\n"); + err = 1; + } else if ( + PQresultStatus(res) != PGRES_COMMAND_OK && + PQresultStatus(res) != PGRES_TUPLES_OK + ) { + fprintf(stderr, "Error while executing SQL command deleting ordering data of deleted issues:\n%s", PQresultErrorMessage(res)); + err = 1; + PQclear(res); + } else { + if (logging) printf("Cleaned up ordering data of %s deleted issues.\n", PQcmdTuples(res)); + PQclear(res); + } + // cleanup and exit: PQfinish(db); if (!err) {