BUG #18245: pg_restore accepts same output file name as input file name

Started by PG Bug reporting formover 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: 18245
Logged by: Mohammad Al Zouabi
Email address: mb.alzouabi@gmail.com
PostgreSQL version: 14.10
Operating system: macOS
Description:

Please let it fail when the user passes the same name for the output as the
input.

I just lost a very important .tar file because I forgot to replace .tar with
.sql.

Thanks!

#2Daniel Gustafsson
daniel@yesql.se
In reply to: PG Bug reporting form (#1)
Re: BUG #18245: pg_restore accepts same output file name as input file name

On 13 Dec 2023, at 04:39, PG Bug reporting form <noreply@postgresql.org> wrote:

Please let it fail when the user passes the same name for the output as the
input.

I think this sounds like a fair restriction, input and output being the same
seems much more likely to be a copy/paste issue than an interesting usecase.
Something like the attached (untested) sketch should be enough I think.

--
Daniel Gustafsson

Attachments:

pg_restore_filecheck.diffapplication/octet-stream; name=pg_restore_filecheck.diff; x-unix-mode=0644Download+7-0
#3Julien Rouhaud
rjuju123@gmail.com
In reply to: Daniel Gustafsson (#2)
Re: BUG #18245: pg_restore accepts same output file name as input file name

Hi,

On Wed, Dec 13, 2023 at 09:44:26AM +0100, Daniel Gustafsson wrote:

On 13 Dec 2023, at 04:39, PG Bug reporting form <noreply@postgresql.org> wrote:

Please let it fail when the user passes the same name for the output as the
input.

I think this sounds like a fair restriction, input and output being the same
seems much more likely to be a copy/paste issue than an interesting usecase.

+1

Something like the attached (untested) sketch should be enough I think.

I'm wondering if it would be worth adding some canonicalize_path() calls while
at it, ISTM that such mistakes are likely to happen when invoking pg_restore
manually, so having slightly different wording for the exact same file wouldn't
surprising.

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Julien Rouhaud (#3)
Re: BUG #18245: pg_restore accepts same output file name as input file name

Julien Rouhaud <rjuju123@gmail.com> writes:

On Wed, Dec 13, 2023 at 09:44:26AM +0100, Daniel Gustafsson wrote:

Something like the attached (untested) sketch should be enough I think.

I'm wondering if it would be worth adding some canonicalize_path() calls while
at it, ISTM that such mistakes are likely to happen when invoking pg_restore
manually, so having slightly different wording for the exact same file wouldn't
surprising.

I'm a little dubious about the value of this; but if we're going to do
it, comparing post-canonicalize_path strings does seem like the right
way.

regards, tom lane