Если у вас есть имя таблицы и столбца (но не имя типа), используйте это:
SELECT pg_enum.enumlabel
FROM pg_type
JOIN pg_enum ON pg_enum.enumtypid = pg_type.oid
JOIN information_schema.columns ON information_schema.columns.udt_name =
pg_type.typname
WHERE pg_type.typtype = 'e' AND
table_name = $1 AND column_name = $2 ORDER BY pg_enum.enumsortorder
Если вы используете enum_range
в столбце (в отличие от других ответов, которые использовали его в типе), он будет возвращать данные для каждой существующей строки, а это не то, что вам нужно. Поэтому используйте приведенный выше запрос.