Re: Escape handling in strings
От | Bruce Momjian |
---|---|
Тема | Re: Escape handling in strings |
Дата | |
Msg-id | 200506161432.j5GEWcK01979@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Re: Escape handling in strings (Christopher Kings-Lynne <chriskl@familyhealth.com.au>) |
Список | 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 по дате отправления: