I know from the docs that array elements can't have a null value. It appears,
therefore, that Postgres fills in missing elements with zero-length strings,
the int or numeric value zero, etc. appropriate to the data type. Is my
interpretation correct and is this documented/likely to continue in future
versions?
My test (extraneous lines removed):
create table foo (bar text[]);
insert into foo values ('{"a","b","c"}');
insert into foo values ('{,,,"4"}');
select * from foo;
{a,b,c}
{"","","",4}
select '-' || bar[1] || '-' from foo;
-a-
--
select count(*) from foo where bar[1] = '';
1
Cheers,
Steve