From: | Vlad Romascanu <vromascanu(at)accurev(dot)com> |
---|---|
To: | pgsql-general(at)postgresql(dot)org |
Subject: | converting E'C:\\something' to bytea |
Date: | 2011-03-16 15:04:28 |
Message-ID: | AANLkTikzasZXdCjMMNufumpBgZyCR+MsJOmOdbccOGZw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Hello,
Is there any way of casting (reinterpreting) a varchar/text field
containing arbitrary backslashes to bytea without making an escaped
copy of the varchar/text first? In the examples below I am using a
constant E'...' for clarity, the value normally comes from a
varchar/text column in a table but the end behaviour is the same.
E.g.:
1) SELECT E'C:\\something'::bytea
ERROR: invalid input syntax for type bytea
--> essentially like calling decode(); bad in this case because of
the naked backslash!
2) SELECT replace(E'C:\\something', E'\\', E'\\\\')::bytea
--> works OK, but bad performance-wise because needed to make an
escaped copy of the string which is inefficient
3) CREATE DOMAIN my_varlena AS text;
CREATE CAST (my_varlena AS bytea) WITHOUT FUNCTION;
SELECT E'C:\\something'::my_varlena::bytea
ERROR: invalid input syntax for type bytea
--> WHY?
Thanks,
V.
From | Date | Subject | |
---|---|---|---|
Next Message | Davenport, Julie | 2011-03-16 15:49:24 | query taking much longer since Postgres 8.4 upgrade |
Previous Message | Merlin Moncure | 2011-03-16 14:54:34 | Re: equivalent of mysql's SET type? |