Re: BUG #13736: pg_dump should use E'' quotes
От | Tom Lane |
---|---|
Тема | Re: BUG #13736: pg_dump should use E'' quotes |
Дата | |
Msg-id | 3219.1445895186@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | BUG #13736: pg_dump should use E'' quotes (felipe@felipegasper.com) |
Ответы |
Re: BUG #13736: pg_dump should use E'' quotes
Re: BUG #13736: pg_dump should use E'' quotes |
Список | pgsql-bugs |
felipe@felipegasper.com writes: > When dumping a DB whose name has a backslash in it, I get a warning like: > ------ > pg_dump: WARNING: nonstandard use of \\ in a string literal > LINE 1: ...) AS description FROM pg_database WHERE datname = 'i have / ... > ^ > HINT: Use the escape string syntax for backslashes, e.g., E'\\'. > ------ It took me some time to reproduce that, but I eventually realized that you must have standard_conforming_strings turned off in your database settings. This has been a deprecated setting since 9.1. > pg_dump should be using PostgreSQLâs own recommended syntax, should it not? > Is there anything that would break from making this change? Yes. For one thing, there would immediately be zero chance of loading view definitions produced by pg_dump into any other DBMS, or even into old versions of PG, without painstaking hand-editing to remove all the E's (and then also fix the string contents, which would likely be actively wrong without E). We could avoid the problem by having pg_dump force standard_conforming_strings to ON rather than adopting the prevailing database setting, but again that would complicate back-porting its output to older PG versions. It might also annoy people who are accustomed to seeing old-style strings in their dumps; presumably people who are still using standard_conforming_strings = OFF are a bit set in their ways. Basically there are a number of tradeoffs here and avoiding a purely cosmetic warning is the consideration that loses out. At some point we might decide that backward compatibility to old PG versions is no longer of interest; but what we'd probably do then is have pg_dump force standard_conforming_strings to ON, not adopt E'' syntax. regards, tom lane
В списке pgsql-bugs по дате отправления: