BUG #18453: --exclude-database has problems with capital letters

Started by PG Bug reporting formalmost 2 years ago4 messagesbugs
Jump to latest
#1PG Bug reporting form
noreply@postgresql.org

The following bug has been logged on the website:

Bug reference: 18453
Logged by: Jernej Simončič
Email address: jernej-s31+pg@simoncic.si
PostgreSQL version: 16.2
Operating system: Windows Server 2022
Description:

I've got a database named Lidar, which I want to exclude from being dumped
with pg_dumpall. When I use the following command, the database is not
skipped:

"C:\Program Files\PostgreSQL\16\bin\pg_dumpall.exe"
--exclude-database="Lidar" -U postgres > D:\dumps\pg.dump

If I instead use --exclude-database="?idar", the database is skipped as
expected (using "lidar" instead of "Lidar" also doesn't skip the database).

#2David G. Johnston
david.g.johnston@gmail.com
In reply to: PG Bug reporting form (#1)
Re: BUG #18453: --exclude-database has problems with capital letters

On Tuesday, April 30, 2024, PG Bug reporting form <noreply@postgresql.org>
wrote:

The following bug has been logged on the website:

Bug reference: 18453
Logged by: Jernej Simončič
Email address: jernej-s31+pg@simoncic.si
PostgreSQL version: 16.2
Operating system: Windows Server 2022
Description:

I've got a database named Lidar, which I want to exclude from being dumped
with pg_dumpall. When I use the following command, the database is not
skipped:

"C:\Program Files\PostgreSQL\16\bin\pg_dumpall.exe"
--exclude-database="Lidar" -U postgres > D:\dumps\pg.dump

If I instead use --exclude-database="?idar", the database is skipped as
expected (using "lidar" instead of "Lidar" also doesn't skip the database).

There is no bug here. The pattern specified doesn’t quote the identifier
so it is folded to lowercase.

https://www.postgresql.org/docs/current/app-psql.html#APP-PSQL-PATTERNS

You will need to deal with getting quotes into the pattern while dealing
with the fact your OS uses quotes for its own purpose.

David J.

#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: David G. Johnston (#2)
Re: BUG #18453: --exclude-database has problems with capital letters

"David G. Johnston" <david.g.johnston@gmail.com> writes:

On Tuesday, April 30, 2024, PG Bug reporting form <noreply@postgresql.org>
wrote:

I've got a database named Lidar, which I want to exclude from being dumped
with pg_dumpall. When I use the following command, the database is not
skipped:
"C:\Program Files\PostgreSQL\16\bin\pg_dumpall.exe"
--exclude-database="Lidar" -U postgres > D:\dumps\pg.dump

You will need to deal with getting quotes into the pattern while dealing
with the fact your OS uses quotes for its own purpose.

Yeah. In a Unix shell something like
'--exclude-database="Lidar"'
would work, but I'm not up on the quoting rules under Windows.

regards, tom lane

#4Jernej Simončič
jernej-s31+pg@simoncic.si
In reply to: David G. Johnston (#2)
Re: BUG #18453: --exclude-database has problems with capital letters

On sreda, 01. maj 2024, 02:09:29, David G. Johnston wrote:

There is no bug here.  The pattern specified doesn’t quote the identifier so it is folded to lowercase.

Ah, I missed that pattern is folded to lower-case.
 

You will need to deal with getting quotes into the pattern while dealing with the fact your OS uses quotes for its own purpose.

On Windows the program itself deals with splitting the command line to arguments – Windows just passes everything as a single string (though the C library does abstract this away, so in this case --exclude-database="\"Lidar\"" or even --exclude-database=\"Lidar\" works).
 
-- 
< Jernej Simončič ><><><><><><><><><><><>< https://eternallybored.org/ &gt;