summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2022-07-06 11:39:09 -0400
committerRobert Haas <rhaas@postgresql.org>2022-07-06 11:39:09 -0400
commitb0a55e43299c4ea2a9a8c757f9c26352407d0ccc (patch)
tree2c22c2965f9976ae4469595cd28df13db6b943c2 /src/bin
parent7775c748db1257523ecbed1060dadb608bdff6de (diff)
Change internal RelFileNode references to RelFileNumber or RelFileLocator.
We have been using the term RelFileNode to refer to either (1) the integer that is used to name the sequence of files for a certain relation within the directory set aside for that tablespace/database combination; or (2) that value plus the OIDs of the tablespace and database; or occasionally (3) the whole series of files created for a relation based on those values. Using the same name for more than one thing is confusing. Replace RelFileNode with RelFileNumber when we're talking about just the single number, i.e. (1) from above, and with RelFileLocator when we're talking about all the things that are needed to locate a relation's files on disk, i.e. (2) from above. In the places where we refer to (3) as a relfilenode, instead refer to "relation storage". Since there is a ton of SQL code in the world that knows about pg_class.relfilenode, don't change the name of that column, or of other SQL-facing things that derive their name from it. On the other hand, do adjust closely-related internal terminology. For example, the structure member names dbNode and spcNode appear to be derived from the fact that the structure itself was called RelFileNode, so change those to dbOid and spcOid. Likewise, various variables with names like rnode and relnode get renamed appropriately, according to how they're being used in context. Hopefully, this is clearer than before. It is also preparation for future patches that intend to widen the relfilenumber fields from its current width of 32 bits. Variables that store a relfilenumber are now declared as type RelFileNumber rather than type Oid; right now, these are the same, but that can now more easily be changed. Dilip Kumar, per an idea from me. Reviewed also by Andres Freund. I fixed some whitespace issues, changed a couple of words in a comment, and made one other minor correction. Discussion: http://postgr.es/m/CA+TgmoamOtXbVAQf9hWFzonUo6bhhjS6toZQd7HZ-pmojtAmag@mail.gmail.com Discussion: http://postgr.es/m/CA+Tgmobp7+7kmi4gkq7Y+4AM9fTvL+O1oQ4-5gFTT+6Ng-dQ=g@mail.gmail.com Discussion: http://postgr.es/m/CAFiTN-vTe79M8uDH1yprOU64MNFE+R3ODRuA+JWf27JbhY4hJw@mail.gmail.com
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/pg_dump/pg_dump.c34
-rw-r--r--src/bin/pg_rewind/datapagemap.h2
-rw-r--r--src/bin/pg_rewind/filemap.c34
-rw-r--r--src/bin/pg_rewind/filemap.h4
-rw-r--r--src/bin/pg_rewind/parsexlog.c6
-rw-r--r--src/bin/pg_rewind/pg_rewind.h2
-rw-r--r--src/bin/pg_upgrade/Makefile2
-rw-r--r--src/bin/pg_upgrade/info.c10
-rw-r--r--src/bin/pg_upgrade/pg_upgrade.h6
-rw-r--r--src/bin/pg_upgrade/relfilenumber.c (renamed from src/bin/pg_upgrade/relfilenode.c)12
-rw-r--r--src/bin/pg_waldump/pg_waldump.c26
11 files changed, 69 insertions, 69 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index c871cb727d1..f317f0a681f 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -4804,15 +4804,15 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
{
PQExpBuffer upgrade_query = createPQExpBuffer();
PGresult *upgrade_res;
- Oid relfilenode;
+ RelFileNumber relfilenumber;
Oid toast_oid;
- Oid toast_relfilenode;
+ RelFileNumber toast_relfilenumber;
char relkind;
Oid toast_index_oid;
- Oid toast_index_relfilenode;
+ RelFileNumber toast_index_relfilenumber;
/*
- * Preserve the OID and relfilenode of the table, table's index, table's
+ * Preserve the OID and relfilenumber of the table, table's index, table's
* toast table and toast table's index if any.
*
* One complexity is that the current table definition might not require
@@ -4835,16 +4835,16 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
relkind = *PQgetvalue(upgrade_res, 0, PQfnumber(upgrade_res, "relkind"));
- relfilenode = atooid(PQgetvalue(upgrade_res, 0,
- PQfnumber(upgrade_res, "relfilenode")));
+ relfilenumber = atooid(PQgetvalue(upgrade_res, 0,
+ PQfnumber(upgrade_res, "relfilenode")));
toast_oid = atooid(PQgetvalue(upgrade_res, 0,
PQfnumber(upgrade_res, "reltoastrelid")));
- toast_relfilenode = atooid(PQgetvalue(upgrade_res, 0,
- PQfnumber(upgrade_res, "toast_relfilenode")));
+ toast_relfilenumber = atooid(PQgetvalue(upgrade_res, 0,
+ PQfnumber(upgrade_res, "toast_relfilenode")));
toast_index_oid = atooid(PQgetvalue(upgrade_res, 0,
PQfnumber(upgrade_res, "indexrelid")));
- toast_index_relfilenode = atooid(PQgetvalue(upgrade_res, 0,
- PQfnumber(upgrade_res, "toast_index_relfilenode")));
+ toast_index_relfilenumber = atooid(PQgetvalue(upgrade_res, 0,
+ PQfnumber(upgrade_res, "toast_index_relfilenode")));
appendPQExpBufferStr(upgrade_buffer,
"\n-- For binary upgrade, must preserve pg_class oids and relfilenodes\n");
@@ -4857,13 +4857,13 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
/*
* Not every relation has storage. Also, in a pre-v12 database,
- * partitioned tables have a relfilenode, which should not be
+ * partitioned tables have a relfilenumber, which should not be
* preserved when upgrading.
*/
- if (OidIsValid(relfilenode) && relkind != RELKIND_PARTITIONED_TABLE)
+ if (RelFileNumberIsValid(relfilenumber) && relkind != RELKIND_PARTITIONED_TABLE)
appendPQExpBuffer(upgrade_buffer,
"SELECT pg_catalog.binary_upgrade_set_next_heap_relfilenode('%u'::pg_catalog.oid);\n",
- relfilenode);
+ relfilenumber);
/*
* In a pre-v12 database, partitioned tables might be marked as having
@@ -4877,7 +4877,7 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
toast_oid);
appendPQExpBuffer(upgrade_buffer,
"SELECT pg_catalog.binary_upgrade_set_next_toast_relfilenode('%u'::pg_catalog.oid);\n",
- toast_relfilenode);
+ toast_relfilenumber);
/* every toast table has an index */
appendPQExpBuffer(upgrade_buffer,
@@ -4885,20 +4885,20 @@ binary_upgrade_set_pg_class_oids(Archive *fout,
toast_index_oid);
appendPQExpBuffer(upgrade_buffer,
"SELECT pg_catalog.binary_upgrade_set_next_index_relfilenode('%u'::pg_catalog.oid);\n",
- toast_index_relfilenode);
+ toast_index_relfilenumber);
}
PQclear(upgrade_res);
}
else
{
- /* Preserve the OID and relfilenode of the index */
+ /* Preserve the OID and relfilenumber of the index */
appendPQExpBuffer(upgrade_buffer,
"SELECT pg_catalog.binary_upgrade_set_next_index_pg_class_oid('%u'::pg_catalog.oid);\n",
pg_class_oid);
appendPQExpBuffer(upgrade_buffer,
"SELECT pg_catalog.binary_upgrade_set_next_index_relfilenode('%u'::pg_catalog.oid);\n",
- relfilenode);
+ relfilenumber);
}
appendPQExpBufferChar(upgrade_buffer, '\n');
diff --git a/src/bin/pg_rewind/datapagemap.h b/src/bin/pg_rewind/datapagemap.h
index ae4965f23fd..235b676d63e 100644
--- a/src/bin/pg_rewind/datapagemap.h
+++ b/src/bin/pg_rewind/datapagemap.h
@@ -10,7 +10,7 @@
#define DATAPAGEMAP_H
#include "storage/block.h"
-#include "storage/relfilenode.h"
+#include "storage/relfilelocator.h"
struct datapagemap
{
diff --git a/src/bin/pg_rewind/filemap.c b/src/bin/pg_rewind/filemap.c
index 62529310415..269ed6446e6 100644
--- a/src/bin/pg_rewind/filemap.c
+++ b/src/bin/pg_rewind/filemap.c
@@ -56,7 +56,7 @@ static uint32 hash_string_pointer(const char *s);
static filehash_hash *filehash;
static bool isRelDataFile(const char *path);
-static char *datasegpath(RelFileNode rnode, ForkNumber forknum,
+static char *datasegpath(RelFileLocator rlocator, ForkNumber forknum,
BlockNumber segno);
static file_entry_t *insert_filehash_entry(const char *path);
@@ -288,7 +288,7 @@ process_target_file(const char *path, file_type_t type, size_t size,
* hash table!
*/
void
-process_target_wal_block_change(ForkNumber forknum, RelFileNode rnode,
+process_target_wal_block_change(ForkNumber forknum, RelFileLocator rlocator,
BlockNumber blkno)
{
char *path;
@@ -299,7 +299,7 @@ process_target_wal_block_change(ForkNumber forknum, RelFileNode rnode,
segno = blkno / RELSEG_SIZE;
blkno_inseg = blkno % RELSEG_SIZE;
- path = datasegpath(rnode, forknum, segno);
+ path = datasegpath(rlocator, forknum, segno);
entry = lookup_filehash_entry(path);
pfree(path);
@@ -508,7 +508,7 @@ print_filemap(filemap_t *filemap)
static bool
isRelDataFile(const char *path)
{
- RelFileNode rnode;
+ RelFileLocator rlocator;
unsigned int segNo;
int nmatch;
bool matched;
@@ -532,32 +532,32 @@ isRelDataFile(const char *path)
*
*----
*/
- rnode.spcNode = InvalidOid;
- rnode.dbNode = InvalidOid;
- rnode.relNode = InvalidOid;
+ rlocator.spcOid = InvalidOid;
+ rlocator.dbOid = InvalidOid;
+ rlocator.relNumber = InvalidRelFileNumber;
segNo = 0;
matched = false;
- nmatch = sscanf(path, "global/%u.%u", &rnode.relNode, &segNo);
+ nmatch = sscanf(path, "global/%u.%u", &rlocator.relNumber, &segNo);
if (nmatch == 1 || nmatch == 2)
{
- rnode.spcNode = GLOBALTABLESPACE_OID;
- rnode.dbNode = 0;
+ rlocator.spcOid = GLOBALTABLESPACE_OID;
+ rlocator.dbOid = 0;
matched = true;
}
else
{
nmatch = sscanf(path, "base/%u/%u.%u",
- &rnode.dbNode, &rnode.relNode, &segNo);
+ &rlocator.dbOid, &rlocator.relNumber, &segNo);
if (nmatch == 2 || nmatch == 3)
{
- rnode.spcNode = DEFAULTTABLESPACE_OID;
+ rlocator.spcOid = DEFAULTTABLESPACE_OID;
matched = true;
}
else
{
nmatch = sscanf(path, "pg_tblspc/%u/" TABLESPACE_VERSION_DIRECTORY "/%u/%u.%u",
- &rnode.spcNode, &rnode.dbNode, &rnode.relNode,
+ &rlocator.spcOid, &rlocator.dbOid, &rlocator.relNumber,
&segNo);
if (nmatch == 3 || nmatch == 4)
matched = true;
@@ -567,12 +567,12 @@ isRelDataFile(const char *path)
/*
* The sscanf tests above can match files that have extra characters at
* the end. To eliminate such cases, cross-check that GetRelationPath
- * creates the exact same filename, when passed the RelFileNode
+ * creates the exact same filename, when passed the RelFileLocator
* information we extracted from the filename.
*/
if (matched)
{
- char *check_path = datasegpath(rnode, MAIN_FORKNUM, segNo);
+ char *check_path = datasegpath(rlocator, MAIN_FORKNUM, segNo);
if (strcmp(check_path, path) != 0)
matched = false;
@@ -589,12 +589,12 @@ isRelDataFile(const char *path)
* The returned path is palloc'd
*/
static char *
-datasegpath(RelFileNode rnode, ForkNumber forknum, BlockNumber segno)
+datasegpath(RelFileLocator rlocator, ForkNumber forknum, BlockNumber segno)
{
char *path;
char *segpath;
- path = relpathperm(rnode, forknum);
+ path = relpathperm(rlocator, forknum);
if (segno > 0)
{
segpath = psprintf("%s.%u", path, segno);
diff --git a/src/bin/pg_rewind/filemap.h b/src/bin/pg_rewind/filemap.h
index 096f57a68e7..0e011fbb0b3 100644
--- a/src/bin/pg_rewind/filemap.h
+++ b/src/bin/pg_rewind/filemap.h
@@ -10,7 +10,7 @@
#include "datapagemap.h"
#include "storage/block.h"
-#include "storage/relfilenode.h"
+#include "storage/relfilelocator.h"
/* these enum values are sorted in the order we want actions to be processed */
typedef enum
@@ -103,7 +103,7 @@ extern void process_source_file(const char *path, file_type_t type,
extern void process_target_file(const char *path, file_type_t type,
size_t size, const char *link_target);
extern void process_target_wal_block_change(ForkNumber forknum,
- RelFileNode rnode,
+ RelFileLocator rlocator,
BlockNumber blkno);
extern filemap_t *decide_file_actions(void);
diff --git a/src/bin/pg_rewind/parsexlog.c b/src/bin/pg_rewind/parsexlog.c
index c6792dafae3..53f011a2fe2 100644
--- a/src/bin/pg_rewind/parsexlog.c
+++ b/src/bin/pg_rewind/parsexlog.c
@@ -445,18 +445,18 @@ extractPageInfo(XLogReaderState *record)
for (block_id = 0; block_id <= XLogRecMaxBlockId(record); block_id++)
{
- RelFileNode rnode;
+ RelFileLocator rlocator;
ForkNumber forknum;
BlockNumber blkno;
if (!XLogRecGetBlockTagExtended(record, block_id,
- &rnode, &forknum, &blkno, NULL))
+ &rlocator, &forknum, &blkno, NULL))
continue;
/* We only care about the main fork; others are copied in toto */
if (forknum != MAIN_FORKNUM)
continue;
- process_target_wal_block_change(forknum, rnode, blkno);
+ process_target_wal_block_change(forknum, rlocator, blkno);
}
}
diff --git a/src/bin/pg_rewind/pg_rewind.h b/src/bin/pg_rewind/pg_rewind.h
index 393182fe2ae..8b4b50a33b0 100644
--- a/src/bin/pg_rewind/pg_rewind.h
+++ b/src/bin/pg_rewind/pg_rewind.h
@@ -16,7 +16,7 @@
#include "datapagemap.h"
#include "libpq-fe.h"
#include "storage/block.h"
-#include "storage/relfilenode.h"
+#include "storage/relfilelocator.h"
/* Configuration options */
extern char *datadir_target;
diff --git a/src/bin/pg_upgrade/Makefile b/src/bin/pg_upgrade/Makefile
index 587793e815b..7f8042f34ad 100644
--- a/src/bin/pg_upgrade/Makefile
+++ b/src/bin/pg_upgrade/Makefile
@@ -19,7 +19,7 @@ OBJS = \
option.o \
parallel.o \
pg_upgrade.o \
- relfilenode.o \
+ relfilenumber.o \
server.o \
tablespace.o \
util.o \
diff --git a/src/bin/pg_upgrade/info.c b/src/bin/pg_upgrade/info.c
index 36b0670df66..5d30b87d6ae 100644
--- a/src/bin/pg_upgrade/info.c
+++ b/src/bin/pg_upgrade/info.c
@@ -190,9 +190,9 @@ create_rel_filename_map(const char *old_data, const char *new_data,
map->new_tablespace_suffix = new_cluster.tablespace_suffix;
}
- /* DB oid and relfilenodes are preserved between old and new cluster */
+ /* DB oid and relfilenumbers are preserved between old and new cluster */
map->db_oid = old_db->db_oid;
- map->relfilenode = old_rel->relfilenode;
+ map->relfilenumber = old_rel->relfilenumber;
/* used only for logging and error reporting, old/new are identical */
map->nspname = old_rel->nspname;
@@ -399,7 +399,7 @@ get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo)
i_reloid,
i_indtable,
i_toastheap,
- i_relfilenode,
+ i_relfilenumber,
i_reltablespace;
char query[QUERY_ALLOC];
char *last_namespace = NULL,
@@ -495,7 +495,7 @@ get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo)
i_toastheap = PQfnumber(res, "toastheap");
i_nspname = PQfnumber(res, "nspname");
i_relname = PQfnumber(res, "relname");
- i_relfilenode = PQfnumber(res, "relfilenode");
+ i_relfilenumber = PQfnumber(res, "relfilenode");
i_reltablespace = PQfnumber(res, "reltablespace");
i_spclocation = PQfnumber(res, "spclocation");
@@ -527,7 +527,7 @@ get_rel_infos(ClusterInfo *cluster, DbInfo *dbinfo)
relname = PQgetvalue(res, relnum, i_relname);
curr->relname = pg_strdup(relname);
- curr->relfilenode = atooid(PQgetvalue(res, relnum, i_relfilenode));
+ curr->relfilenumber = atooid(PQgetvalue(res, relnum, i_relfilenumber));
curr->tblsp_alloc = false;
/* Is the tablespace oid non-default? */
diff --git a/src/bin/pg_upgrade/pg_upgrade.h b/src/bin/pg_upgrade/pg_upgrade.h
index 55de244ac01..50dfe9e81c1 100644
--- a/src/bin/pg_upgrade/pg_upgrade.h
+++ b/src/bin/pg_upgrade/pg_upgrade.h
@@ -135,7 +135,7 @@ typedef struct
char *nspname; /* namespace name */
char *relname; /* relation name */
Oid reloid; /* relation OID */
- Oid relfilenode; /* relation file node */
+ RelFileNumber relfilenumber; /* relation file number */
Oid indtable; /* if index, OID of its table, else 0 */
Oid toastheap; /* if toast table, OID of base table, else 0 */
char *tablespace; /* tablespace path; "" for cluster default */
@@ -159,7 +159,7 @@ typedef struct
const char *old_tablespace_suffix;
const char *new_tablespace_suffix;
Oid db_oid;
- Oid relfilenode;
+ RelFileNumber relfilenumber;
/* the rest are used only for logging and error reporting */
char *nspname; /* namespaces */
char *relname;
@@ -400,7 +400,7 @@ void parseCommandLine(int argc, char *argv[]);
void adjust_data_dir(ClusterInfo *cluster);
void get_sock_dir(ClusterInfo *cluster, bool live_check);
-/* relfilenode.c */
+/* relfilenumber.c */
void transfer_all_new_tablespaces(DbInfoArr *old_db_arr,
DbInfoArr *new_db_arr, char *old_pgdata, char *new_pgdata);
diff --git a/src/bin/pg_upgrade/relfilenode.c b/src/bin/pg_upgrade/relfilenumber.c
index d23ac884bd1..b3ad8209eca 100644
--- a/src/bin/pg_upgrade/relfilenode.c
+++ b/src/bin/pg_upgrade/relfilenumber.c
@@ -1,10 +1,10 @@
/*
- * relfilenode.c
+ * relfilenumber.c
*
- * relfilenode functions
+ * relfilenumber functions
*
* Copyright (c) 2010-2022, PostgreSQL Global Development Group
- * src/bin/pg_upgrade/relfilenode.c
+ * src/bin/pg_upgrade/relfilenumber.c
*/
#include "postgres_fe.h"
@@ -181,7 +181,7 @@ transfer_relfile(FileNameMap *map, const char *type_suffix, bool vm_must_add_fro
/*
* Now copy/link any related segments as well. Remember, PG breaks large
* files into 1GB segments, the first segment has no extension, subsequent
- * segments are named relfilenode.1, relfilenode.2, relfilenode.3.
+ * segments are named relfilenumber.1, relfilenumber.2, relfilenumber.3.
*/
for (segno = 0;; segno++)
{
@@ -194,14 +194,14 @@ transfer_relfile(FileNameMap *map, const char *type_suffix, bool vm_must_add_fro
map->old_tablespace,
map->old_tablespace_suffix,
map->db_oid,
- map->relfilenode,
+ map->relfilenumber,
type_suffix,
extent_suffix);
snprintf(new_file, sizeof(new_file), "%s%s/%u/%u%s%s",
map->new_tablespace,
map->new_tablespace_suffix,
map->db_oid,
- map->relfilenode,
+ map->relfilenumber,
type_suffix,
extent_suffix);
diff --git a/src/bin/pg_waldump/pg_waldump.c b/src/bin/pg_waldump/pg_waldump.c
index 5dc60109b12..65281136280 100644
--- a/src/bin/pg_waldump/pg_waldump.c
+++ b/src/bin/pg_waldump/pg_waldump.c
@@ -37,7 +37,7 @@ static const char *progname;
static int WalSegSz;
static volatile sig_atomic_t time_to_stop = false;
-static const RelFileNode emptyRelFileNode = {0, 0, 0};
+static const RelFileLocator emptyRelFileLocator = {0, 0, 0};
typedef struct XLogDumpPrivate
{
@@ -63,7 +63,7 @@ typedef struct XLogDumpConfig
bool filter_by_rmgr_enabled;
TransactionId filter_by_xid;
bool filter_by_xid_enabled;
- RelFileNode filter_by_relation;
+ RelFileLocator filter_by_relation;
bool filter_by_extended;
bool filter_by_relation_enabled;
BlockNumber filter_by_relation_block;
@@ -393,7 +393,7 @@ WALDumpReadPage(XLogReaderState *state, XLogRecPtr targetPagePtr, int reqLen,
*/
static bool
XLogRecordMatchesRelationBlock(XLogReaderState *record,
- RelFileNode matchRnode,
+ RelFileLocator matchRlocator,
BlockNumber matchBlock,
ForkNumber matchFork)
{
@@ -401,17 +401,17 @@ XLogRecordMatchesRelationBlock(XLogReaderState *record,
for (block_id = 0; block_id <= XLogRecMaxBlockId(record); block_id++)
{
- RelFileNode rnode;
+ RelFileLocator rlocator;
ForkNumber forknum;
BlockNumber blk;
if (!XLogRecGetBlockTagExtended(record, block_id,
- &rnode, &forknum, &blk, NULL))
+ &rlocator, &forknum, &blk, NULL))
continue;
if ((matchFork == InvalidForkNumber || matchFork == forknum) &&
- (RelFileNodeEquals(matchRnode, emptyRelFileNode) ||
- RelFileNodeEquals(matchRnode, rnode)) &&
+ (RelFileLocatorEquals(matchRlocator, emptyRelFileLocator) ||
+ RelFileLocatorEquals(matchRlocator, rlocator)) &&
(matchBlock == InvalidBlockNumber || matchBlock == blk))
return true;
}
@@ -885,11 +885,11 @@ main(int argc, char **argv)
break;
case 'R':
if (sscanf(optarg, "%u/%u/%u",
- &config.filter_by_relation.spcNode,
- &config.filter_by_relation.dbNode,
- &config.filter_by_relation.relNode) != 3 ||
- !OidIsValid(config.filter_by_relation.spcNode) ||
- !OidIsValid(config.filter_by_relation.relNode))
+ &config.filter_by_relation.spcOid,
+ &config.filter_by_relation.dbOid,
+ &config.filter_by_relation.relNumber) != 3 ||
+ !OidIsValid(config.filter_by_relation.spcOid) ||
+ !RelFileNumberIsValid(config.filter_by_relation.relNumber))
{
pg_log_error("invalid relation specification: \"%s\"", optarg);
pg_log_error_detail("Expecting \"tablespace OID/database OID/relation filenode\".");
@@ -1132,7 +1132,7 @@ main(int argc, char **argv)
!XLogRecordMatchesRelationBlock(xlogreader_state,
config.filter_by_relation_enabled ?
config.filter_by_relation :
- emptyRelFileNode,
+ emptyRelFileLocator,
config.filter_by_relation_block_enabled ?
config.filter_by_relation_block :
InvalidBlockNumber,