Browse Source

ckdb - workmarkers processing: no sharesummaries is not an error

master
kanoi 10 years ago
parent
commit
91aa3d0e36
  1. 2
      src/ckdb.h
  2. 70
      src/ckdb_dbio.c

2
src/ckdb.h

@ -52,7 +52,7 @@
#define DB_VLOCK "1" #define DB_VLOCK "1"
#define DB_VERSION "0.9.6" #define DB_VERSION "0.9.6"
#define CKDB_VERSION DB_VERSION"-0.831" #define CKDB_VERSION DB_VERSION"-0.832"
#define WHERE_FFL " - from %s %s() line %d" #define WHERE_FFL " - from %s %s() line %d"
#define WHERE_FFL_HERE __FILE__, __func__, __LINE__ #define WHERE_FFL_HERE __FILE__, __func__, __LINE__

70
src/ckdb_dbio.c

@ -2904,32 +2904,30 @@ bool sharesummaries_to_markersummaries(PGconn *conn, WORKMARKERS *workmarkers,
ss_item = ss_prev; ss_item = ss_prev;
} }
if (old_sharesummary_store->count == 0) if (conn == NULL) {
reason = "no sharesummaries"; conn = dbconnect();
else { conned = true;
if (conn == NULL) { }
conn = dbconnect();
conned = true;
}
res = PQexec(conn, "Begin", CKPQ_WRITE); res = PQexec(conn, "Begin", CKPQ_WRITE);
rescode = PQresultStatus(res); rescode = PQresultStatus(res);
PQclear(res); PQclear(res);
if (!PGOK(rescode)) { if (!PGOK(rescode)) {
PGLOGERR("Begin", rescode, conn); PGLOGERR("Begin", rescode, conn);
goto flail; goto flail;
} }
ms_item = new_markersummary_store->head; ms_item = new_markersummary_store->head;
while (ms_item) { while (ms_item) {
if (!(markersummary_add(conn, ms_item, by, code, inet, if (!(markersummary_add(conn, ms_item, by, code, inet,
cd, trf_root))) { cd, trf_root))) {
reason = "db error"; reason = "db error";
goto rollback; goto rollback;
}
ms_item = ms_item->next;
} }
ms_item = ms_item->next;
}
if (old_sharesummary_store->count > 0) {
par = 0; par = 0;
params[par++] = bigint_to_buf(workmarkers->workinfoidstart, NULL, 0); params[par++] = bigint_to_buf(workmarkers->workinfoidstart, NULL, 0);
params[par++] = bigint_to_buf(workmarkers->workinfoidend, NULL, 0); params[par++] = bigint_to_buf(workmarkers->workinfoidend, NULL, 0);
@ -2958,23 +2956,23 @@ bool sharesummaries_to_markersummaries(PGconn *conn, WORKMARKERS *workmarkers,
reason = "delete mismatch"; reason = "delete mismatch";
goto rollback; goto rollback;
} }
}
ok = workmarkers_process(conn, true, true, ok = workmarkers_process(conn, true, true,
workmarkers->markerid, workmarkers->markerid,
workmarkers->poolinstance, workmarkers->poolinstance,
workmarkers->workinfoidend, workmarkers->workinfoidend,
workmarkers->workinfoidstart, workmarkers->workinfoidstart,
workmarkers->description, workmarkers->description,
MARKER_PROCESSED_STR, MARKER_PROCESSED_STR,
by, code, inet, cd, trf_root); by, code, inet, cd, trf_root);
rollback: rollback:
if (ok) if (ok)
res = PQexec(conn, "Commit", CKPQ_WRITE); res = PQexec(conn, "Commit", CKPQ_WRITE);
else else
res = PQexec(conn, "Rollback", CKPQ_WRITE); res = PQexec(conn, "Rollback", CKPQ_WRITE);
PQclear(res); PQclear(res);
}
flail: flail:
for (n = 0; n < par; n++) for (n = 0; n < par; n++)
free(params[n]); free(params[n]);

Loading…
Cancel
Save