Re: #escape_string_warning = off
Jeff Davis <jdavis-pgsql@empires.org>
From: Jeff Davis <jdavis-pgsql@empires.org>
To: PostgreSQL-development <pgsql-hackers@postgresql.org>
Cc: Marko Kreen <marko@l-t.ee>, "Joshua D. Drake" <jd@commandprompt.com>
Date: 2005-08-02T23:18:27Z
Lists: pgsql-hackers
Dennis Bjorklund wrote: > On Tue, 2 Aug 2005, Jeff Davis wrote: > > >>>>Does the SQL standard provide no way to have a NULL character in a >>>>string constant? Is single-quote the only special character? >>> >>>I don't think it forbids you from using the null character. It's not like >>>the strings are zero terminated. Some encodings might not allow the null >>>character, but that's different. >> >>But doesn't PostgreSQL forbid us from using the NULL character in a >>query at all? Don't we always have to escape or encode it in some way? > > > Pg does not allow \0 in strings at all. Try SELECT 'abc\0def'; in the > current version of pg. > > The sql standard doesn't forbid null values in strings as far as I know > and that's all I talked about. To have a sql standard string with null > inside you just insert the 0 byte (for normal single byte encodings), no > escaping needed. I guess what I'm trying to find out: does this mean that after all this change to the way strings are handled in the future, PostgreSQL still won't be standards-compliant for the basic '' string? Also, let's say I have apps now in 7.4/8.0, and I want them to be forward-compatible. Should I make a type called E so that the E'' notation will work, and then use that for strings? What is the "right" way to do it? I found a few things in the archives, but I didn't see these particular things addressed. Regards, Jeff Davis