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
Тема Re: getting "shell command argument contains a newline or carriage return:" error with pg_dumpall when db name have new line in double quote
Дата
Msg-id CAFC+b6ocP-8VtvvgVU8npVPp4cc379DvDkRjdRKUc+fa2fKwwg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: getting "shell command argument contains a newline or carriage return:" error with pg_dumpall when db name have new line in double quote  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: getting "shell command argument contains a newline or carriage return:" error with pg_dumpall when db name have new line in double quote
Список pgsql-hackers
./psql postgres

Hi,

On Wed, Mar 26, 2025 at 5:55 PM Andrew Dunstan <andrew@dunslane.net> wrote:

You can still create a database with these using "CREATE DATABASE" though. Shouldn't we should really be preventing that?


yes, solution 1 which i mentioned prevents these while we are using "CREATE DATABASE".

/*
  * Create a new database using the WAL_LOG strategy.
@@ -741,6 +742,13 @@ createdb(ParseState *pstate, const CreatedbStmt *stmt)
  CreateDBStrategy dbstrategy = CREATEDB_WAL_LOG;
  createdb_failure_params fparms;
 
+ /* Report error if dbname have newline or carriage return in name. */
+ if (is_name_contain_lfcr(dbname))
+ ereport(ERROR,
+ (errcode(ERRCODE_INVALID_PARAMETER_VALUE)),
+ errmsg("database name contains a newline or carriage return character"),
+ errhint("newline or carriage return character is not allowed in database name"));
+

psql (18devel)
Type "help" for help.

postgres=# create database "test
postgres"# lines";
ERROR:  database name contains a newline or carriage return character
HINT:  newline or carriage return character is not allowed in database name


Thanks and regards,
Srinath Reddy Sadipiralla,
EnterpriseDB: http://www.enterprisedb.com

postgres=#\q

 

В списке pgsql-hackers по дате отправления: