liquid_feedback_core

changeset 401:ee922d286992

lf_update_issue_order deletes stale entries in "issue_order" that may arise due to missing referential integrity
author jbe
date Sat Oct 12 15:48:57 2013 +0200 (2013-10-12)
parents 782eb17c7ad9
children 29835e2525bd
files lf_update_issue_order.c
line diff
     1.1 --- a/lf_update_issue_order.c	Sat Oct 12 15:33:35 2013 +0200
     1.2 +++ b/lf_update_issue_order.c	Sat Oct 12 15:48:57 2013 +0200
     1.3 @@ -605,6 +605,23 @@
     1.4      PQclear(res);
     1.5    }
     1.6  
     1.7 +  // clean-up entries of deleted issues
     1.8 +  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");
     1.9 +  if (!res) {
    1.10 +    fprintf(stderr, "Error in pqlib while sending SQL command deleting ordering data of deleted issues.\n");
    1.11 +    err = 1;
    1.12 +  } else if (
    1.13 +    PQresultStatus(res) != PGRES_COMMAND_OK &&
    1.14 +    PQresultStatus(res) != PGRES_TUPLES_OK
    1.15 +  ) {
    1.16 +    fprintf(stderr, "Error while executing SQL command deleting ordering data of deleted issues:\n%s", PQresultErrorMessage(res));
    1.17 +    err = 1;
    1.18 +    PQclear(res);
    1.19 +  } else {
    1.20 +    if (logging) printf("Cleaned up ordering data of %s deleted issues.\n", PQcmdTuples(res));
    1.21 +    PQclear(res);
    1.22 +  }
    1.23 +
    1.24    // cleanup and exit:
    1.25    PQfinish(db);
    1.26    if (!err) {

Impressum / About Us