On Mon, Jun 10, 2024 at 10:56 AM David G. Johnston < david.g.johns...@gmail.com> wrote:
> On Monday, June 10, 2024, Ron Johnson <ronljohnso...@gmail.com> wrote: > >> On Mon, Jun 10, 2024 at 10:08 AM David G. Johnston < >> david.g.johns...@gmail.com> wrote: >> >>> On Mon, Jun 10, 2024 at 7:02 AM Ron Johnson <ronljohnso...@gmail.com> >>> wrote: >>> >>>> PG 9.6 and PG 14 >>>> >>>> >>>> https://www.postgresql.org/docs/14/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS >>>> >>>> [quote] >>>> Any other character following a backslash is taken literally. Thus, to >>>> include a backslash character, write two backslashes (\\). Also, a >>>> single quote can be included in an escape string by writing \', in >>>> addition to the normal way of ''. >>>> [/quote] >>>> >>>> >>> The link you provided goes to the wrong subsection. The following >>> subsection, which discusses, String Constants With C-Style Escapes, >>> requires that you write the literal as E'abc\'def' >>> >>> Note the E prefix on the literal, which is the thing that enables >>> considering backslash as an escape. >>> >> >> This hasn't changed from 9.6, has it? >> >> A Java app that uses backslash escapes broke this morning on fields with >> single quotes, after the weekend migration from PG 9.6.24 to 14.12, and I >> don't know why. I'm not a Java programmer, though. >> >> > As the caution on that page says the default for standard conforming > strings changed in 9.1. But maybe your 9.6 had the old value configured but > when you upgraded to 14 you decided to go with the new default. > That was the first thing I checked... It's the same on both the 9.6 and 14 systems:. TAP=# show standard_conforming_strings; standard_conforming_strings ----------------------------- on (1 row) TAP=# TAP=# show backslash_quote; backslash_quote ----------------- safe_encoding (1 row)