On Tue, 2007-09-11 at 14:48 -0400, Tom Lane wrote:
> Jeff Davis <[EMAIL PROTECTED]> writes:
> > On Mon, 2007-09-10 at 23:20 -0400, Tom Lane wrote:
> >> It might work the way you are expecting if the database uses SQL_ASCII
> >> encoding and C locale --- and I'd be fine with allowing convert() only
> >> when the database encoding is SQL_ASCII.
> > I prefer this option.
> I think really the technically cleanest solution would be to make
> convert() return bytea instead of text; then we'd not have to put
> restrictions on what encoding or locale it's working inside of.
> However, it's not clear to me whether there are valid usages that
> that would foreclose. Tatsuo mentioned length() but bytea has that.
Once it's in bytea, you can make operators to achieve the old
functionality. If I understood correctly, he was making a backwards
compatibility argument, not a functionality argument. I can't think of a
problem without a workaround, but maybe there are some.
> What I think we'd need to have a complete solution is
> convert(text, name) returns bytea
> -- convert from DB encoding to arbitrary encoding
> convert(bytea, name, name) returns bytea
> -- convert between any two encodings
> convert(bytea, name) returns text
> -- convert from arbitrary encoding to DB encoding
> The second and third would need to do a verify step before
> converting, of course.
I like it.
---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?