Re: [HACKERS] #escape_string_warning = off

2005-08-09 Thread Bruce Momjian
Joshua D. Drake wrote:
 Tom Lane wrote:
  Bruce Momjian pgman@candle.pha.pa.us writes:
  
 Peter Eisentraut wrote:
 
 The correct lingo would be standard_conforming_strings.  I'm going to 
 change
 that.
  
  
 Sounds good.
  
  
  No problem here either.
  
 
 So does that mean for 8.1 it will be:
 
 standard_conforming_strings = on/off

off, maybe on for 8.2 or 8.3.

-- 
  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

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] #escape_string_warning = off

2005-08-08 Thread Bruce Momjian
Peter Eisentraut wrote:
 Am Mittwoch, 3. August 2005 15:40 schrieb Oliver Jowett:
  The impression I got from previous discussion was that you need to check
  the value of the standard_compliant_strings GUC, and double backslashes
  inside '' only if it was false or missing.
 
 The correct lingo would be standard_conforming_strings.  I'm going to change 
 that.

Sounds good.  Another question is whether this should be backpatched to
our next 7.4.X or 8.0.X release as read-only variables.

-- 
  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

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [HACKERS] #escape_string_warning = off

2005-08-08 Thread Tom Lane
Bruce Momjian pgman@candle.pha.pa.us writes:
 Peter Eisentraut wrote:
 The correct lingo would be standard_conforming_strings.  I'm going to change
 that.

 Sounds good.

No problem here either.

 Another question is whether this should be backpatched to
 our next 7.4.X or 8.0.X release as read-only variables.

Unnecessary; any client code written to use this need only assume that
absence of the parameter means the old behavior.

regards, tom lane

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] #escape_string_warning = off

2005-08-08 Thread Joshua D. Drake

Tom Lane wrote:

Bruce Momjian pgman@candle.pha.pa.us writes:


Peter Eisentraut wrote:


The correct lingo would be standard_conforming_strings.  I'm going to change
that.




Sounds good.



No problem here either.



So does that mean for 8.1 it will be:

standard_conforming_strings = on/off

?





Another question is whether this should be backpatched to
our next 7.4.X or 8.0.X release as read-only variables.



Unnecessary; any client code written to use this need only assume that
absence of the parameter means the old behavior.

regards, tom lane

---(end of broadcast)---
TIP 6: explain analyze is your friend



---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] #escape_string_warning = off

2005-08-03 Thread Peter Eisentraut
Am Mittwoch, 3. August 2005 01:18 schrieb Jeff Davis:
 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?

It will be more conforming regarding backslashes.  There may be other 
conformance issues, but they are not considered here.

 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?

To be standards-conforming, don't use any backslash escapes.  If you must use 
them, use the E'' notation.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [HACKERS] #escape_string_warning = off

2005-08-03 Thread Oliver Jowett
Peter Eisentraut wrote:

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?
 
 To be standards-conforming, don't use any backslash escapes.  If you must use 
 them, use the E'' notation.

That doesn't really answer the question, though, since none of
7.4/8.0/8.1 interprets '' strings in a strictly standards-conforming way
as I understand it.

The impression I got from previous discussion was that you need to check
the value of the standard_compliant_strings GUC, and double backslashes
inside '' only if it was false or missing.

-O

---(end of broadcast)---
TIP 1: if posting/reading through Usenet, please send an appropriate
   subscribe-nomail command to [EMAIL PROTECTED] so that your
   message can get through to the mailing list cleanly


Re: [HACKERS] #escape_string_warning = off

2005-08-03 Thread Peter Eisentraut
Am Mittwoch, 3. August 2005 15:40 schrieb Oliver Jowett:
  To be standards-conforming, don't use any backslash escapes.  If you must
  use them, use the E'' notation.

 That doesn't really answer the question, though, since none of
 7.4/8.0/8.1 interprets '' strings in a strictly standards-conforming way
 as I understand it.

That is correct, but eventually standards_compliant_strings will be true by 
default and then you have to use E'' to get backslash escapes.  The above 
advice is the future-proof way to go from 8.1 on.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 2: Don't 'kill -9' the postmaster


Re: [HACKERS] #escape_string_warning = off

2005-08-03 Thread Peter Eisentraut
Am Mittwoch, 3. August 2005 15:40 schrieb Oliver Jowett:
 The impression I got from previous discussion was that you need to check
 the value of the standard_compliant_strings GUC, and double backslashes
 inside '' only if it was false or missing.

The correct lingo would be standard_conforming_strings.  I'm going to change 
that.

-- 
Peter Eisentraut
http://developer.postgresql.org/~petere/

---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [HACKERS] #escape_string_warning = off

2005-08-02 Thread Jeff Davis
The documentation about this is a little brief (reading from the
developer docs, section 4.1.2.1.).

Does the SQL standard provide no way to have a NULL character in a
string constant? Is single-quote the only special character?

If I have a system on 7.4 or 8.0 right now, what is the recommended
right way to write string constants with backslashes? I can't use E''
yet, so if I need to include a backslash it seems like there's no chance
it will be forward-compatible.

In the E'' constants, the special characters are only single-quote,
backslash, and NULL right?

Regards,
Jeff Davis

Marko Kreen wrote:
 On Mon, Aug 01, 2005 at 11:58:34AM -0700, Joshua D. Drake wrote:
 
What might this be?
 
 
 Whether to warn on '\' in non-E'' strings.
 
 AFAIK Bruce wants to turn this to 'on' in 8.2.
 


---(end of broadcast)---
TIP 3: Have you checked our extensive FAQ?

   http://www.postgresql.org/docs/faq


Re: [HACKERS] #escape_string_warning = off

2005-08-02 Thread Dennis Bjorklund
On Mon, 1 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.

ps. null character does not have anything to do with the sql NULL. I'm 
sure there is someone somewhere that need this info.

-- 
/Dennis Björklund


---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [HACKERS] #escape_string_warning = off

2005-08-02 Thread Jeff Davis
Dennis Bjorklund wrote:
 On Mon, 1 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?
Does this new attempt at standard-compliant strings allow PostgreSQL to
accept a null character in a string?

 ps. null character does not have anything to do with the sql NULL. I'm 
 sure there is someone somewhere that need this info.
 

Yeah, I was talking about '\0'.

Regards,
Jeff Davis

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [HACKERS] #escape_string_warning = off

2005-08-02 Thread Dennis Bjorklund
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.

Internally pg handles strings as \0-terminated entities which is a bit 
unfortunate but that's what we have. That's why 'abc\0def' became the 
string 'abc'. Most character sets forbid \0 in strings anyway.

-- 
/Dennis Björklund


---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [HACKERS] #escape_string_warning = off

2005-08-02 Thread Jeff Davis
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

---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [HACKERS] #escape_string_warning = off

2005-08-01 Thread Marko Kreen
On Mon, Aug 01, 2005 at 11:58:34AM -0700, Joshua D. Drake wrote:
 What might this be?

Whether to warn on '\' in non-E'' strings.

AFAIK Bruce wants to turn this to 'on' in 8.2.

-- 
marko


---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match