On Thu, Nov 27, 2025 at 2:49 PM Mahendra Singh Thalor <mahi6run@gmail.com> wrote:
Fixed. Here, I am attaching an updated patch for the review and testing.
Thanks Mahendra, please refer this scenario where restoring the dump(database contain tablespace) throwing an error
Steps to reproduce
initdb (./initdb -D data) , start the server ( ./pg_ctl -D data start) , connect to psql terminal ( ./psql postgres)
create a directory ( \! mkdir /tmp/abc) , create a tablespace ( create tablespace a location '/tmp/abc'); )
create a table ( create table t(n int) tablespace a; ) , insert data ( insert into t values ('a'); )
perform pg_dumpall with option -c ( ./pg_dumpall -Fc -f my.d)
try to perform pg_restore with option --no-tablespaces ( ./pg_restore --no-tablespaces -Fc my.d -d postgres -C)
Getting this error :
"
pg_restore: error: could not execute query: ERROR: role "edb" already exists Command was: CREATE ROLE edb; ALTER ROLE edb WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS;
pg_restore: error: could not execute query: ERROR: directory "/tmp/abc/PG_19_202511281" already in use as a tablespace Command was: CREATE TABLESPACE a OWNER edb LOCATION '/tmp/abc';
pg_restore: warning: errors ignored on restore: 2
"
I have observed that when combining the --globals-only option with certain other switches during a pg_restore - operation fails silently.
The attempted restore does not execute, but no error message or warning is displayed unless the --verbose option is also used.
--this will just run without any message but objects also not going to create