pg_basebackup failure after setting default_table_access_method option - Mailing list pgsql-hackers

From vignesh C
Subject pg_basebackup failure after setting default_table_access_method option
Date
Msg-id CALDaNm1KXK9gbZfY-p_peRFm_XrBh1OwQO1Kk6Gig0c0fVZ2uw@mail.gmail.com
Whole thread Raw
Responses Re: pg_basebackup failure after setting default_table_access_method option
List pgsql-hackers

Hi,

I noticed pg_basebackup failure when default_table_access_method option is set.

Test steps:

Step 1: Init database 
./initdb -D data

Step 2: Start Server
./postgres -D data &

Step 3: Set Guc option 
export PGOPTIONS='-c default_table_access_method=zheap'

Step 4: Peform backup
/pg_basebackup -D backup -p 5432 --no-sync
2019-06-05 20:35:04.088 IST [11601] FATAL:  cannot read pg_class without having selected a database
pg_basebackup: error: could not connect to server: FATAL:  cannot read pg_class without having selected a database

Reason why it is failing:
pg_basebackup does not use any database to connect to server as it backs up the whole data instance. 
As the option default_table_access_method is set.
It tries to validate this option, but while validating the option in ScanPgRelation function:
if (!OidIsValid(MyDatabaseId))
elog(FATAL, "cannot read pg_class without having selected a database");

Here as pg_basebackup uses no database the command fails.

Fix:
The patch has the fix for the above issue:

Let me know your opinion on this.

--
Regards,
vignesh
Attachment

pgsql-hackers by date:

Previous
From: Antonin Houska
Date:
Subject: Re: "WIP: Data at rest encryption" patch and, PostgreSQL 11-beta3
Next
From: Dave Cramer
Date:
Subject: Re: Binary support for pgoutput plugin