patch.diff
text/x-diff
Filename: patch.diff
Type: text/x-diff
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/replication/logical/reorderbuffer.c | 2 | 0 |
| src/backend/storage/smgr/md.c | 2 | 2 |
| src/backend/utils/cache/relcache.c | 2 | 1 |
diff --git a/src/backend/replication/logical/reorderbuffer.c b/src/backend/replication/logical/reorderbuffer.c
index 1d43a165ad0..3b6d6047608 100644
--- a/src/backend/replication/logical/reorderbuffer.c
+++ b/src/backend/replication/logical/reorderbuffer.c
@@ -3278,6 +3278,8 @@ ApplyLogicalMappingFile(HTAB *tuplecid_data, Oid relid, const char *fname)
new_ent->combocid = ent->combocid;
}
}
+
+ CloseTransientFile(fd);
}
diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index f4374d077be..ae33302ecf1 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -767,7 +767,7 @@ mdread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
if (nbytes != BLCKSZ)
{
if (nbytes < 0)
- ereport(ERROR,
+ ereport(PANIC,
(errcode_for_file_access(),
errmsg("could not read block %u in file \"%s\": %m",
blocknum, FilePathName(v->mdfd_vfd))));
@@ -783,7 +783,7 @@ mdread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
if (zero_damaged_pages || InRecovery)
MemSet(buffer, 0, BLCKSZ);
else
- ereport(ERROR,
+ ereport(PANIC,
(errcode(ERRCODE_DATA_CORRUPTED),
errmsg("could not read block %u in file \"%s\": read only %d of %d bytes",
blocknum, FilePathName(v->mdfd_vfd),
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 6125421d39a..8737f77a24c 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -2206,7 +2206,8 @@ RelationReloadNailed(Relation relation)
relation->rd_isvalid = true;
pg_class_tuple = ScanPgRelation(RelationGetRelid(relation),
- true, false);
+ RelationGetRelid(relation) != ClassOidIndexId,
+ false);
relp = (Form_pg_class) GETSTRUCT(pg_class_tuple);
memcpy(relation->rd_rel, relp, CLASS_TUPLE_SIZE);
heap_freetuple(pg_class_tuple);