空の配列をテストしようとしています。 array_length
NULL
の後ろの推論は0次元配列なので、私は理解していますが、なぜarray_ndims(array[]::int array)
は0
ではなく、NULL
ですか?なぜ `array_ndims(array [])`はNULLを生成しますか?
/* Sanity check: does it look like an array at all? */
if (AARR_NDIM(v) <= 0 || AARR_NDIM(v) > MAXDIM)
PG_RETURN_NULL();
あなたは単に< 0
に<= 0
を変更、このために独自のC関数を書くことができます:それは0を返すことは決してありませんように
のhttp:/ /www.postgresql-archive.org/array-ndims-never-returns-zero-td5998579.html @Lukaszの回答を受け入れてください - それは正しいもの(少なくとも今日)で、実際には(少なくとも今日は)正しく文書化されていません。 –