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

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

From
PG Bug reporting form
Date:
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).


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

From
"David G. Johnston"
Date:
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.


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.



"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



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

From
Jernej Simončič
Date:
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
ownpurpose. 

On Windows the program itself deals with splitting the command line to arguments – Windows just passes everything as a
singlestring (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/ >