liquid_feedback_core
diff lf_update.c @ 65:bdccc56fb705
lf_update continues on error (but still reports errors)
and version number changed to v1.2.4 (without any other schema changes)
and version number changed to v1.2.4 (without any other schema changes)
| author | jbe |
|---|---|
| date | Sun Aug 15 17:10:47 2010 +0200 (2010-08-15) |
| parents | 6133c0a62378 |
| children | bc8aa59b0945 |
line diff
1.1 --- a/lf_update.c Sat Jul 24 16:52:51 2010 +0200 1.2 +++ b/lf_update.c Sun Aug 15 17:10:47 2010 +0200 1.3 @@ -6,6 +6,7 @@ 1.4 int main(int argc, char **argv) { 1.5 1.6 // variable declarations: 1.7 + int err = 0; 1.8 int i, count; 1.9 char *conninfo; 1.10 PGconn *db; 1.11 @@ -57,97 +58,105 @@ 1.12 status = PQexec(db, "DELETE FROM \"expired_session\""); 1.13 if (!status) { 1.14 fprintf(stderr, "Error in pqlib while sending SQL command deleting expired sessions\n"); 1.15 - return 1; 1.16 - } 1.17 - if ( 1.18 + err = 1; 1.19 + } else if ( 1.20 PQresultStatus(status) != PGRES_COMMAND_OK && 1.21 PQresultStatus(status) != PGRES_TUPLES_OK 1.22 ) { 1.23 fprintf(stderr, "Error while executing SQL command deleting expired sessions:\n%s", PQresultErrorMessage(status)); 1.24 - return 1; 1.25 + err = 1; 1.26 + PQclear(status); 1.27 + } else { 1.28 + PQclear(status); 1.29 } 1.30 1.31 // calculate member counts: 1.32 status = PQexec(db, "SELECT \"calculate_member_counts\"()"); 1.33 if (!status) { 1.34 fprintf(stderr, "Error in pqlib while sending SQL command calculating member counts\n"); 1.35 - return 1; 1.36 - } 1.37 - if ( 1.38 + err = 1; 1.39 + } else if ( 1.40 PQresultStatus(status) != PGRES_COMMAND_OK && 1.41 PQresultStatus(status) != PGRES_TUPLES_OK 1.42 ) { 1.43 fprintf(stderr, "Error while executing SQL command calculating member counts:\n%s", PQresultErrorMessage(status)); 1.44 - return 1; 1.45 + err = 1; 1.46 + PQclear(status); 1.47 + } else { 1.48 + PQclear(status); 1.49 } 1.50 1.51 // update open issues: 1.52 list = PQexec(db, "SELECT \"id\" FROM \"open_issue\""); 1.53 if (!list) { 1.54 fprintf(stderr, "Error in pqlib while sending SQL command selecting open issues\n"); 1.55 - return 1; 1.56 - } 1.57 - if (PQresultStatus(list) != PGRES_TUPLES_OK) { 1.58 + err = 1; 1.59 + } else if (PQresultStatus(list) != PGRES_TUPLES_OK) { 1.60 fprintf(stderr, "Error while executing SQL command selecting open issues:\n%s", PQresultErrorMessage(list)); 1.61 - return 1; 1.62 + err = 1; 1.63 + PQclear(list); 1.64 + } else { 1.65 + count = PQntuples(list); 1.66 + for (i=0; i<count; i++) { 1.67 + const char *params[1]; 1.68 + params[0] = PQgetvalue(list, i, 0); 1.69 + status = PQexecParams( 1.70 + db, "SELECT \"check_issue\"($1)", 1, NULL, params, NULL, NULL, 0 1.71 + ); 1.72 + if (!status) { 1.73 + fprintf(stderr, "Error in pqlib while sending SQL command to call function \"check_issue\"(...):\n"); 1.74 + err = 1; 1.75 + } else if ( 1.76 + PQresultStatus(status) != PGRES_COMMAND_OK && 1.77 + PQresultStatus(status) != PGRES_TUPLES_OK 1.78 + ) { 1.79 + fprintf(stderr, "Error while calling SQL function \"check_issue\"(...):\n%s", PQresultErrorMessage(status)); 1.80 + err = 1; 1.81 + PQclear(status); 1.82 + } else { 1.83 + PQclear(status); 1.84 + } 1.85 + } 1.86 + PQclear(list); 1.87 } 1.88 - count = PQntuples(list); 1.89 - for (i=0; i<count; i++) { 1.90 - const char *params[1]; 1.91 - params[0] = PQgetvalue(list, i, 0); 1.92 - status = PQexecParams( 1.93 - db, "SELECT \"check_issue\"($1)", 1, NULL, params, NULL, NULL, 0 1.94 - ); 1.95 - if (!status) { 1.96 - fprintf(stderr, "Error in pqlib while sending SQL command to call function \"check_issue\"(...):\n"); 1.97 - return 1; 1.98 - } 1.99 - if ( 1.100 - PQresultStatus(status) != PGRES_COMMAND_OK && 1.101 - PQresultStatus(status) != PGRES_TUPLES_OK 1.102 - ) { 1.103 - fprintf(stderr, "Error while calling SQL function \"check_issue\"(...):\n%s", PQresultErrorMessage(status)); 1.104 - return 1; 1.105 - } 1.106 - PQclear(status); 1.107 - } 1.108 - PQclear(list); 1.109 1.110 // calculate ranks after voting is finished: 1.111 // (NOTE: This is a seperate process to avoid long transactions with locking) 1.112 list = PQexec(db, "SELECT \"id\" FROM \"issue_with_ranks_missing\""); 1.113 if (!list) { 1.114 fprintf(stderr, "Error in pqlib while sending SQL command selecting issues where ranks are missing\n"); 1.115 - return 1; 1.116 - } 1.117 - if (PQresultStatus(list) != PGRES_TUPLES_OK) { 1.118 + err = 1; 1.119 + } else if (PQresultStatus(list) != PGRES_TUPLES_OK) { 1.120 fprintf(stderr, "Error while executing SQL command selecting issues where ranks are missing:\n%s", PQresultErrorMessage(list)); 1.121 - return 1; 1.122 + err = 1; 1.123 + PQclear(list); 1.124 + } else { 1.125 + count = PQntuples(list); 1.126 + for (i=0; i<count; i++) { 1.127 + const char *params[1]; 1.128 + params[0] = PQgetvalue(list, i, 0); 1.129 + status = PQexecParams( 1.130 + db, "SELECT \"calculate_ranks\"($1)", 1, NULL, params, NULL, NULL, 0 1.131 + ); 1.132 + if (!status) { 1.133 + fprintf(stderr, "Error in pqlib while sending SQL command to call function \"calculate_ranks\"(...):\n"); 1.134 + err = 1; 1.135 + } else if ( 1.136 + PQresultStatus(status) != PGRES_COMMAND_OK && 1.137 + PQresultStatus(status) != PGRES_TUPLES_OK 1.138 + ) { 1.139 + fprintf(stderr, "Error while calling SQL function \"calculate_ranks\"(...):\n%s", PQresultErrorMessage(status)); 1.140 + err = 1; 1.141 + PQclear(status); 1.142 + } else { 1.143 + PQclear(status); 1.144 + } 1.145 + } 1.146 + PQclear(list); 1.147 } 1.148 - count = PQntuples(list); 1.149 - for (i=0; i<count; i++) { 1.150 - const char *params[1]; 1.151 - params[0] = PQgetvalue(list, i, 0); 1.152 - status = PQexecParams( 1.153 - db, "SELECT \"calculate_ranks\"($1)", 1, NULL, params, NULL, NULL, 0 1.154 - ); 1.155 - if (!status) { 1.156 - fprintf(stderr, "Error in pqlib while sending SQL command to call function \"calculate_ranks\"(...):\n"); 1.157 - return 1; 1.158 - } 1.159 - if ( 1.160 - PQresultStatus(status) != PGRES_COMMAND_OK && 1.161 - PQresultStatus(status) != PGRES_TUPLES_OK 1.162 - ) { 1.163 - fprintf(stderr, "Error while calling SQL function \"calculate_ranks\"(...):\n%s", PQresultErrorMessage(status)); 1.164 - return 1; 1.165 - } 1.166 - PQclear(status); 1.167 - } 1.168 - PQclear(list); 1.169 1.170 // cleanup and exit 1.171 PQfinish(db); 1.172 - return 0; 1.173 + return err; 1.174 1.175 }