octet_length operator: what encoding?

Started by Chris Angelicoabout 14 years ago2 messagesgeneral
Jump to latest
#1Chris Angelico
rosuav@gmail.com

We have a number of varchar fields and I'm looking to see what the
greatest data length in any is, after UTF-8 encoding. The two-argument
length function appears (I think) to take a byte array, so it's the
opposite of what I'm looking for (give it a UTF-8 encoded string and
the second parameter 'UTF-8' and it'll count characters). The
octet_length function, though, doesn't accept an encoding argument.
What does it use?

ChrisA

#2Laurenz Albe
laurenz.albe@cybertec.at
In reply to: Chris Angelico (#1)
Re: octet_length operator: what encoding?

Chris Angelico wrote:

We have a number of varchar fields and I'm looking to see what the
greatest data length in any is, after UTF-8 encoding. The two-argument
length function appears (I think) to take a byte array, so it's the
opposite of what I'm looking for (give it a UTF-8 encoded string and
the second parameter 'UTF-8' and it'll count characters). The
octet_length function, though, doesn't accept an encoding argument.
What does it use?

You probably want something like that:

test=> SELECT length(convert_to('schön', 'UTF8'));
length
--------
6
(1 row)

Yours,
Laurenz Albe