There are some functions called ...length, but only array_length returns NULL on empty array, why ?
select array_length('{}'::text[],1), -->NULL jsonb_array_length('[]'), -->0 bit_length(''), -->0 octet_length(''), -->0 length(''), -->0 char_length(''), -->0 length(B''); -->0 I know, it is documented, but the question is, why does it work differently ? array_length ( anyarray, integer ) → integer Returns the length of the requested array dimension. (Produces NULL instead of 0 for empty or missing array dimensions.) array_length(array[1,2,3], 1) → 3 array_length(array[]::int[], 1) → NULL array_length(array['text'], 2) → NULL