49.62. pg_type
РкаÑалоге pg_type Ñ
ÑаниÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑипаÑ
даннÑÑ
. ÐазовÑе ÑÐ¸Ð¿Ñ Ð¸ ÑипÑ-пеÑеÑиÑÐ»ÐµÐ½Ð¸Ñ (ÑкалÑÑнÑе ÑипÑ) ÑоздаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹ CREATE TYPE, а Ð´Ð¾Ð¼ÐµÐ½Ñ â командой CREATE DOMAIN. ÐÑи добавлении лÑбой ÑаблиÑÑ Ð² Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ
авÑомаÑиÑеÑки ÑоздаÑÑÑÑ ÑоÑÑавной Ñип, пÑедÑÑавлÑÑÑий ÑÑÑÑкÑÑÑÑ ÑÑÑоки ÑаблиÑÑ. Также возможно ÑоздаваÑÑ ÑоÑÑавнÑе ÑÐ¸Ð¿Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ CREATE TYPE AS.
ТаблиÑа 49.62. СÑолбÑÑ pg_type
| ÐÐ¼Ñ | Тип | СÑÑлки | ÐпиÑание |
|---|---|---|---|
oid | oid |  | ÐденÑиÑикаÑÐ¾Ñ ÑÑÑоки (ÑкÑÑÑÑй аÑÑибÑÑ; должен вÑбиÑаÑÑÑÑ Ñвно) |
typname | name |  | ÐÐ¼Ñ Ñипа даннÑÑ |
typnamespace | oid | | OID пÑоÑÑÑанÑÑва имÑн, ÑодеÑжаÑего ÑÑÐ¾Ñ Ñип |
typowner | oid | | ÐÐ»Ð°Ð´ÐµÐ»ÐµÑ Ñипа |
typlen | int2 |  | ÐÐ»Ñ Ñипа ÑикÑиÑованного ÑазмеÑа в typlen задаÑÑÑÑ ÑиÑло Ð±Ð°Ð¹Ñ Ð²Ð¾ внÑÑÑеннем пÑедÑÑавлении Ñипа. Ðо Ð´Ð»Ñ Ñипов пеÑеменной длинÑ, typlen бÑÐ´ÐµÑ Ð¾ÑÑиÑаÑелÑнÑм. ÐнаÑение -1 обознаÑÐ°ÐµÑ Ñип «varlena» (он ÑодеÑÐ¶Ð¸Ñ Ð¼Ð°Ñинное Ñлово, опÑеделÑÑÑее длинÑ), а -2 обознаÑÐ°ÐµÑ ÑÑÑÐ¾ÐºÑ Ð² ÑÑиле C, оканÑиваÑÑÑÑÑÑ Ð½ÑлÑм. |
typbyval | bool |  | Ðоле typbyval опÑеделÑеÑ, бÑдÑÑ Ð»Ð¸ внÑÑÑенние пÑоÑедÑÑÑ Ð¿ÐµÑедаваÑÑ Ð¿ÐµÑеменнÑе ÑÑого Ñипа по знаÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ по ÑÑÑлке. ÐÐ¾Ð»Ñ typbyval лÑÑÑе пÑиÑвоиÑÑ false, еÑли длина typlen не Ñавна 1, 2 или 4 (либо 8, на 64-биÑнÑÑ
маÑинаÑ
). Ð¢Ð¸Ð¿Ñ Ð¿ÐµÑеменной Ð´Ð»Ð¸Ð½Ñ Ð²Ñегда пеÑедаÑÑÑÑ Ð¿Ð¾ ÑÑÑлке. ÐамеÑÑÑе, ÑÑо typbyval Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ false, даже еÑли ÑÐ°Ð·Ð¼ÐµÑ Ñипа позволÑÐµÑ Ð¿ÐµÑедаÑÑ Ð¿Ð¾ знаÑениÑ. |
typtype | char |  | Ðоле typtype пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð·Ð½Ð°Ñение b Ð´Ð»Ñ Ð±Ð°Ð·Ð¾Ð²Ð¾Ð³Ð¾ Ñипа (base), c Ð´Ð»Ñ ÑоÑÑавного (composite), Ñо еÑÑÑ Ñипа ÑÑÑоки ÑаблиÑÑ, d Ð´Ð»Ñ Ð´Ð¾Ð¼ÐµÐ½Ð° (domain), e Ð´Ð»Ñ Ð¿ÐµÑеÑиÑÐ»ÐµÐ½Ð¸Ñ (enum), p Ð´Ð»Ñ Ð¿ÑевдоÑипа (pseudo-type) или r Ð´Ð»Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° (range). См. Ñакже typrelid и typbasetype. |
typcategory | char |  | Рполе typcategory задаÑÑÑÑ Ð¿ÑоизволÑÐ½Ð°Ñ ÐºÐ»Ð°ÑÑиÑикаÑÐ¸Ñ Ñипов даннÑÑ
, на оÑнове коÑоÑой анализаÑÐ¾Ñ Ð·Ð°Ð¿ÑоÑов Ð¼Ð¾Ð¶ÐµÑ Ð¾Ð¿ÑеделиÑÑ, какие неÑвнÑе пÑÐ¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Â«Ð¿ÑедпоÑиÑаемÑми». См. ТаблиÑÑ 49.63. |
typispreferred | bool |  | True, еÑли ÑÑÐ¾Ñ Ñип ÑвлÑеÑÑÑ Ð¿ÑедпоÑиÑаемÑм ÑелевÑм Ñипом в Ñвоей каÑегоÑии (typcategory) |
typisdefined | bool |  | True, еÑли Ñип опÑеделÑн, и false, еÑли ÑÑо Ñип-загоÑовка Ð´Ð»Ñ ÐµÑÑ Ð½Ðµ опÑеделÑнного Ñипа. Ðогда знаÑение typisdefined â false, можно полагаÑÑÑÑ ÑолÑко на заданное имÑ, пÑоÑÑÑанÑÑво имÑн и OID Ñипа. |
typdelim | char |  | Символ, ÑазделÑÑÑий два знаÑÐµÐ½Ð¸Ñ ÑÑого Ñипа пÑи ÑазбоÑе вводимого маÑÑива. ÐамеÑÑÑе, ÑÑо ÑÑÐ¾Ñ ÑазделиÑÐµÐ»Ñ ÑвÑзÑваеÑÑÑ Ñ Ñипом даннÑÑ ÑлеменÑа маÑÑива, а не Ñ Ñипом Ñамого маÑÑива. |
typrelid | oid | | ÐÑли ÑÑо ÑоÑÑавной Ñип (Ñм. typtype), ÑÑÐ¾Ñ ÑÑÐ¾Ð»Ð±ÐµÑ ÑказÑÐ²Ð°ÐµÑ Ð½Ð° запиÑÑ pg_class, опÑеделÑÑÑÑÑ ÑооÑвеÑÑÑвÑÑÑÑÑ ÑаблиÑÑ. (ÐÐ»Ñ Ð½ÐµÐ·Ð°Ð²Ð¸Ñимого ÑоÑÑавного Ñипа запиÑÑ Ð² pg_class на Ñамом деле не пÑедÑÑавлÑÐµÑ ÑаблиÑÑ, но она вÑÑ Ñавно нÑжна Ð´Ð»Ñ ÑвÑзÑÐ²Ð°Ð½Ð¸Ñ Ñ Ð·Ð°Ð¿Ð¸ÑÑми pg_attribute ÑÑого Ñипа.) ÐÐ»Ñ Ð½Ðµ ÑоÑÑавнÑÑ
Ñипов ÑодеÑÐ¶Ð¸Ñ Ð½Ð¾Ð»Ñ. |
typelem | oid | | ÐÑли знаÑение typelem не 0, оно ÑказÑÐ²Ð°ÐµÑ Ð½Ð° дÑÑгÑÑ ÑÑÑÐ¾ÐºÑ Ð² pg_type. Ð ÑÑом ÑлÑÑае к ÑекÑÑÐµÐ¼Ñ ÑÐ¸Ð¿Ñ Ð¼Ð¾Ð¶Ð½Ð¾ обÑаÑаÑÑÑÑ Ð¿Ð¾ индекÑÑ, как к маÑÑивÑ, и полÑÑаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ñипа typelem. «ÐаÑÑоÑÑий» Ñип маÑÑива Ð¸Ð¼ÐµÐµÑ Ð¿ÐµÑеменнÑÑ Ð´Ð»Ð¸Ð½Ñ (typlen = -1), но Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ
Ñипов ÑикÑиÑованной Ð´Ð»Ð¸Ð½Ñ (typlen > 0) Ñакже опÑеделÑеÑÑÑ typelem, напÑимеÑ, Ð´Ð»Ñ name и point. ÐÑли Ð´Ð»Ñ Ñипа ÑикÑиÑованной Ð´Ð»Ð¸Ð½Ñ Ð¾Ð¿ÑеделÑн typelem, его внÑÑÑенним пÑедÑÑавлением бÑÐ´ÐµÑ Ð½ÐµÐºÐ¾ÑоÑое колиÑеÑÑво знаÑений Ñипа typelem, без дÑÑгиÑ
даннÑÑ
. Ð¢Ð¸Ð¿Ñ Ð¼Ð°ÑÑивов пеÑеменной Ð´Ð»Ð¸Ð½Ñ Ñакже ÑодеÑÐ¶Ð°Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾Ðº, опÑеделÑемÑй подпÑогÑаммами маÑÑива. |
typarray | oid | | ÐÑли поле typarray не Ñавно 0, оно ÑказÑÐ²Ð°ÐµÑ Ð½Ð° дÑÑгÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð² pg_type, опиÑÑваÑÑÑÑ Â«Ð½Ð°ÑÑоÑÑий» Ñип маÑÑива, в коÑоÑой ÑÑÐ¾Ñ Ñип бÑÐ´ÐµÑ ÑлеменÑом |
typinput | regproc | | ФÑнкÑÐ¸Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð° (из ÑекÑÑового ÑоÑмаÑа) |
typoutput | regproc | | ФÑнкÑÐ¸Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñвода (в ÑекÑÑовÑй ÑоÑмаÑ) |
typreceive | regproc | | ФÑнкÑÐ¸Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ð²Ð¾Ð´Ð° (из двоиÑного ÑоÑмаÑа), либо 0, еÑли ÐµÑ Ð½ÐµÑ |
typsend | regproc | | ФÑнкÑÐ¸Ñ Ð¿ÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñвода (в двоиÑнÑй ÑоÑмаÑ), либо 0, еÑли ÐµÑ Ð½ÐµÑ |
typmodin | regproc | | ФÑнкÑÐ¸Ñ Ð²Ð²Ð¾Ð´Ð° модиÑикаÑоÑа Ñипа, либо 0, еÑли Ñип не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¼Ð¾Ð´Ð¸ÑикаÑоÑÑ |
typmodout | regproc | | ФÑнкÑÐ¸Ñ Ð²Ñвода модиÑикаÑоÑа Ñипа, либо 0 Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑандаÑÑного ÑоÑмаÑа |
typanalyze | regproc | | ÐеÑÑандаÑÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ ANALYZE, либо 0 Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑандаÑÑной ÑÑнкÑии |
typalign | char |  | ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÐозможнÑе знаÑениÑ:
ÐÑимеÑаниеÐÐ»Ñ Ñипов, иÑполÑзÑемÑÑ
в ÑиÑÑемнÑÑ
ÑаблиÑаÑ
, важно, ÑÑÐ¾Ð±Ñ ÑÐ°Ð·Ð¼ÐµÑ Ð¸ вÑÑавнивание, опÑеделÑннÑе в |
typstorage | char |  | ÐнаÑение
ÐамеÑÑÑе, ÑÑо ÑÑолбÑÑ |
typnotnull | bool |  | Ðоле |
typbasetype | oid | | ÐÑли ÑÑо домен (Ñм. |
typtypmod | int4 |  | ÐÐ¾Ð¼ÐµÐ½Ñ Ð¸ÑполÑзÑÑÑ |
typndims | int4 |  | ÐнаÑение |
typcollation | oid | | ÐнаÑение |
typdefaultbin | pg_node_tree |  | ÐÑли поле |
typdefault | text |  | Ðоле |
typacl | aclitem[] |  | ÐÑава доÑÑÑпа; за подÑобноÑÑÑми обÑаÑиÑеÑÑ Ðº опиÑÐ°Ð½Ð¸Ñ GRANT и REVOKE |
РТаблиÑе 49.63 пеÑеÑиÑлÑÑÑÑÑ Ð¾Ð¿ÑеделÑннÑе в ÑиÑÑеме знаÑÐµÐ½Ð¸Ñ typcategory. ÐÑли ÑÑÐ¾Ñ ÑпиÑок бÑÐ´ÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÑÑÑÑÑ Ð² бÑдÑÑем, в него бÑдÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑÑÑ Ñоже бÑÐºÐ²Ñ ASCII в веÑÑ
нем ÑегиÑÑÑе. ÐÑе дÑÑгие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ASCII заÑезеÑвиÑÐ¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ ÐºÐ°ÑегоÑий, опÑеделÑемÑÑ
полÑзоваÑелÑми.
ТаблиÑа 49.63. ÐÐ¾Ð´Ñ typcategory
| Ðод | ÐаÑегоÑÐ¸Ñ |
|---|---|
A | Ð¢Ð¸Ð¿Ñ Ð¼Ð°ÑÑивов |
B | ÐогиÑеÑкие ÑÐ¸Ð¿Ñ |
C | СоÑÑавнÑе ÑÐ¸Ð¿Ñ |
D | Ð¢Ð¸Ð¿Ñ Ð´Ð°ÑÑ/вÑемени |
E | ТипÑ-пеÑеÑиÑÐ»ÐµÐ½Ð¸Ñ |
G | ÐеомеÑÑиÑеÑкие ÑÐ¸Ð¿Ñ |
I | ТипÑ, опиÑÑваÑÑие ÑеÑевÑе адÑеÑа |
N | ЧиÑловÑе ÑÐ¸Ð¿Ñ |
P | ÐÑевдоÑÐ¸Ð¿Ñ |
R | ÐиапазоннÑе ÑÐ¸Ð¿Ñ |
S | СÑÑоковÑе ÑÐ¸Ð¿Ñ |
T | ÐнÑеÑвалÑнÑе ÑÐ¸Ð¿Ñ |
U | ÐолÑзоваÑелÑÑкие ÑÐ¸Ð¿Ñ |
V | Ð¢Ð¸Ð¿Ñ Ð±Ð¸ÑовÑÑ ÑÑÑок |
X | ÐеизвеÑÑнÑй Ñип (unknown) |