mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-02-23 19:39:53 +08:00
psql: complain if pg_dump custom-format is detected
Apparently, this is a very common mistake for users to make; it is better to have it fail reasonably rather than throw potentially a large number of errors. Since we have a magic string at the start of the file, we can detect the case easily and there's no other possible useful behavior anyway. Author: Craig Ringer
This commit is contained in:
parent
b01a4f6838
commit
3c2aa0c6f2
@ -175,6 +175,18 @@ MainLoop(FILE *source)
|
||||
if (pset.lineno == 1 && pset.encoding == PG_UTF8 && strncmp(line, "\xef\xbb\xbf", 3) == 0)
|
||||
memmove(line, line + 3, strlen(line + 3) + 1);
|
||||
|
||||
/* Detect attempts to run custom-format dumps as SQL scripts */
|
||||
if (pset.lineno == 1 && !pset.cur_cmd_interactive &&
|
||||
strncmp(line, "PGDMP", 5) == 0)
|
||||
{
|
||||
free(line);
|
||||
puts(_("The input is a PostgreSQL custom-format dump.\n"
|
||||
"Use the pg_restore command-line client to restore this dump to a database.\n"));
|
||||
fflush(stdout);
|
||||
successResult = EXIT_FAILURE;
|
||||
break;
|
||||
}
|
||||
|
||||
/* nothing left on line? then ignore */
|
||||
if (line[0] == '\0' && !psql_scan_in_quote(scan_state))
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user