Re: Escape handling in strings - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: Escape handling in strings
Date
Msg-id 200506161432.j5GEWcK01979@candle.pha.pa.us
Whole thread Raw
In response to Re: Escape handling in strings  (Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
List pgsql-patches
Christopher Kings-Lynne wrote:
> >     * Allow backslash handling in quoted strings to be disabled for
> >       portability
> >
> >       The use of C-style backslashes (.e.g. \n, \r) in quoted strings is not
> >       SQL-spec compliant, so allow such handling to be disabled.  However,
> >       disabling backslashes could break many third-party applications and
> >       tools.
> >
> > Now, if we don't address it, we might as well remove the TODO item and
> > say we are never going to change it, because right now, we have a plan,
> > and I think the longer we go the harder it will be.  And if we don't
> > change it, it makes it quite hard for people to port applications to
> > PostgreSQL.   Fundamental queries like:
> >
> >     SELECT * FROM files WHERE filename = 'C:\tmp'
> >
> > do not work.  When a query with a single table and single WHERE clause
> > isn't portable, it seems like a problem.  If this was isolated to CREATE
> > TABLE or something, it wouldn't be a big deal.
>
> Why not compromise?  Allow ONLY \' in normal strings?  That'd deal with
> the majority of compatibility issues.  Or, like you say, make it a GUC :(

The problem with allowing just \' is that we would then not be able to
distinguish a literal \ then ' from a \'.  Seems it is all or nothing.

FYI, I added a little to the web page:

    Steps:

    1. Change all \' to SQL-standard ''.
    2. Change use of \ in strings to use E''.
    3. Finally, change '' to treat \ literally.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Escape handling in strings
Next
From: Christof Petig
Date:
Subject: Re: [INTERFACES] libecpg (8.0 and CVS) hits a gcc bug on powerpc