On Jan14, 2014, at 02:10 , Kevin Grittner <kgrittn@ymail.com> wrote:
> The fact that some
> day some new programmer might not be aware of all business rules,
> or might choose to try to ignore them is the reason you add
> constraints to columns and domains.
Well, for columns and domains that seems easy. We could have
array_has_shape(value anyarray, variadic bounds int4range[])
and
array_has_shape(value anyarray, variadic bounds int4[])
The first returns true if the value has length(bounds) dimensions
and each dimension's bounds match the corresponding range's bound,
where NULL means "arbitrary". The second one requires all lower
bounds to be 1, and checks the upper bounds against the bounds array.
Checking that an array is one-dimensional with lower bound 1 is then
accomplished by
array_has_shape(myarray, int4range(1, NULL))
or simply
array_has_shape(myarray, NULL);
best regards,
Florian Pflug