| ÐокÑменÑаÑÐ¸Ñ Ð¿Ð¾ PostgreSQL 9.4.1 | |||
|---|---|---|---|
| ÐÑед. | УÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑÑе | Ðлава 9. ФÑнкÑии и опеÑаÑоÑÑ | След. |
9.12. ФÑнкÑии и опеÑаÑоÑÑ Ð´Ð»Ñ ÑабоÑÑ Ñ ÑеÑевÑми адÑеÑами
РТаблиÑа 9-34 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ Ð¾Ð¿ÐµÑаÑоÑÑ, ÑабоÑаÑÑие Ñ Ñипами cidr и inet. ÐпеÑаÑоÑÑ <<, <<=, >>, >>= и && пÑовеÑÑÑÑ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´ÑеÑей, ÑаÑÑмаÑÑÐ¸Ð²Ð°Ñ ÑолÑко биÑÑ ÑеÑи в Ð¾Ð±Ð¾Ð¸Ñ Ð°Ð´ÑеÑÐ°Ñ (игноÑиÑÑÑ Ð±Ð¸ÑÑ Ñзлов) и опÑеделÑÑ, иденÑиÑна ли одна ÑеÑÑ Ð´ÑÑгой или ÐµÑ Ð¿Ð¾Ð´ÑеÑи.
ТаблиÑа 9-34. ÐпеÑаÑоÑÑ Ð´Ð»Ñ Ñипов cidr и inet
| ÐпеÑаÑÐ¾Ñ | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ |
|---|---|---|
| < | менÑÑе | inet '192.168.1.5' < inet '192.168.1.6' |
| <= | менÑÑе или Ñавно | inet '192.168.1.5' <= inet '192.168.1.5' |
| = | Ñавно | inet '192.168.1.5' = inet '192.168.1.5' |
| >= | болÑÑе или Ñавно | inet '192.168.1.5' >= inet '192.168.1.5' |
| > | болÑÑе | inet '192.168.1.5' > inet '192.168.1.4' |
| <> | не Ñавно | inet '192.168.1.5' <> inet '192.168.1.4' |
| << | ÑодеÑжиÑÑÑ Ð² | inet '192.168.1.5' << inet '192.168.1/24' |
| <<= | Ñавно или ÑодеÑжиÑÑÑ Ð² | inet '192.168.1/24' <<= inet '192.168.1/24' |
| >> | ÑодеÑÐ¶Ð¸Ñ | inet '192.168.1/24' >> inet '192.168.1.5' |
| >>= | Ñавно или ÑодеÑÐ¶Ð¸Ñ | inet '192.168.1/24' >>= inet '192.168.1/24' |
| && | ÑодеÑÐ¶Ð¸Ñ Ð¸Ð»Ð¸ ÑодеÑжиÑÑÑ Ð² | inet '192.168.1/24' && inet '192.168.1.80/28' |
| ~ | биÑовÑй NOT | ~ inet '192.168.1.6' |
| & | биÑовÑй AND | inet '192.168.1.6' & inet '0.0.0.255' |
| | | биÑовÑй OR | inet '192.168.1.6' | inet '0.0.0.255' |
| + | Ñложение | inet '192.168.1.6' + 25 |
| - | вÑÑиÑание | inet '192.168.1.43' - 36 |
| - | вÑÑиÑание | inet '192.168.1.43' - inet '192.168.1.19' |
РТаблиÑе 9-35 пеÑеÑиÑÐ»ÐµÐ½Ñ ÑÑнкÑии, ÑабоÑаÑÑие Ñ Ñипами cidr и inet. ФÑнкÑии abbrev, host и text пÑедназнаÑÐµÐ½Ñ Ð² оÑновном Ð´Ð»Ñ Ð²Ñвода даннÑÑ
в алÑÑеÑнаÑивнÑÑ
ÑоÑмаÑаÑ
.
ТаблиÑа 9-35. ФÑнкÑии Ð´Ð»Ñ Ñипов cidr и inet
| ФÑнкÑÐ¸Ñ | Тип ÑезÑлÑÑаÑа | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ | РезÑлÑÑÐ°Ñ |
|---|---|---|---|---|
abbrev(inet) | text | вÑвод адÑÐµÑ Ð² кÑаÑком ÑекÑÑовом виде | abbrev(inet '10.1.0.0/16') | 10.1.0.0/16 |
abbrev(cidr) | text | вÑвод адÑÐµÑ Ð² кÑаÑком ÑекÑÑовом виде | abbrev(cidr '10.1.0.0/16') | 10.1/16 |
broadcast(inet) | inet | ÑиÑоковеÑаÑелÑнÑй адÑÐµÑ ÑеÑи | broadcast('192.168.1.5/â24') | 192.168.1.255/â24 |
family(inet) | int | возвÑаÑÐ°ÐµÑ ÑемейÑÑво адÑеÑа; 4 Ð´Ð»Ñ Ð°Ð´ÑеÑа IPv4, 6 Ð´Ð»Ñ IPv6 | family('::1') | 6 |
host(inet) | text | Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ IP-адÑÐµÑ Ð² виде ÑекÑÑа | host('192.168.1.5/â24') | 192.168.1.5 |
hostmask(inet) | inet | вÑÑиÑлÑÐµÑ Ð¼Ð°ÑÐºÑ Ñзла Ð´Ð»Ñ ÑеÑевого адÑеÑа | hostmask('192.168.23.20/â30') | 0.0.0.3 |
masklen(inet) | int | вÑдаÑÑ Ð´Ð»Ð¸Ð½Ñ Ð¼Ð°Ñки ÑеÑи | masklen('192.168.1.5/â24') | 24 |
netmask(inet) | inet | вÑÑиÑлÑÐµÑ Ð¼Ð°ÑÐºÑ ÑеÑи Ð´Ð»Ñ ÑеÑевого адÑеÑа | netmask('192.168.1.5/â24') | 255.255.255.0 |
network(inet) | cidr | Ð¸Ð·Ð²Ð»ÐµÐºÐ°ÐµÑ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ ÑеÑи из адÑеÑа | network('192.168.1.5/â24') | 192.168.1.0/24 |
set_masklen(inet, int) | inet | задаÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¼Ð°Ñки Ð´Ð»Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ inet | set_masklen('192.168.1.5/â24', 16) | 192.168.1.5/16 |
set_masklen(cidr, int) | cidr | задаÑÑ ÑÐ°Ð·Ð¼ÐµÑ Ð¼Ð°Ñки Ð´Ð»Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ cidr | set_masklen('192.168.1.0/â24'::cidr, 16) | 192.168.0.0/16 |
text(inet) | text | вÑÐ²Ð¾Ð´Ð¸Ñ Ð² ÑекÑÑовом виде IP-адÑÐµÑ Ð¸ Ð´Ð»Ð¸Ð½Ñ Ð¼Ð°Ñки | text(inet '192.168.1.5') | 192.168.1.5/32 |
ÐÑбое знаÑение cidr можно пÑивеÑÑи к ÑÐ¸Ð¿Ñ inet, Ñвно или неÑ; поÑÑÐ¾Ð¼Ñ Ð²Ñе ÑÑнкÑии, показаннÑе вÑÑе Ñ Ñипом inet, Ñакже бÑдÑÑ ÑабоÑаÑÑ Ñо знаÑениÑми cidr. (ÐекоÑоÑÑе из ÑÑнкÑий ÑÐºÐ°Ð·Ð°Ð½Ñ Ð¾ÑделÑно Ð´Ð»Ñ Ñипов inet и cidr, поÑÐ¾Ð¼Ñ ÑÑо Ð¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ Ñ ÑазнÑми Ñипами ÑазлиÑаеÑÑÑ.) ÐÑоме Ñого, знаÑение inet Ñоже можно пÑивеÑÑи к ÑÐ¸Ð¿Ñ cidr. ÐÑи ÑÑом вÑе биÑÑ ÑпÑава Ð¾Ñ ÑеÑевой маÑки пÑоÑÑо обнÑлÑÑÑÑÑ, ÑÑÐ¾Ð±Ñ Ð·Ð½Ð°Ñение ÑÑало допÑÑÑимÑм Ð´Ð»Ñ Ñипа cidr. Ð Ñипам inet и cidr можно пÑивеÑÑи и обÑÑнÑе ÑекÑÑовÑе знаÑениÑ, иÑполÑзÑÑ Ð¾Ð±ÑÑнÑй ÑинÑакÑиÑ, напÑимеÑ: inet(вÑÑажение) или колонка::cidr.
РТаблиÑе 9-36 пÑиведена ÑÑнкÑиÑ, пÑедназнаÑÐµÐ½Ð½Ð°Ñ Ð´Ð»Ñ ÑабоÑÑ Ñ Ñипом macaddr. ФÑнкÑÐ¸Ñ trunc(macaddr) возвÑаÑÐ°ÐµÑ MAC-адÑеÑ, поÑледние 3 байÑа в коÑоÑом ÑÐ°Ð²Ð½Ñ 0. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾ Ð´Ð»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð¿ÑеÑикÑа, опÑеделÑÑÑего пÑоизводиÑелÑ.
ТаблиÑа 9-36. ФÑнкÑии macaddr
| ФÑнкÑÐ¸Ñ | Тип ÑезÑлÑÑаÑа | ÐпиÑание | ÐÑÐ¸Ð¼ÐµÑ | РезÑлÑÑÐ°Ñ |
|---|---|---|---|---|
trunc(macaddr) | macaddr | обнÑлÑÐµÑ Ð¿Ð¾Ñледние 3 байÑа | trunc(macaddr '12:34:56:â78:90:ab') | 12:34:56:â00:00:00 |
Тип macaddr Ñакже поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑÑандаÑÑнÑе ÑелÑÑионнÑе опеÑаÑоÑÑ Ð»ÐµÐºÑиÑеÑкой ÑоÑÑиÑовки (>, <= и Ñ. д.) и опеÑаÑоÑÑ Ð±Ð¸Ñовой аÑиÑмеÑики (~, & и |), ÑооÑвеÑÑÑвÑÑÑие опеÑаÑиÑм NOT, AND и OR.
| ÐÑед. | ÐаÑало | След. |
| ÐеомеÑÑиÑеÑкие ÑÑнкÑии и опеÑаÑоÑÑ | УÑÐ¾Ð²ÐµÐ½Ñ Ð²ÑÑе | ФÑнкÑии и опеÑаÑоÑÑ ÑекÑÑового поиÑка |