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. 

Regards,
        Jeff Davis


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to