powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как получить описание поля составного типа, зная имя типа и имя поля?
6 сообщений из 6, страница 1 из 1
Как получить описание поля составного типа, зная имя типа и имя поля?
    #39254433
shaposh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CREATE SCHEMA example AUTHORIZATION postgres;
CREATE TYPE example.composite_type AS (a integer, b integer, c integer);
ALTER TYPE example.composite_type OWNER TO postgres;
COMMENT ON COLUMN example.composite_type.a IS 'Описание 1';
COMMENT ON COLUMN example.composite_type.b IS 'Описание 2';
COMMENT ON COLUMN example.composite_type.c IS 'Описание 3';


Как запросом зная имя типа (example.composite_type)
и имя поля (a)
получить его описание - 'Описание 1'
...
Рейтинг: 0 / 0
Как получить описание поля составного типа, зная имя типа и имя поля?
    #39254446
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shaposh,

поля обычно в pg_attribute:

Код: sql
1.
2.
3.
4.
5.
6.
SELECT * FROM pg_attribute
WHERE attrelid IN (SELECT oid FROM pg_class
		where relkind='c'
		AND relname = 'composite_type'
	)
 limit 10



а описания где--то тут:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select * from pg_description 
WHERE
	--classoid
	objoid
	IN (SELECT oid FROM pg_class
		where relkind='c'
		AND relname = 'composite_type'
	)
limit 10
...
Рейтинг: 0 / 0
Как получить описание поля составного типа, зная имя типа и имя поля?
    #39254451
shaposh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБО
...
Рейтинг: 0 / 0
Как получить описание поля составного типа, зная имя типа и имя поля?
    #39254454
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Количество букв можно сократить, если вместо:
Код: sql
1.
2.
3.
4.
5.
SELECT * FROM pg_attribute
WHERE attrelid IN (SELECT oid FROM pg_class
		where relkind='c'
		AND relname = 'composite_type'
	)


писать
Код: sql
1.
2.
SELECT * FROM pg_attribute
WHERE attrelid = 'composite_type'::regclass
...
Рейтинг: 0 / 0
Как получить описание поля составного типа, зная имя типа и имя поля?
    #39254468
shaposh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну вот какая то такая заготовка для функции получается
Работает.

SELECT description
FROM pg_description
WHERE pg_description.objoid =
(SELECT oid
FROM pg_class
WHERE relkind='c'
AND relname = <ИМЯ ТИПА>)
AND pg_description.objsubid =
(SELECT attnum
FROM pg_attribute
WHERE attrelid IN (SELECT oid FROM pg_class where attname=<ИМЯ ПОЛЯ ТИПА> AND relname = <ИМЯ ТИПА>)
)
...
Рейтинг: 0 / 0
Как получить описание поля составного типа, зная имя типа и имя поля?
    #39254482
shaposh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну или как то так посимпатичней.
Может кому пригодиться...

Код: sql
1.
2.
3.
4.
5.
6.
7.
SELECT pg_attribute.attnum
     , pg_attribute.attname
     , pg_description.description
  FROM pg_attribute
         left join pg_description on
             pg_description.objoid = pg_attribute.attrelid and pg_description.objsubid = pg_attribute.attnum  
 WHERE attrelid = (SELECT oid FROM pg_class where relname = :in_composite_type_name)



Всем спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как получить описание поля составного типа, зная имя типа и имя поля?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]