"Hugh Mandeville" <[EMAIL PROTECTED]> writes:
> "Alex Pilosov" <[EMAIL PROTECTED]> wrote in message
>> The rules for escaping things you want to throw at it are tricky though.
>> (and same for unescaping things you get back from database).

> test=# INSERT INTO log (data) VALUES ('special chars \n \001 \002');
> INSERT 61651 1
> test=# INSERT INTO log (data) VALUES ('null \000 null');
> INSERT 61652 1
> test=# SELECT octet_length(data), data FROM log;
>  octet_length |             data
> --------------+------------------------------
>            10 | plain text
>            19 | special chars \012 \001 \002
>             5 | null
> (3 rows)

He did say the rules for escaping things are tricky ;-).  You need to
double the backslashes, because interpretation of the string literal
takes off one level of backslashing before bytea ever sees it:

regression=# INSERT INTO log (data) VALUES ('null \\000 null');
INSERT 273181 1
regression=# SELECT octet_length(data), data FROM log;
 octet_length |             data
--------------+------------------------------
           10 | plain text
           19 | special chars \012 \001 \002
            5 | null
           11 | null \000 null
(4 rows)


                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 3: 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

Reply via email to