diff options
| author | Joe Conway | 2003-11-30 20:53:43 +0000 |
|---|---|---|
| committer | Joe Conway | 2003-11-30 20:53:43 +0000 |
| commit | 10b84be9b347bb6ab587719301bbb72ea5f5c78a (patch) | |
| tree | 11d0483abe98818fb38acac75d03a81d295dd39f /doc/src/sgml | |
| parent | 1adcaadc2f326f4873581fe56d424f6e2729e654 (diff) | |
Make PQescapeBytea and byteaout consistent with each other, and
octal escape all octets outside the range 0x20 to 0x7e. This fixes
the problem pointed out by Sergey Yatskevich here:
http://archives.postgresql.org/pgsql-bugs/2003-11/msg00140.php
Diffstat (limited to 'doc/src/sgml')
| -rw-r--r-- | doc/src/sgml/datatype.sgml | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/doc/src/sgml/datatype.sgml b/doc/src/sgml/datatype.sgml index 676dcba1bbf..11d4c5921aa 100644 --- a/doc/src/sgml/datatype.sgml +++ b/doc/src/sgml/datatype.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.128.2.3 2003/11/16 20:29:34 tgl Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/datatype.sgml,v 1.128.2.4 2003/11/30 20:53:43 joe Exp $ --> <chapter id="datatype"> @@ -1076,9 +1076,10 @@ SELECT b, char_length(b) FROM test2; strings are distinguished from characters strings by two characteristics: First, binary strings specifically allow storing octets of value zero and other <quote>non-printable</quote> - octets. Second, operations on binary strings process the actual - bytes, whereas the encoding and processing of character strings - depends on locale settings. + octets (defined as octets outside the range 32 to 126). + Second, operations on binary strings process the actual bytes, + whereas the encoding and processing of character strings depends + on locale settings. </para> <para> @@ -1131,14 +1132,25 @@ SELECT b, char_length(b) FROM test2; <entry><literal>\\</literal></entry> </row> + <row> + <entry>0 to 31 and 127 to 255</entry> + <entry><quote>non-printable</quote> octets</entry> + <entry><literal>'\\<replaceable>xxx'</></literal> (octal value)</entry> + <entry><literal>SELECT '\\001'::bytea;</literal></entry> + <entry><literal>\001</literal></entry> + </row> + </tbody> </tgroup> </table> <para> - Note that the result in each of the examples in <xref linkend="datatype-binary-sqlesc"> was exactly one - octet in length, even though the output representation of the zero - octet and backslash are more than one character. + The requirement to escape <quote>non-printable</quote> octets actually + varies depending on locale settings. In some instances you can get away + with leaving them unescaped. Note that the result in each of the examples + in <xref linkend="datatype-binary-sqlesc"> was exactly one octet in + length, even though the output representation of the zero octet and + backslash are more than one character. </para> <para> @@ -1206,7 +1218,7 @@ SELECT b, char_length(b) FROM test2; <row> <entry>32 to 126</entry> <entry><quote>printable</quote> octets</entry> - <entry>ASCII representation</entry> + <entry>client character set representation</entry> <entry><literal>SELECT '\\176'::bytea;</literal></entry> <entry><literal>~</literal></entry> </row> |
