Thread: octet_length operator: what encoding?

octet_length operator: what encoding?

From
Chris Angelico
Date:
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

Re: octet_length operator: what encoding?

From
"Albe Laurenz"
Date:
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