Upper and lower bound of a specified array dimension
postgres=# postgres=# CREATE TABLE sal_emp ( postgres(# name text, postgres(# pay_by_quarter integer[], postgres(# schedule text[][] postgres(# ); CREATE TABLE postgres=# postgres=# INSERT INTO sal_emp postgres-# VALUES ('Bill', postgres(# ARRAY[10000, 10000, 10000, 10000], postgres(# ARRAY[['meeting', 'lunch'], ['training', 'presentation']]); INSERT 0 1 postgres=# postgres=# INSERT INTO sal_emp postgres-# VALUES ('Carol', postgres(# ARRAY[20000, 25000, 25000, 25000], postgres(# ARRAY[['breakfast', 'consulting'], ['meeting', 'lunch']]); INSERT 0 1 postgres=# postgres=# SELECT * FROM sal_emp; name | pay_by_quarter | schedule -------+---------------------------+------------------------------------------- Bill | {10000,10000,10000,10000} | {{meeting,lunch},{training,presentation}} Carol | {20000,25000,25000,25000} | {{breakfast,consulting},{meeting,lunch}} (2 rows) postgres=# postgres=# -- Upper and lower bound of a specified array dimension postgres=# postgres=# SELECT array_upper(schedule, 1) FROM sal_emp WHERE name = 'Carol'; array_upper ------------- 2 (1 row) postgres=# postgres=# postgres=# drop table sal_emp; DROP TABLE postgres=# postgres=#