Hi, -------------- if (recoveryTarget == RECOVERY_TARGET_XID) snprintf(buffer, sizeof(buffer), "%s%u\t%s\t%s transaction %u\n", (srcfd < 0) ? "" : "\n", parentTLI, xlogfname, recoveryStopAfter ? "after" : "before", recoveryStopXid); if (recoveryTarget == RECOVERY_TARGET_TIME) snprintf(buffer, sizeof(buffer), "%s%u\t%s\t%s %s\n", (srcfd < 0) ? "" : "\n", parentTLI, xlogfname, recoveryStopAfter ? "after" : "before", timestamptz_to_str(recoveryStopTime)); else snprintf(buffer, sizeof(buffer), "%s%u\t%s\tno recovery target specified\n", (srcfd < 0) ? "" : "\n", parentTLI, xlogfname); --------------
In writeTimeLineHistory, the result of the above first snprintf is always overwritten by the following snprintf wrongly. I guess we forgot putting "else" in the second "if" statement. I attached the very simple patch. Since this bug was introduced in v9.0, the patch needs to be backported to 9.0. Regards, -- Fujii Masao NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
add_else_v1.patch
Description: Binary data
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers