34.23. element_types
ÐÑедÑÑавление element_types показÑÐ²Ð°ÐµÑ Ð´ÐµÑкÑипÑоÑÑ Ñипов ÑлеменÑов маÑÑива. Ðогда ÑÑÐ¾Ð»Ð±ÐµÑ ÑаблиÑÑ, аÑÑибÑÑ ÑоÑÑавного Ñипа, паÑамеÑÑ Ð¸Ð»Ð¸ ÑезÑлÑÑÐ°Ñ ÑÑнкÑии обÑÑÐ²Ð»ÐµÐ½Ñ Ñ Ñипом маÑÑива, ÑооÑвеÑÑÑвÑÑÑее пÑедÑÑавление инÑоÑмаÑионной ÑÑ
ÐµÐ¼Ñ Ð±ÑÐ´ÐµÑ ÑодеÑжаÑÑ ÑолÑко ARRAY в ÑÑолбÑе data_type. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ Ñипе ÑлеменÑа маÑÑива, можно ÑвÑзаÑÑ ÑооÑвеÑÑÑвÑÑÑее пÑедÑÑавление Ñ Ð´Ð°Ð½Ð½Ñм. ÐапÑимеÑ, пÑоÑмоÑÑеÑÑ ÑÑолбÑÑ ÑаблиÑÑ Ñ Ñипами даннÑÑ
и Ñипами ÑлеменÑов маÑÑива (еÑли ÑÑо пÑименимо) можно Ñак:
SELECT c.column_name, c.data_type, e.data_type AS element_type
FROM information_schema.columns c LEFT JOIN information_schema.element_types e
ON ((c.table_catalog, c.table_schema, c.table_name, 'TABLE', c.dtd_identifier)
= (e.object_catalog, e.object_schema, e.object_name, e.object_type, e.collection_type_identifier))
WHERE c.table_schema = '...' AND c.table_name = '...'
ORDER BY c.ordinal_position;ÐÑо пÑедÑÑавление показÑÐ²Ð°ÐµÑ ÑолÑко Ñе обÑекÑÑ, к коÑоÑÑм Ð¸Ð¼ÐµÐµÑ Ð´Ð¾ÑÑÑп ÑекÑÑий полÑзоваÑелÑ, ÑвлÑÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑем или Ð¸Ð¼ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑе пÑава.
ТаблиÑа 34.21. СÑолбÑÑ element_types
| ÐÐ¼Ñ | Тип даннÑÑ | ÐпиÑание |
|---|---|---|
object_catalog | sql_identifier | ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑодеÑжаÑей обÑекÑ, ÑвÑзаннÑй Ñ Ð¾Ð¿Ð¸ÑÑваемÑм маÑÑивом (вÑегда ÑекÑÑÐ°Ñ Ð±Ð°Ð·Ð°) |
object_schema | sql_identifier | ÐÐ¼Ñ ÑÑ ÐµÐ¼Ñ, ÑодеÑжаÑей обÑекÑ, ÑвÑзаннÑй Ñ Ð¾Ð¿Ð¸ÑÑваемÑм маÑÑивом |
object_name | sql_identifier | ÐÐ¼Ñ Ð¾Ð±ÑекÑа, ÑвÑзанного Ñ Ð¾Ð¿Ð¸ÑÑваемÑм маÑÑивом |
object_type | character_data | Тип обÑекÑа, ÑвÑзанного Ñ Ð¾Ð¿Ð¸ÑÑваемÑм маÑÑивом: TABLE (маÑÑив задейÑÑвован в ÑÑолбÑе ÑÑой ÑаблиÑÑ), USER-DEFINED TYPE (маÑÑив задейÑÑвован в аÑÑибÑÑе ÑоÑÑавного Ñипа), DOMAIN (маÑÑив задейÑÑвован в домене), ROUTINE (маÑÑив задейÑÑвован в Ñипе даннÑÑ
паÑамеÑÑа или ÑезÑлÑÑаÑа ÑÑнкÑии). |
collection_type_identifier | sql_identifier | ÐденÑиÑикаÑÐ¾Ñ Ð´ÐµÑкÑипÑоÑа Ñипа даннÑÑ
Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÑваемого маÑÑива. Ðго можно иÑполÑзоваÑÑ Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñо ÑÑолбÑами dtd_identifier дÑÑгиÑ
пÑедÑÑавлений инÑоÑмаÑионной ÑÑ
емÑ. |
data_type | character_data | Тип даннÑÑ
ÑлеменÑов маÑÑива, еÑли ÑÑо вÑÑÑоеннÑй Ñип, либо USER-DEFINED (в ÑÑом ÑлÑÑае Ñип опÑеделÑеÑÑÑ Ð² udt_name и ÑвÑзаннÑÑ
ÑÑолбÑаÑ
). |
character_maximum_length | cardinal_number | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
character_octet_length | cardinal_number | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
character_set_catalog | sql_identifier | ÐÑноÑиÑÑÑ Ðº ÑÑнкÑионалÑноÑÑи, оÑÑÑÑÑÑвÑÑÑей в Postgres Pro |
character_set_schema | sql_identifier | ÐÑноÑиÑÑÑ Ðº ÑÑнкÑионалÑноÑÑи, оÑÑÑÑÑÑвÑÑÑей в Postgres Pro |
character_set_name | sql_identifier | ÐÑноÑиÑÑÑ Ðº ÑÑнкÑионалÑноÑÑи, оÑÑÑÑÑÑвÑÑÑей в Postgres Pro |
collation_catalog | sql_identifier | ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑодеÑжаÑей пÑавило ÑоÑÑиÑовки Ñипа ÑлеменÑа (ÑÑо вÑегда ÑекÑÑÐ°Ñ Ð±Ð°Ð·Ð°), либо NULL, еÑли ÑÑо пÑавило по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð»Ð¸ Ñип ÑлеменÑа неÑоÑÑиÑÑемÑй |
collation_schema | sql_identifier | ÐÐ¼Ñ ÑÑ ÐµÐ¼Ñ, ÑодеÑжаÑей пÑавило ÑоÑÑиÑовки Ñипа ÑлеменÑа, либо NULL, еÑли ÑÑо пÑавило по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð»Ð¸ Ñип ÑлеменÑа неÑоÑÑиÑÑемÑй |
collation_name | sql_identifier | ÐÐ¼Ñ Ð¿Ñавила ÑоÑÑиÑовки Ñипа ÑлеменÑа, либо NULL, еÑли ÑÑо пÑавило по ÑмолÑÐ°Ð½Ð¸Ñ Ð¸Ð»Ð¸ Ñип ÑлеменÑа неÑоÑÑиÑÑемÑй |
numeric_precision | cardinal_number | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
numeric_precision_radix | cardinal_number | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
numeric_scale | cardinal_number | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
datetime_precision | cardinal_number | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
interval_type | character_data | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
interval_precision | cardinal_number | ÐÑегда NULL, Ñак как ÑÑа инÑоÑмаÑÐ¸Ñ Ð½ÐµÐ¿Ñименима к Ñипам ÑлеменÑов маÑÑива в Postgres Pro |
domain_default | character_data | ÐÑÑ Ð½Ðµ Ñеализовано |
udt_catalog | sql_identifier | ÐÐ¼Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , в коÑоÑой опÑеделÑн Ñип даннÑÑ ÑлеменÑа (вÑегда ÑекÑÑÐ°Ñ Ð±Ð°Ð·Ð°) |
udt_schema | sql_identifier | ÐÐ¼Ñ ÑÑ ÐµÐ¼Ñ, в коÑоÑой опÑеделÑн Ñип даннÑÑ ÑлеменÑа |
udt_name | sql_identifier | ÐÐ¼Ñ Ñипа даннÑÑ ÑлеменÑа |
scope_catalog | sql_identifier | ÐÑноÑиÑÑÑ Ðº ÑÑнкÑионалÑноÑÑи, оÑÑÑÑÑÑвÑÑÑей в Postgres Pro |
scope_schema | sql_identifier | ÐÑноÑиÑÑÑ Ðº ÑÑнкÑионалÑноÑÑи, оÑÑÑÑÑÑвÑÑÑей в Postgres Pro |
scope_name | sql_identifier | ÐÑноÑиÑÑÑ Ðº ÑÑнкÑионалÑноÑÑи, оÑÑÑÑÑÑвÑÑÑей в Postgres Pro |
maximum_cardinality | cardinal_number | ÐÑегда NULL, Ñак как маÑÑÐ¸Ð²Ñ Ð¸Ð¼ÐµÑÑ Ð½ÐµÐ¾Ð³ÑаниÑеннÑÑ Ð¼Ð°ÐºÑималÑнÑÑ ÑмкоÑÑÑ Ð² Postgres Pro |
dtd_identifier | sql_identifier | ÐденÑиÑикаÑÐ¾Ñ Ð´ÐµÑкÑипÑоÑа Ñипа даннÑÑ ÑлеменÑа. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð±ÐµÑполезен. |