For det første afspejles dimensionaliteten af et array ikke i datatypen i Postgres. Syntaksen integer[][]
tolereres, men det er egentlig bare integer[]
internt.
Læs manualen her.
Det betyder, at dimensioner kan variere inden for den samme datatype (den samme tabelkolonne).
For at få faktiske dimensioner af en bestemt matrix værdi :
SELECT array_dims(my_arr); -- [1:2][1:3]
Eller for bare at få antallet af dimensioner:
SELECT array_ndims(my_arr); -- 2
Der er flere array-funktioner til lignende behov. Se tabel over matrixfunktioner i manualen.
Relateret:
Hvis du har brug for at håndhæve bestemte dimensioner i en kolonne, skal du tilføje en CHECK
begrænsning
. Sådan håndhæves 2-dimensionelle arrays:
ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);