Re: [BUGS] BUG #4007: chr(0) doesn't work anymore - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: [BUGS] BUG #4007: chr(0) doesn't work anymore
Date
Msg-id 200803031711.m23HBht20068@momjian.us
Whole thread Raw
Responses Re: [BUGS] BUG #4007: chr(0) doesn't work anymore  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-patches
Tom Lane wrote:
> Steve Clark <sclark@netwolves.com> writes:
> > I'm not sure I understand what you mean about TEXT being null-safe.
> > What are the issues, and why was
> > it supported for years and now abruptly changed.
>
> It never was supported, we are simply plugging a hole that let you
> create a text value that would be likely to malfunction in subsequent
> use.

Seems we never documented that chr(0) is not supported.  I have applied
the following doc patch to CVS HEAD and 8.3.X.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://postgres.enterprisedb.com

  + If your life is a hard drive, Christ can be your backup. +
Index: doc/src/sgml/func.sgml
===================================================================
RCS file: /cvsroot/pgsql/doc/src/sgml/func.sgml,v
retrieving revision 1.420
diff -c -c -r1.420 func.sgml
*** doc/src/sgml/func.sgml    26 Feb 2008 15:32:30 -0000    1.420
--- doc/src/sgml/func.sgml    3 Mar 2008 17:07:22 -0000
***************
*** 1340,1346 ****
          Character with the given code. For <acronym>UTF8</acronym> the
          argument is treated as a Unicode code point. For other multibyte
          encodings the argument must designate a strictly
!         <acronym>ASCII</acronym> character.
         </entry>
         <entry><literal>chr(65)</literal></entry>
         <entry><literal>A</literal></entry>
--- 1340,1347 ----
          Character with the given code. For <acronym>UTF8</acronym> the
          argument is treated as a Unicode code point. For other multibyte
          encodings the argument must designate a strictly
!         <acronym>ASCII</acronym> character.  The NULL (0) character is not
!         allowed because text data types cannot reliably store such bytes.
         </entry>
         <entry><literal>chr(65)</literal></entry>
         <entry><literal>A</literal></entry>

pgsql-patches by date:

Previous
From: kenneth d'souza
Date:
Subject: Reference by output in : \d
Next
From: Bruce Momjian
Date:
Subject: Re: CopyReadAttributesCSV optimization