Re: getting "shell command argument contains a newline or carriage return:" error with pg_dumpall when db name have new line in double quote
Srinath Reddy Sadipiralla <srinath2133@gmail.com>
From: Srinath Reddy <srinath2133@gmail.com>
To: Mahendra Singh Thalor <mahi6run@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2025-01-30T11:17:17Z
Lists: pgsql-hackers
On Wed, Jan 29, 2025 at 9:55 PM Mahendra Singh Thalor <mahi6run@gmail.com> wrote: > Hi, > While doing some testing with pg_dumpall, I noticed one weird behaviour. > > While we create the database, we are allowing the database name with a new > line (if name is in double quote). > *For example*: > >> postgres=# create database "dbstr1; >> dbstr 2"; >> CREATE DATABASE >> postgres=# > > Here, the database name is in 2 lines. > > With the help of pg_dumpall, I tried to dump but I am getting an error for > the new line. > > -- >> -- Database "dbstr1; >> dbstr 2" dump >> -- >> >> shell command argument contains a newline or carriage return: " >> dbname='dbstr1; >> dbstr 2'" >> > > After this message, we are stopping the dump. > I have reproduced and verified the same.The reason is in runPgDump during appendShellString for forming the pg_dump command , in appendShellStringNoError we are considering the string as invalid if it has '\n' and '\r'. > > I think, if we are allowing new lines in the db name, then we should dump > it. > Agreed. Regards, Srinath Reddy Sadipiralla, EDB: https://www.enterprisedb.com <http://www.enterprisedb.com/>
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Disallow CR and LF in database, role, and tablespace names
- b380a56a3f95 19 (unreleased) landed