diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2010-01-20 19:43:40 +0000 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2010-01-20 19:43:40 +0000 |
commit | 09b115f70684ea20dc344faab1a96f2831d3ee75 (patch) | |
tree | 97ee9e81891d786e815ebc0e7e69a293f212fd5d /src/backend/access/heap/heapam.c | |
parent | 47ce95a7b98ff06b51f12a7381fc3788dff9961c (diff) | |
download | postgresql-09b115f70684ea20dc344faab1a96f2831d3ee75.tar.gz postgresql-09b115f70684ea20dc344faab1a96f2831d3ee75.zip |
Write a WAL record whenever we perform an operation without WAL-logging
that would've been WAL-logged if archiving was enabled. If we encounter
such records in archive recovery anyway, we know that some data is
missing from the log. A WARNING is emitted in that case.
Original patch by Fujii Masao, with changes by me.
Diffstat (limited to 'src/backend/access/heap/heapam.c')
-rw-r--r-- | src/backend/access/heap/heapam.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 5cd4f005c65..ce661a8d1b3 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.282 2010/01/14 11:08:00 sriggs Exp $ + * $PostgreSQL: pgsql/src/backend/access/heap/heapam.c,v 1.283 2010/01/20 19:43:40 heikki Exp $ * * * INTERFACE ROUTINES @@ -5074,10 +5074,16 @@ heap2_desc(StringInfo buf, uint8 xl_info, char *rec) void heap_sync(Relation rel) { + char reason[NAMEDATALEN + 30]; + /* temp tables never need fsync */ if (rel->rd_istemp) return; + snprintf(reason, sizeof(reason), "heap inserts on \"%s\"", + RelationGetRelationName(rel)); + XLogReportUnloggedStatement(reason); + /* main heap */ FlushRelationBuffers(rel); /* FlushRelationBuffers will have opened rd_smgr */ |