diff --git a/src/backend/backup/basebackup_incremental.c b/src/backend/backup/basebackup_incremental.c index 275615877e..e2a73d8840 100644 --- a/src/backend/backup/basebackup_incremental.c +++ b/src/backend/backup/basebackup_incremental.c @@ -740,7 +740,7 @@ GetFileBackupMethod(IncrementalBackupInfo *ib, const char *path, */ rlocator.spcOid = spcoid; rlocator.dbOid = dboid; - rlocator.relNumber = 0; + rlocator.relNumber = InvalidRelFileNumber; if (BlockRefTableGetEntry(ib->brtab, &rlocator, MAIN_FORKNUM, &limit_block) != NULL) { diff --git a/src/backend/bootstrap/bootparse.y b/src/backend/bootstrap/bootparse.y index 73a7592fb7..2f7f06a126 100644 --- a/src/backend/bootstrap/bootparse.y +++ b/src/backend/bootstrap/bootparse.y @@ -206,7 +206,7 @@ Boot_CreateStmt: PG_CATALOG_NAMESPACE, shared_relation ? GLOBALTABLESPACE_OID : 0, $3, - InvalidOid, + InvalidRelFileNumber, HEAP_TABLE_AM_OID, tupdesc, RELKIND_RELATION, diff --git a/src/backend/catalog/Catalog.pm b/src/backend/catalog/Catalog.pm index 8e709524cb..74d74ec1f8 100644 --- a/src/backend/catalog/Catalog.pm +++ b/src/backend/catalog/Catalog.pm @@ -32,6 +32,7 @@ sub ParseHeader 'int32' => 'int4', 'int64' => 'int8', 'Oid' => 'oid', + 'RelFileNumber' => 'oid', 'NameData' => 'name', 'TransactionId' => 'xid', 'XLogRecPtr' => 'pg_lsn'); diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c index c54a543c53..340faeeab7 100644 --- a/src/backend/catalog/heap.c +++ b/src/backend/catalog/heap.c @@ -346,7 +346,7 @@ heap_create(const char *relname, * with oid same as relid. */ if (!RelFileNumberIsValid(relfilenumber)) - relfilenumber = relid; + relfilenumber = (RelFileNumber) relid; } /* diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c index f9bb721c5f..53e489be44 100644 --- a/src/backend/catalog/index.c +++ b/src/backend/catalog/index.c @@ -3740,7 +3740,8 @@ reindex_index(const ReindexStmt *stmt, Oid indexId, if (set_tablespace) { /* Update its pg_class row */ - SetRelationTableSpace(iRel, params->tablespaceOid, InvalidOid); + SetRelationTableSpace(iRel, params->tablespaceOid, + InvalidRelFileNumber); /* * Schedule unlinking of the old index storage at transaction commit. diff --git a/src/backend/catalog/storage.c b/src/backend/catalog/storage.c index f56b3cc0f2..316d393b84 100644 --- a/src/backend/catalog/storage.c +++ b/src/backend/catalog/storage.c @@ -612,7 +612,8 @@ RestorePendingSyncs(char *startAddress) RelFileLocator *rlocator; Assert(pendingSyncHash == NULL); - for (rlocator = (RelFileLocator *) startAddress; rlocator->relNumber != 0; + for (rlocator = (RelFileLocator *) startAddress; + rlocator->relNumber != InvalidRelFileNumber; rlocator++) AddPendingSync(rlocator); } diff --git a/src/backend/catalog/toasting.c b/src/backend/catalog/toasting.c index ad3082c62a..b6b16bc9fe 100644 --- a/src/backend/catalog/toasting.c +++ b/src/backend/catalog/toasting.c @@ -319,7 +319,7 @@ create_toast_table(Relation rel, Oid toastOid, Oid toastIndexOid, coloptions[1] = 0; index_create(toast_rel, toast_idxname, toastIndexOid, InvalidOid, - InvalidOid, InvalidOid, + InvalidOid, InvalidRelFileNumber, indexInfo, list_make2("chunk_id", "chunk_seq"), BTREE_AM_OID, diff --git a/src/backend/commands/cluster.c b/src/backend/commands/cluster.c index ae0863d9a2..0ae521163b 100644 --- a/src/backend/commands/cluster.c +++ b/src/backend/commands/cluster.c @@ -1072,6 +1072,7 @@ swap_relation_files(Oid r1, Oid r2, bool target_is_pg_class, RelFileNumber relfilenumber1, relfilenumber2; RelFileNumber swaptemp; + Oid swaptempoid; char swptmpchr; Oid relam1, relam2; @@ -1107,13 +1108,13 @@ swap_relation_files(Oid r1, Oid r2, bool target_is_pg_class, relform1->relfilenode = relform2->relfilenode; relform2->relfilenode = swaptemp; - swaptemp = relform1->reltablespace; + swaptempoid = relform1->reltablespace; relform1->reltablespace = relform2->reltablespace; - relform2->reltablespace = swaptemp; + relform2->reltablespace = swaptempoid; - swaptemp = relform1->relam; + swaptempoid = relform1->relam; relform1->relam = relform2->relam; - relform2->relam = swaptemp; + relform2->relam = swaptempoid; swptmpchr = relform1->relpersistence; relform1->relpersistence = relform2->relpersistence; @@ -1122,9 +1123,9 @@ swap_relation_files(Oid r1, Oid r2, bool target_is_pg_class, /* Also swap toast links, if we're swapping by links */ if (!swap_toast_by_content) { - swaptemp = relform1->reltoastrelid; + swaptempoid = relform1->reltoastrelid; relform1->reltoastrelid = relform2->reltoastrelid; - relform2->reltoastrelid = swaptemp; + relform2->reltoastrelid = swaptempoid; } } else diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index eaa8142427..8505cc8c1b 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -15441,7 +15441,7 @@ ATExecSetTableSpaceNoStorage(Relation rel, Oid newTableSpace) } /* Update can be done, so change reltablespace */ - SetRelationTableSpace(rel, newTableSpace, InvalidOid); + SetRelationTableSpace(rel, newTableSpace, InvalidRelFileNumber); InvokeObjectPostAlterHook(RelationRelationId, RelationGetRelid(rel), 0); diff --git a/src/backend/postmaster/walsummarizer.c b/src/backend/postmaster/walsummarizer.c index 48350bec52..4ca9b52b04 100644 --- a/src/backend/postmaster/walsummarizer.c +++ b/src/backend/postmaster/walsummarizer.c @@ -1277,7 +1277,7 @@ SummarizeDbaseRecord(XLogReaderState *xlogreader, BlockRefTable *brtab) (xl_dbase_create_file_copy_rec *) XLogRecGetData(xlogreader); rlocator.spcOid = xlrec->tablespace_id; rlocator.dbOid = xlrec->db_id; - rlocator.relNumber = 0; + rlocator.relNumber = InvalidRelFileNumber; BlockRefTableSetLimitBlock(brtab, &rlocator, MAIN_FORKNUM, 0); } else if (info == XLOG_DBASE_CREATE_WAL_LOG) @@ -1288,7 +1288,7 @@ SummarizeDbaseRecord(XLogReaderState *xlogreader, BlockRefTable *brtab) xlrec = (xl_dbase_create_wal_log_rec *) XLogRecGetData(xlogreader); rlocator.spcOid = xlrec->tablespace_id; rlocator.dbOid = xlrec->db_id; - rlocator.relNumber = 0; + rlocator.relNumber = InvalidRelFileNumber; BlockRefTableSetLimitBlock(brtab, &rlocator, MAIN_FORKNUM, 0); } else if (info == XLOG_DBASE_DROP) @@ -1299,7 +1299,7 @@ SummarizeDbaseRecord(XLogReaderState *xlogreader, BlockRefTable *brtab) xlrec = (xl_dbase_drop_rec *) XLogRecGetData(xlogreader); rlocator.dbOid = xlrec->db_id; - rlocator.relNumber = 0; + rlocator.relNumber = InvalidRelFileNumber; for (i = 0; i < xlrec->ntablespaces; ++i) { rlocator.spcOid = xlrec->tablespace_ids[i]; diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index cc8a80ee96..a6721189ad 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -1453,7 +1453,7 @@ ForgetDatabaseSyncRequests(Oid dbid) rlocator.dbOid = dbid; rlocator.spcOid = 0; - rlocator.relNumber = 0; + rlocator.relNumber = InvalidRelFileNumber; INIT_MD_FILETAG(tag, rlocator, InvalidForkNumber, InvalidBlockNumber); diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c index e63e99c141..ac12459361 100644 --- a/src/backend/utils/adt/dbsize.c +++ b/src/backend/utils/adt/dbsize.c @@ -890,7 +890,7 @@ pg_relation_filenode(PG_FUNCTION_ARGS) if (RELKIND_HAS_STORAGE(relform->relkind)) { - if (relform->relfilenode) + if (RelFileNumberIsValid(relform->relfilenode)) result = relform->relfilenode; else /* Consult the relation mapper */ result = RelationMapOidToFilenumber(relid, @@ -973,7 +973,7 @@ pg_relation_filepath(PG_FUNCTION_ARGS) rlocator.dbOid = InvalidOid; else rlocator.dbOid = MyDatabaseId; - if (relform->relfilenode) + if (RelFileNumberIsValid(relform->relfilenode)) rlocator.relNumber = relform->relfilenode; else /* Consult the relation mapper */ rlocator.relNumber = RelationMapOidToFilenumber(relid, diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 5bbb654a5d..63c8055135 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -3746,23 +3746,23 @@ RelationSetNewRelfilenumber(Relation relation, char persistence) } else if (relation->rd_rel->relkind == RELKIND_INDEX) { - if (!OidIsValid(binary_upgrade_next_index_pg_class_relfilenumber)) + if (!RelFileNumberIsValid(binary_upgrade_next_index_pg_class_relfilenumber)) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("index relfilenumber value not set when in binary upgrade mode"))); newrelfilenumber = binary_upgrade_next_index_pg_class_relfilenumber; - binary_upgrade_next_index_pg_class_relfilenumber = InvalidOid; + binary_upgrade_next_index_pg_class_relfilenumber = InvalidRelFileNumber; } else if (relation->rd_rel->relkind == RELKIND_RELATION) { - if (!OidIsValid(binary_upgrade_next_heap_pg_class_relfilenumber)) + if (!RelFileNumberIsValid(binary_upgrade_next_heap_pg_class_relfilenumber)) ereport(ERROR, (errcode(ERRCODE_INVALID_PARAMETER_VALUE), errmsg("heap relfilenumber value not set when in binary upgrade mode"))); newrelfilenumber = binary_upgrade_next_heap_pg_class_relfilenumber; - binary_upgrade_next_heap_pg_class_relfilenumber = InvalidOid; + binary_upgrade_next_heap_pg_class_relfilenumber = InvalidRelFileNumber; } else ereport(ERROR, diff --git a/src/include/catalog/pg_class.h b/src/include/catalog/pg_class.h index 0fc2c093b0..48ebbc4b0d 100644 --- a/src/include/catalog/pg_class.h +++ b/src/include/catalog/pg_class.h @@ -54,7 +54,7 @@ CATALOG(pg_class,1259,RelationRelationId) BKI_BOOTSTRAP BKI_ROWTYPE_OID(83,Relat /* identifier of physical storage file */ /* relfilenode == 0 means it is a "mapped" relation, see relmapper.c */ - Oid relfilenode BKI_DEFAULT(0); + RelFileNumber relfilenode BKI_DEFAULT(0); /* identifier of table space for relation (0 means default for database) */ Oid reltablespace BKI_DEFAULT(0) BKI_LOOKUP_OPT(pg_tablespace); diff --git a/src/include/common/relpath.h b/src/include/common/relpath.h index 2dabbe01ec..82f33c5b87 100644 --- a/src/include/common/relpath.h +++ b/src/include/common/relpath.h @@ -22,7 +22,6 @@ /* * RelFileNumber data type identifies the specific relation file name. */ -typedef Oid RelFileNumber; #define InvalidRelFileNumber ((RelFileNumber) InvalidOid) #define RelFileNumberIsValid(relnumber) \ ((bool) ((relnumber) != InvalidRelFileNumber)) diff --git a/src/include/postgres_ext.h b/src/include/postgres_ext.h index 240ad4e93b..ef6f26fd47 100644 --- a/src/include/postgres_ext.h +++ b/src/include/postgres_ext.h @@ -30,6 +30,8 @@ */ typedef unsigned int Oid; +typedef Oid RelFileNumber; + #ifdef __cplusplus #define InvalidOid (Oid(0)) #else