0% found this document useful (0 votes)
357 views765 pages

Postgres 4.1

Uploaded by

mónica_nava_38
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
357 views765 pages

Postgres 4.1

Uploaded by

mónica_nava_38
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 765

PostgreSQL

Equipo de Desarrollo PostgreSQL

Editado por

Thomas Lockhart

PostgreSQL


    "!#
  $ &%'()*+#,.-'(

/$021436587:9;=<?>
36@A9:B9(C
0EDGFH7I@ 5KJ3KL*MONONOPRQ4NS$9(/021436587I91TU 0WVHXU8YZ9:[H9U 0ED\]9:B3.T7:0W^D
_

Tabla de contenidos

`ab8cdeaf]ghg ghghghgAghghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAghgAghgAghghghg ghghghgAghghghg ghghghghgAghgAghgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghgAghgAghgAghghghg ghghghgAghghghghg ghghghgAghgAghgAghghghgAgAghghgAghghghg ghghghgAghg
??
ig$jkclmonaqp]b8cmrstgAghg ghghghgAghghghg ghghghgAghghgAgAghghghgAgAghghgAghghghg ghghghgAghghghgAgAghghghgAghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAghgAghgAghghghg ghghghghgAghghghg ghghghgAghgAghgAghghghgAgAghghgAghghghg ghg
??
u(v=wx   ,8  xyvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv
??
z8!] {q|} v6vAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
~ 
'( 2RO   vhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
,.G, Ro
2 xvv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
,8 O v vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
??
%)* x  ( v vAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
R,. xovhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv
| "RG)* x  wx( )*qG ,8 G vAvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 
'(RW,.$  2R  vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
v " x R" |"!# vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
??
   
 vAvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
)* x R  vAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
)* vAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 x  x  v6vAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
)*  ) x $ vhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
  vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
  x  v vhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
(v Ro%H vAvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv
)*GO ,%H vAvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
??
 x $O%H vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
'(O$,.RZ%H vhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
??
R
"% )*q%H vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
~   x %H vAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv
)*R ,%H vhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
w e  xko k-
 x k2  .2G vv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
(v   v6vAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
??
#G" ,8H,8 ( x ,8 vAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 + x   vhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv
  x )*{ ,8 vhvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
 +)*{G ,8 v6vAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
 + q x R$ + R )* vAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
  w  w  vvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
  w  ow % vAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
(v= x ,8  x G vAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
x ,8  x H!]# vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
x ,8  x G)* ,8G vhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
??
" x  x ,8  x  v6vhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
x ,8  x   ,8'(("k vAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv
x ,8  x   )*R vv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
x ,8  x  )*{ ,8 vhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
x ,8  x  w  v vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
(v  x 
 x R  vhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
 x ,8R+ x   vAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
x ,8  x  v6vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
   + q,8 x   $ vhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
 x   $ kw vhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
(v=wx  ,8 x G
 vhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
 vhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
??
 $ w4x  ,8 vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
v RO ,8. vhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv
v kG x ,8  vAvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
??

u v  R 2  x  x ,.  x ,8  x   x R    x ,8  x ,8 o  R


 x vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
wx   ,.,8 x*vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
2 $)*  x R x ,8,8  x $ vhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??

  ,8 o,8 O  vAv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??

   )*  x R    vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
~  
 $ vhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
~  
 x  ,8 vhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
'(
 ,. x   x ,8  q $| x  x G  ,8,8 xyvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vh??
v
u8u(v  x(  O x   x  x  v6vhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
u v )* x RO,8 x  x  ~  ]$ vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
G,8 x  ~ | qR v vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
??
 ,.$,.  x   R x R $+   ~ | q vhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
,.,8G2] x  ~  ]$ vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
??
R ,8,8 x  x  ~  R vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
u(v  )*,8 x $)*  x  x  ,8 vAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv
u(vw4x  ,8,8  x |"!# v vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
~ % vhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
 w4w ] v6vAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
 w4w % ~ # vhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
 w4w H +w v6v vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
~  wvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
# " vAvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
#]"% vvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
w % vAvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
 v6v vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 %  % vhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
 % % ~ " vAvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
 % % w vAvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
 %  v6vAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
 % w4 ] vhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 %#  v vhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
 %  % vhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
 % # vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
 %"!  vhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
 %% ~ # vhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 %% ~ # vAvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhv ??
 %% +w  v6vhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
 %%  vhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
 ]" |w v6vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
 w "% vAvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
??
 #  vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhv ??
#% v vAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
   % vAvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv ??
 e % ~ " vhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
  % w v vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
  ] vhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
  w4  vhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 e#  v vAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
   % yvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv ??
  # vAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
 eH!]  vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
 e% ~ # vhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 e% +w  yv6vhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
 e%  vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 e]" vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??

 e w  vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??


  vAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
|# wvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
% vAvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv
% vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
w " % vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
??
# w H% vAvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhv ??
#  vAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
# ] vhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
 v vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
% w4 v6vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv
H% vAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhv ??
  vhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
## ~ vhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
"# % vhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
"# % w4 % vAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
"% v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
" vAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
% % v vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv ??
# w "% v vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 % vAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
] vhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
u(v  ,8,8  x  vAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
v vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
createdb vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
createlang vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
createuser
vhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
dropdb v vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
droplang v vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
dropuser
vhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
ecpg
v vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
pgaccessvAvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
pgadmin vAvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
pg_dump
vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
pg_dumpall
vhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
psql
vAvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
pgtclshvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
pgtksh v vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
??
u(v vacuumdb
,8,8  x  H 2R)* v vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
vhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
initdb
vhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
initlocation
v vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
ipcclean v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
pg_passwd vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
pg_upgrade
v vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
postgres vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
postmaster
??
iigjkclmna]nd*sfsIb84rmntr
ghghg ghghghgAghghghg ghghghgAghghgAgAghghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghgAghghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAghg
??
u(v G v6vAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
??
 R )*|,8 $ )* x 2OR  vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
 R )* x R  vhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
u v ,8  x    x( 
,8 xevhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
??
)*R| ,8 x( 
,8 x configure v vhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??

x
x
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
h
v
A
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
h
v
A
v
h
v
A
v
h
v
v
)*R| ,8  ,8,. make
??
"q#,8 vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
 x R ,8,8 x  vhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv
u v  2RO
,8 x GH R)* v vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
??

 vw4x  $ ,8 xvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv
x G ,8)* x $ vAvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
??
,8G  )*  x R  wx  ,8 xv6vhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
u(vw4x $ ,8  x  x x( vhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv
 x  ,8,8  x q  G vhvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
wx 2R ,8  x  + GO $ vhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
??
2 x  $   v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
 v  x  x  R )* qOI,8 ,. xv6v vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
??
   x  G  x vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
wx ,.  x 
vv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv
postmaster
??
2 x 
R  x  vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
(v HG
  vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
 x R ,.$,.  x 2 $O  vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
)*+   O   vAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
 x R  ,8,.G2 vAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
x ,8  x    vhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
(v Z )* x ]   vhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
(v  x  ,. v6vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
#,8 ,8  x   R x  
 vhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
(v  x  x  q R vAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv
G,8 x  x 2  R vhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
,.,8G2] o   vhvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
??
R ,8,8 x  x 
$2  R vhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
  2G
  G O$,. xvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv
(v %H$)*  x ] q )* vhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
   q x ,8  qR)*2R vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
??
 G)*|,. x  o,8 x  x G   x R vAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
 ,8 x )* x I v6v vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
v ,8 ,8 x | q R vAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
v  G
$ G
. xv6vhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv ??
??
 x R x  
. xvvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
R ,8R Oo q  ,8R  v vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
,8G  )*  x RqGR( G
G2 xkvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
x      xqv6vhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
,.'( 
+ q,.)*,8 x ,8 ,8+   $ )* vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
v R+ 
  x  v6vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
??
  xk(v v ?vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v u?vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v &v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v u?vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v &v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v u?vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v &v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v u?vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v uv u?vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  xk(v u&v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  x  (v v vhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
  x  u(v vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
  x  u(v  vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
  x  u(v u
vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
  x  u(v v vhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
2RG o~ R v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??

2RG o~ R v  vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
2RG o~ R v uvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
% )*    x  vhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
iiigjkcl4mqna
rtrmdym$nt
rgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghghgAghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAghgAghgAghghghg ghghghgAghghghghg ghghghgAghgAghgAghghghg ghghghgAghghghg ghghghgAghg
??
u(v 
 R,8  vAv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv
 x ,8R+  
 G,.R O 2RG vhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv??
v "R x &"!#=G    vhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
)*'($,.GG"R x   ROI vAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
??
%  " 2R)*  vhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??

,.G,  " G)*  $ 


 2RG vhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv
(v "R x   x "!]# x ,8  x  vAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
x ,8  x  # x 
Iq   x   R"!]# vhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
x ,8  x  # x 
Iq,8  G vhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
x ,8  x  w4x R x  v vhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
x ,8  x  # x 
I )*    v vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
??
"
G,.G
q  x ,.  x  vhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
(v "R x   x "!]#=%  v6vAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv
??
%  x ]   vAvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
(v "R x    x "!]#   vhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv
wx( )*,8 x qR )* ,8 x GO  v vhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
(v "R x   x  H!]# 
 ( vAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
(v H R)*o q G q vAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
??
z8!] {q| x H 
} vhvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
#$+
+G2 R)*   v.vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
  w4 " %$ %#% vAvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv
 )*  vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
   x RRO 
GO vhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
v ]R  ,8 x  "R x   x G x   x  ,8 vhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
v H% wx  ,.G vhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
v  x   x  x ,8  x G ,8q  x ) ,. vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
??
#% +w vhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
 u|vAvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
" x (v "O  v  vhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
u(v %H 
  K$  v vhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhv ??
G,8 x %H 
 v vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
wx ,8,8 x ,8 x G%HO 
? x 
. vhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
??
|     e  )*  x R vhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
HI)*  vAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv
v HGO
?O$)*)* x  wx  ,8 v vhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
wx  ,8 x ,8  x  vhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
wx  ,8" O x ,8R  x  v6vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
??
)* x )* x  v6vAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
|    R R '( x  vhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
)* G vAvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv
(v # x  I,.G  OG  vhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
wx 2R ,8 x   x  I,8   vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
??
#"H!]# vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
#"%,. vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
ig$ifarm.a$bghghghg ghghghgAghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAghgAghgAghghghg ghghghghgAghghghg ghghghgAghgAghgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghgAghgAghgAghghghghg ghghghgAghghghg ghghghgAghgAghgAghghghgAgAghghgAghg
??
(v x ,8  x  v vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
(v GIR O x  vhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
Rk 2RO ,8 vhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
O$,.R.O2R ,8   w )* )* x R,8 xv6vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
wx  ,8 v vhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
x ,8  x  2RO$  w4x ,8O  vAvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
??

., ,8G   x ] IR  x |  # w4~ ! vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
??
)*o HRG)*  v6vhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  w( x ,8  x  vhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv
wv
??
(v   v6vhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
x ,8  x    x  x o  ~  R vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vh??
v
x ,8  x  HI,8 ,8 x   x   R vhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
??
,8G2)*  x   x ,8 x    x   R vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
   vAvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv
R ,8,8 x 2 x ,8 x  vhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
x ,8  x  ,. $ |,. x  )* x   vhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
x ,8  x  %"OG  
vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
libpq
x ,8  x  ,8 x  
vhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
libpq
x
x
6
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
h
v
A
v
h
v
vAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
Z  |  R 
??
)*| HI)*  vhvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
(v    ~ x  x  vhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
 x R w4x ,.  $,8 xvAvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
 | q   v vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
x ,8  x    x  x o  ~  R vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
x ,8  x  HI,8 ,8 x q $  x   R v6vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
R ,8,8 x 2 x ,8 x  vhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
x ,8  x  ,. $ |,. x  )* x   vhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
v 
R,8 vhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
)* x  v6vAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
??
HI)*  vAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
wx( )*,8 x q  x ,8 o ,8)* x 
R,. vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv
vw4x R $  ~ vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
??
%"O  x  vhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 ,8,8  x + x k vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
wx 2R ,8 x x vhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
,8'(+   x(  O,8 x|v6vhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
  v vhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
v  ~ w4x R $, vhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
~    x '(  ~ w4x R $,. vAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
E x '(qRG2   ~ vAvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv ??
2 x '(] 
 vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
w )*R x   ~ vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
??
#  x '(q 
 vhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
 x(x ,8R x R'(]$ vhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv
w 2  x o!]  x ,8 x R'(    v6vhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
??
 )* x  R v vAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
  x R'(  x(x ,8  xvvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhv
??
2 x # GRG,.R v6vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??

 x 2  x RR'(  ~
 w
vhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
Postgres
OR'( $  x  vAvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
u(vw4x R $o )*,8 x # 2 vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
??
]g$jkcl4mnakab8mrrt
mntrghgAghghgAghghghg ghghghgAghghghg ghghghgAghghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghghgAghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghg
??
v   
  x RqR
 vAvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv
)*R vhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
(v 
 x q $+,8,8GK  ,8+ x G x $ "!# v vhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvh??
v
??
,8)* x   x ,8 x    vAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
)*G2R ,8 x  $,8 x "  x  vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
??
#q$o RO$  ,.,8 xvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
 )*  | R
 vhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
  x ,8 " )* $  vhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv ??
HI,8 R vhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
??

(v 
$R  x  v6vhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhv
(v R )* ,8 x  x {R ,.o   x    x " )*$  ~  R v6vhvAvhvhvhv vhvhvhvAvh??
v
??

x
x

x
  ,8 & ,.   q  )* )* OI  R )* ,8 v ??
 
 )*  x { ,8 vAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv
R )* ,8 x  x {G ,8   x   R !  x  vhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv??
 +%".+  w )* )* x R,8 x q ]   vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
(v ,8   x  x ~ $,.- x v vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
wx   ,.,8 x*vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
??
R,.  vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
x
h
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
A
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
A
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
A
v
v
%    RG
)*R+ q x I vhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
(v HG( | q2R
G vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
v
     )* R  x  v6vAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
vw4gcc
x R $,.G+  ~ ,8-
 x vAvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhv ??
)*R  ,8'( ~ wvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
)* x   x   vhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
??
,8 )*)* x  vhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
)* x + q ,8 xvAvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
??
HI)*  v6vhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
v ,8'(  x  vIvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv
??
R ,8R Oo q o x  vKvAvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
,8'( vhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
~  vhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAv ??
??
]ig$c4trsmghgAgAghghghgAghghghg ghghghgAghghgAgAghghghgAghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghghgAgAghghgAghghghg ghghghgAghghghg ghghghgAghgAghgAghghghg ghghghgAghghghg ghghghgAghghgAghgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghgAghg
??
u(v H!]# vAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv
??
  ] q  ,8  x  vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
)* $ |  G   ,8  x  R vhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
,8  x  x  G  R  ,8  x $ vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
??
# x 
I"!]# vAvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv
v 
 R,8  vAv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv ??
??
2RG  x ,8R+ q
 R,8R  vAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
(v )* x  vhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv
 x(   x  x R x  v vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
??
HI,8 ,8 x G x  wx GO,8R ]
 vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
)* x  x  x  ~   $ vhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
(v # x  R q,8 x   R vAvhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
 x & x R,8 
 vhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
 x ,8R vhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv
G,8 x  x  x 
o,.2 v vhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhv ??
??
#  x  x  x q,. q,8 x x 2R x ,8  vhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
 x  $&o x ,8  vhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv
  ,8,8  x $)*  x  ,8 x 2  R"# % vhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
 x  x  x   x R,8  vAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhv ??
,.R  G,8  x G vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
~ O  vAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
??
2  x ,8  x G ,8 x I x R vhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
(v ,8GK  ,8 
 x  (+ "!#e x  vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv
??
kG x ,8  v vhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhv ??

h
v
A
v
A
v
h
v
h
v
h
v
A
v
A
v
h
v
h
v
A
v
h
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
h
v
A
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
h
v
A
v
h
v
A
v
h
v
h
v
h
v
v
h
v
v
Z   )* ,8
??
% )*q%"O
H| I x  )* vhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??
|,8,.R.O2R ,8+ x   vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
]iig$]$fns8abgAghghghg ghghghgAghgAghgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghgAghgAghgAghghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAgAghghgAghghghg ghghghgAghghghg ghghghgAghgAghghgAghghghg ghghghgAghghghg ghghghgAghghgAgAghghghgAgAg
??
uv   q  ,8'(("'(O vhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhv ??
 x $'(O  vAvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv
??
k R  vhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??

 u(v 
  2 R  G  vAvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv

 x ,8 x GOH   vhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
??
%)* x #  x G  x x )* vvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
%)* x #  x R "  vAvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAv ??
 v ,. )* x ,8 xvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhv ??
   ,8 ) x $,. xvhvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhv ??

G,.R  ,. )* x ,8 xvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
 x R   ,. )* x ,8 xvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv
??
k,8  x  ,8 )* x $,.  x  vhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhv vhv ??
x
y
x
h
v
A
v
A
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
h
v
A
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
h
v
v
h
v
h
v
h
v
A
v
h
v
h
v
A
v
A
v
h
v
h
v
h
v
A
v
h
v
v
 +)*
 x GO$,. x ,8  )*G2$+O (v ov vAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvAvhvAvhv ??
??
kGO)*  x R vAvhvhvhv vhvhvhvAvhvAvhvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhv ??
+'(O$)*  x $ vAvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhvAvhvAvhvhvhv vhvhvhvAvhv
~  
  vAv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvAvhvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvhvAvhvhvhv vhvhvhvAvhvhvhv vhvhvhvAvhvhvAvAvhvhvhvAvhv ??
??

Resumen
R
 G2    
x $ )* x  x GG)* x    x ,. $o  )* 
,8 x    ~ -
G .   x  q)* ,8'(  ,8 x ,.G . x RqGI

$'( x   x  G x   x   R,.)*,8   v ,.  x 
  x  I]"!# ""!# H x RO $  x RO x 2$,.,8  x ,8,8 G ]
 x 2 x R  v GH!]#G+ x ,8 x   x  x 2 ,. R,8  
]  x 
 ~ GO-  v

Captulo 1. Introduction
 ,. )* x () x    $O k G(2 R)* )* x  x )*  x  $2G 
RR
"!]#?O  x  )* x R   $  x  * x GO     x 
 xe~ -
 G v "!#*R]  x R
 G v  v ,8
  ((  ,8'(
HR x O$-
R  x     GOq
$
x )* ,. $ q  ,8   ]G   x ,8  ,8Ro  w4x 
 ,8 x

 x G e    x e  ]     ,8 x y  w4x 
R 
,8 x k 
)* ( $  x ,8 xk ,.  x o   x ,8 o $"# w4x , v

Qu es Postgres?

#Z )*$Z &)* x  x )*  x R  ~  |$Z $,.  x  RO$  ,.  x  G ~ "h
 x x )*     q,. x   x  x x ,8 G,.,8 x q G,.  x ,. xkx )*
Z
k,. x   x  x   ]  x  G,. ,8 v  x   )*$,8)*,8  ],8
  G2H q q  q x ,8 
 xx )*{GO ,8o  x  x 
 x ,8  x $ 
,8OG,8{GG2,. x  $ ])* x RO $ ,8'( v R x  )* x R,= x ,8 
G
)*   x  G,.  (o $ ,8,8  x  R O$+ ,8 ] q R v )*
 G ,8  x  2R  y)*  G  x  K )* ,8 $ R x  v
H x )*,8)*e]'(])* x ,8  x $ 
G2R )* ,8  R)* { x '($,.)* e  ,8  
)* )* x ,8 x ],8  ,.$,.  x  v 2R
Gq ,8 x  x ,.   ,8  x  
 x ,.  x ,8O$ 2    x R,8 e,. x ,8R$  ,.  x  G ,8 x x k
 x  
q       x  x G $,.  )* x qGH2 R)*
,8 
'( x ,8 
 
x ,.  x 
R|,.$O,8R R ,.$ x R x ,8 
    ,8  x K
G 2RO ,8,8  x   x RO x R
 2O$ .RO 
G
 +  G
w4x RO $  x ,8,8  x $

+,8,8GO ,8+,. ,. x o2RG x  ,8R    ~ G+ q$  x R


,8 ,8)*e8  8 .O .Gv R]
]{G2R x  G x G   GO $,.)*
8 88 . 

] x  x GO x e x   x $
,8'(H Go$O  x  
RG  ~  R& G,8  x $ &  ,8  x   v R  x   x ,8,R  ,8

2 x   )* x  o   O  x  $GIR v '(,8'(H

x $ ~ $2G ]R,8)*G,.  G'( x x ,8O ,8  x ) x ,8,R  ,. x
 |
qR
   x  vv

Breve historia de Postgres

H R)* |  ~ $2G oR  $,.  x   O  x  $ IR,. x ,. ,.
)*k"!#*GG)* x R  )*$    $  

R

GG,.  x*~ GO-  v  x ,8,8 ] x  {,8  ]   RO{G "!]#
G(
G2R   R ,8  
k GOR)*
 x G k'( x   ,8  x
,8 x  ,8 x ,.  x ,8 )*   
 x ( x e,.$2    x  "!]#4 x
,8 
 x  ,. x   $2R x ,.,8  x   x ,8  x Gq  x    
,8 x R x R)* { x ,8 x x $)* ],8 x I x ]  x  ,8,8 x   x  I& 
)*,8 x
 x ,.  x   $ $R,.
R'( x v

El proyecto Postgres de Berkeley


#q )* G)* x R,8 x  ~ 2RG,8)* x ] xu 
v #|,8 x ,8R+ x ,8  |
OG
 )*  x  x R  xe      k   x ,8 x )* G 
  x ,. $.,.  x*    
]8 Ev   (  2R)* ] 
 ,. R x G2)*)* x Ry x$ ] (  $   |
v #  ,8

 G,8  +  )*,8 x $)*  x   x G  $  x     8 (
$ev
R
'($2 + 
2  x  )* x R G2  x  x ,8 v 
O )+ 2
G)*   k,8  x  xu  )*RO$  x    x(  x ,8 
w   u $ v # x )*& qGO xu G ,. Rq x .     G
x +,.+   R x + xk x   u $ v  x  G2Rqo x ,8 R ,.q H )*
 2R)* + ?  ]
      + 8{G2R  ( ( 
+  =  8. "!#]8 8$  ZGO x

 e x
x ]  u   ] x ,8O$ v # x .,8  xu  u (   x q )* G)* x
$,. x )&%   G?? | )*,8 x )*  x . x RG,. R +,8 x   $?)*OIO 
x 2 R)* ,8K     x G v  x  )*OR o 
  x RoG
  x '(G
  x $)*  x R oR
 4
)*$R 2q,8 x  x  x )*OIO$& 
OR        v
R
 )* q  )* )* x ,8 x )* ,.'(+ ,8,8  x + q x G ,8 x
  ,.,8 x|v  x qG  8 x  2R)* o x    q  x  x ,8 " x 
Gq 
)* x RO $,. x  x  )*  x R )*RG,8,8 x
x k    
)*  x R G &
 | 2R)*$+  x( )*,8 x 
 ,8 v %)* { x 'o 
  o,.)*] x '()*  x RG  ,.$ 
 x 
  x 
   vK x $ )* x G w   RO
w4x( O)*$  x %"G,.' x  
G'R )* x R$
O  w4x( O)* )( )*k,8  

* *,8)*G,. $  v R
o  *2GqZO x ,8 q  ROGZ
G,.R
,8  x  ,. ,8) ,8 x "
  G+*  x  G  u  v
$)*(o  ,8)* x    O R x ?,8 $2   ,.   x R u  v  x 
]'( 
e
])* x R x )*  x R ,8  
e $qRGo ]]G2R x ,8 
 x R )*
   G  ,.$O  x 
 ,8 x|v  x x G   ,8 G2R
,8H$
,8RR)* x  ,8  )* x q,8 x  GO xv v
Postgres95
 xku  x G -,
  '( x. (   x x x R{R q  x  oH!]#eR

G v  o   ,8 ]o,8 x R x Z,. x  x  oG$O
q x ,8 x o e
 '( G,8 x )* x ,.)* x ,8 x   x R  )* x % ,8,8  
 
H,8  
  x 
  ~ -  v
,.  *  $ R e w y2 $)*(  ,8  x x )/v
,8'(o,8)* o x  x )*OIO x  x  )*  x ee  ,8   )* x  x )*  x
 v R
  u(v v 2OI,8  x  x  xy / )*qO$  x  ,8 x  x
~  x ,8'()*-,8)*O$ ,8 x R
 v v G)* e,.G,.,8 x GO?{$
 x  | x ,8  +)*OIO

0  Z  x 
 ,. x   
G G)* G ,8 x "!]# )* G)* x $ * x
|
 v #2 ,8 x 2  R x   x 2OR '(GH!]# 
)*$
I
k   x )*  $  x R
 ,8 x* x ,.  x q"!#  x 
    v #$ x ,8  x G.  G x  )* G)* x $  v %")
{ x ($ 
x o )*)* x R,8 x  q,. $ 2   ] ~ v # x   libpq O)* x ,8   
 x  qq
)*$+G2,8  x v
0 )* O)* ])* x O $,8 x
] x ,8  x*x 
e
)* psql
$OG $,8 x 2  R"!]# x RO$,.R 
| 2 x     readline v

0 x  x 
 GO  x G  libpgtcl
,8  x R  x %,8 v x
'(  qRG)* ,8 '(OR x 
+  x |%,8o x R,8 ?,8 x )*
R?R
  
)* tcl
0 HqG   x R o,8 x GIR
 x G v #GIO x +  w4x 
  x G x
% x ,8)*,8 x )*O* )*$,. x GIkO x G+2 R)*y *$,8'( 
 
wx GO  x G )* x   v
0 "e )* x R)* { x G )*y e  x 
  x  x ,. $&   x   
    x   x  ,8)* | G2,8   v
0 "    ,8 x GH,.    x R x 
R O $H x   ,.  x  $+,8,R R
,8|,8)* x G q"!]#  (v
0 Hq R   )*-o4 x 
  ~ H )*- o ,8)*  ,8 x|v  R)*
 { x  qZ,8)*   ],. x x ,.,+ x ,8'(&"'($2,8 H
 G)*
 x ,8 x 
O $ |   x 
R  *   v

PostgreSQL
 xu $ H2'( 
 x R
 x )*21R
 43x    ](k  )*
 v  G
)* x]x 
 x )*.R
"!]#8R G ,8 x  x R
  x  GO  x )*,8  x R,8 x ,8$,. ( "!]# v ()* )*eR )*'( ,8
)*|
  x %)*| 
 x OR  x   (v G
   x ]q q,8  x ,8 2G
 
  x  )* x Rq&
G,.R v
 O x R| G2$O   2RG 2'( $'( x ,8 {e x  x R ,.$ x  x  
 G)* x G,8  
 
)*R  R v  x "!#H
{ x(  '(]$2$ 
 )* x R,8,8GK  ,8?,8,8 G $ x 
GRO$Ro,. x R x % x  ? ?. v
#| x ,.  |)*OI+ x R
"!]# x ,8 
 x

0 # o 
 ]R '( x  2 R   G,. x R ],8 x ,8  x ,8 )*  

 x 
,. )* Ro ,8,8 o2  ,8R O,8 x R x +  x  ,8 x
  x    x R ,8R  ,8 x  2R)* ,8 $ G
   x
,8  x R  +  )*)*  x RO$ 2  $?GO)* x G,.  2 x  ,. x
  $ v
0 Ho'( x )* )* x R  )* x R,8G,.R R ,. )*R  " x ,8  x 
 ,8 x   $28
 (  ,R8G2R ,.,8  x $  x  Z,8)*,. x  x R
   .+4R 
 v
0 H'( x $(   x ,8  x   Z x  x ,8 x G2R x H!]# G x ,8  x ,8 

 )* H  x  ,8  x R,8)*   $  O$  R ,.$  x   G2H,. x

 x R  x  q  x R x  '"$ , )* G v
0 #R + x R x '( x  )*OI $ x ,.  x  x 
|R +  G,.'(H'(O 
 x )* ORoq +
G)*{G ,.$  ,8  x  G v
0 #k
 ,.  G?,8  
y Z)*Rq  R'( y x ,8G)* x $  )* G
)* x  x x $ / Hk yR )*k O x  '(]
=R  /  
 G
 xv   x   v

Acerca de esta versin

R
"!]#R   x
 k x ,. v 2Rk)* x & ,8O  
  x(v 

G!# v

H 2$O+o  qo o


2 x     o,8)*"!# v
)* ]     ) x 2RO$ 
    $ O)*$qOR  v
 x 
 x GO$  G oROq,8  
 &2 R)*,.)*R  o x H ,. x
q,8)* o   
, v

Recursos

) x o
 x  ( x   x R|G
%H R 
w4x R  ,8,8  x  x 
    v ,. ,8G,.R  ,8|
 x $  v
 o 2  
w4x( )*,8  x  x GOH$O 2 $O  x ,8 q,8)* x +R    v
 o GHO)*$ 
w4x( )*,8 x $ x $  kO)   ,8,8  x G vw4x ,8  x y 
k"R x  x  x ,.  x " GO  o x R $,.Gk  K k  (k o ,8
,.  x  v
 o  )* x  
w4x( )*,8 x   x  ,8 x  )* x RO$,. |
x v
# o q
 2OR  v
 o   $ 
w4x( O)*$,. x  E     v  ,8 )* x RG$Ok

  GO x 
 x ,8 x RO   x y
,8R* 65  x( O)*$,. x
   "  *  ,8,8  x G$.,8 x  87    8]8 8 v ,8
  )* x  x ,8   x  7
   8]8 8 v
 x     x ,. 
wx( )*,8 x G   oq ,8)* x  v ,8R $ )* x  x ,.   x  97 
: v
G)* q{o)* x $ '(,8 2+
o q2GO
 x 
q  o  x  $
x
,8  G  R

)* x 
#
x $ k)* x  )* x  ,. x   x  x )* x( )*,8 x  ,8
)* x  v
!]4.
x R 
 x 
#o,8,. x q x  
 x R  ! ,8 x   x q |oG
x R|
 x
 |+2 x R
qR  x  x 
 q
?,8 x  o R O)*o x 
qq    v
#   
#,8'( 
  $)* #    R x   x    x ,8 x
  ,.  x  v

" 
2 R k 2R
G;",8 x R  x  x( )*,8 x    x   RO  ,8  x  x  x
,.  x|v k x ,8R   $)* )*'( x , ,8 x   x G'( R ,8 q  2R
,8] ,8RO x ,8 v 
 Oq x ,8 x RR x  x( )*,8 x|v
# |  O
# 2R o,.G
 
 x =<
,8'(  ?> G  x   x  &$O,8 x R& 

x R v
]R
@
R
? x   ,8 ,8  
 GOR v )*R  x   ,8)* x 
   $O 2OR v )*  ] )* G )*K
k  x G R$O
 $
  x kq)*  y  ,. )* x ,8 x
 x   Ro ,8 v  x 2 ],8 x R    
 x  v "  x e G
2,8  e  x { ,8 )* x  
,8O e,8 x RO   v " (  x 

,.$OG,8 R ,.$+$,8  '( | v
x $
  &,. x ,8 x x 
x G"GO  x ,.  G  x ,.  x ,8OG,.,8  x 
,8)* )* x +  ,8 )* x R,8 x  
o x   x  )* q)*G v


  ,8=6(,8'( 
   R q,.++ x   x  &$O,8)* x 
2 +
  v

Terminologa

 x   ,8 )* x R,8 x 2    x R 4      x R$q,.)* )*  x 


 x  
 x $  R
 v  
o2   x  $)*o  x ,8 x R x 
  $R
 x x k)* )*)*  x R{)* x y  x R(  O)

)*G,. ,8  
 G+,. x I x k,8 x ,8R o)* x  k   
R
| x   v
  ( k 2RGG     )*  postgres 
e  G(  
,.'(G  2G?  R? x    v )*]   O    
R x ] | ,.$
  x x  x   +)*,8 x )*| R,8,. x   ,8,8 
,8 $ 
  + ? RZ  O)*$O RO$O  v G)*.$$ G   o +?+ 
)* OI,8 RO$)* ]  x  )* x R x kR x   x  
    O  v % x ] x ,.  x ]
2 G   k  q()* )*

   O y  x 4 k,8 x ,8 ,8)*yK. v   2 $O y GO6
 x ? x  x  ,8 &     :    x R q,.G$ x +    v
 8 8 8  8?8 8 88]
 8 .  ~ & 2 x  x
   x  $&,8 x ),8 x )*|'($,.G,8 )* ? x   ,8  
 e x  R v 
 ~  G o(   x G  O +G
)*{R  ,8O R)*
   x R)* x R x G x ,8 x R x R $2G+  R|  x R   o 2?,8 x createdb v
 postmaster 
,8G2
,8%,8)*k x  GOR] ,8 x (,. GK x 4'( .
 R ,.  x Z2 R)*R
 v # ,8,8  x   x  x 2+,8 x ,8 x  post )* x   x q 2R&  +. GH 2R)*o  q,.)* x ,8,8 x  x R
master
 o,8o,8- x v  postmaster  G ,8R o )* x Ro  ] 
x    x ?O x  x R2 ,8)*)*  x  v " x G)*
$
8,8  x 
H )* x R x G,.GO  2 q x  x RO$R$?,8 x 
 + R ,8 x x   x 
OI,8 o q)* x o&  G,.R v
,8-
 x ]R
q
)*OI,8 R  postgres G   G ]OI,8 $G
  2 $O   ,8R)* x *  e x {Re *  x G  2 $O  R

,. x  x )*  o  |,.)* x $
)* x R v H x G)*
$'(,8ZR

)* x  R .|
,8)*     ,8  o,8 x x R)*G"2 R 
   x Ro,8)* x  ] x x 2 R )*  R    v

Notacin

1 vhvhv 3  /usr/local/pgsql/  x q o xx )


o  ,8'(o 2$O. x R
H,8)* x 4$'   ,8R '()*q G      v
 x   x  ? ,.,8'(G1BA 3 C1)D 3 x  ,. x x  x  ,8 

,8  x  v  
 G,8 x R  
1BE 3 #1BF 3 
],8 x R x OGGOR ,8 1G 3
x  ,8o
q G
  & x o  +,8  x  q2G x  |O|
 ,8 G v
 x  ?OI)*  { x G2 1 3 1 3 + 2 x $O$
 .2  x Z
  x  v
1G 3 |  G x  v
#OI)* )*2RO x   x oOI,8   G2 $O q,8  x $y
)*G v #
  x &OI,8 $ |   o,8  x Ro GH($O x G,  $+H1JI 3
v #$+  x 
OI,8  |   q,8  x Rq G"  2 $O  |$O x ,8 ( &K1 /L3
)*  x RO]
k   x GOI,8 R    e,8  x Re  x    x    G

$O x ,8.  M1)N 3v #  x o H!]#G2R x ,8  (M1)OP 3  x 
$O x ,8  G x x % x )*R$  x   x  H,8 x R v
Nota: En el momento de escribir (Postgres v6.5) la notacin de las rdenes flagging
(o flojos) no es universalmente estable o congruente en todo el conjunto de la documentacin. Por favor, enve los problemas a la Lista de Correo de la Documentacin (o
Documentation Mailing List) 13.

Y2K Statement (Informe sobre el efecto 2000)


Autor: Escrito por Thomas Lockhart 14 el 22-10-1998.


 y     
$  Z
 )* x |%"G) 2RGH!]#
,8  x G ,8  
y 2 k$ R
,8)* x 
,8 J% ,8 x

$O x  x G2 x    * ,8)*$)*  x Rk x  )*  x  v H x )*
 x )*)* x R  G2,8  (

0   ( |&G"R8


 x R o x G$G
 o |2OR+ |GZ G2   G)*
  u  x   x ,8 x  x ,. q  x x % x  )* x H,8  
  G
,8  x  ,8 x  +,.$)* +  ,8'(q x R x  u  x ]  $ |q v
0    x( )* x   x ,8 x 2R x ,8   " R x ,8   x( )*

 )* " ,8 G x ,8   x  &   x $ x ,8)*
 GO  x  2RG,8  x R  *
O x $,.R  v  O)*
'(GG2GO$    )*|  2R  x  $ q 
q'($ x $
 ]    ,8 $,. x ,8R   &   & x   $& ,8O  v
0  e  R   ,8  x 
'(,8]]  ,8'(

,8O  x  x *  x %)*(* x ,8 )* x R  x     
2 $O  *  x ,8    R  q R v o(,8O ,8 x  x %)*2
 RO x 2 ,8 x   x ,8R G u x ( $ 5" v 1 u u)3 2o x RRo,8)*
1 u u u43 $)*  x R
M1 u u3  x RRo,.)*Q1  u uR3(v

0 # o )*$ R 


$ ,8 $  x  4 R)*GOR 
 Z

R{ x 2R  o?G ,8  x  ?,8 x   x ,8 x K  ,8'(,8 
   x
(  .,.G( )*
+G$ ,8 G   ,8 ( v
 O R$2o%'( x *GI,8I , k%'( w4x  R  .  G| x   2,8  x )*
x 2q x  G
 G,.R $ R ,.  )* x Rq x  
oR  x o
G&,8 x 
 x 2 ,8,8  
 $,8  ?
 x '(
q$
 v

Copyrights y Marcas Registradas

S
8
O=UT.e 4"V $ ) B& 4XWGY
O8] 8= .OT8
 $ . 8 .$q 8 8 .  8 (8 S $Y
 "V  ) B$4( 8
8
  H[Z8|\(8 W
+^]8_ k 8 (8+k4(`  8==UT.
8 8 8 8 8
8 H6a   .=(8 v
R
"!]#kR  x  
 '(cb u  G ZR
"!]# wx , v ]  RO  I 
{GO)* x    ,8 x ,8 o  ~ GO-  v
R
   x  
 '(b u     x Rk e y x 
   
 x  v " O $ ,8 )*  ,8,8 x *  RO   ,8 x  Rky
,. )* x ,8 x ,8 $ 
  R"2 xex x % x $
Hk x x $,. G (k|
,8O R" )*
)* x  x 
 x ,8
 '(Z ( k x R RO kk 
     x G x R  $,8  v
 xx x % x ,.] o x GO     x q'($O x    ($,8  
,8  
 G x  x   .2G x R&  ,8R. x  ,8,8  G2.,8,8  x R 
,8 x   ?  x  x ,8 
 x  ,8,8 x Ro
G2  R x   oRo2 kok
,. )* x ,8 x x ,8 2   x 
  '(  x  ,8       R 
( v
# x 
O $    x '( G2,8 ,.$)* x R G,.G,8    G x R  x
,8 
 x  x  )* R d% x ,8)* x   x R k )* ,8 Re ,.)*,8   
,8G,8  ,8 )*  x G)* x   R v  k$
    


2 x R]KR(,8  K  x 
O $ y    x  x R  x  x x 
x  
,8 x )* x  x )*  x 
$
,8  G,8 x )*R)*  x R)*  ,.$,. x|v
x G x )*,8 2R k   x #R v H x( " (" x ey"  2 x
)*,G
 ( " x ,82R)* w4x , v  ] R  x  '( +y]#
% +w *2 x )*$,8G 2R ?  
R  )* x   v  |w k4 x )*
,8?  G kk R,8-
$E  v u G)*,8G
RO    x " Rk
 x R  x|v

Notas

u(v (' RA"2W


 v 
v '(RA" -
R v v ~ K- G v  $ H"R
 v '(R)*
(v '(RA"ke v    v ,8)
(v '(RA"ke v x( )* v ,.)
(v '(RA"ke v  2, v G  "   "  H -'()* v '(R)*
(v )*  Z  eo x( )* v ,8)
(v '(RA"'(W v ,. v E-
 G v   gf"R  ?
v 
 v 
v )*  Z 

I
 x ?e.2 v 
u v '(RhHk v "!# v H)*'( x ,H"2 4 x GOK

u8u(v
u v
u(v
u(v
u(v
u(v
u(v

)*  R? 


I4 ,86e
 v 
'(RhHk v "!# v H)*'( x ,H"2 4 ,8
)*  R? ,86e
 v 
)*  R?  ,8-
'($Ohe ) x v ,. R,8' v  
'(RhHk v 
 v " ,." 2G" RR
 v '()
'(RhHk v  x v " k$H G v '(R)*
'(RhH  x 
 v GO v ,8) x k" - v '(R)*

Captulo 2. Sintaxis SQL


x o ,. ,8 x  o x $" +
 x O$ "!# v
H!]#*)* x    x ,. x I x W  $ v (  x  IG2R],8)* $O  8 G .
=i]$Gv ")* "G2  x + )*{G ,8|,.G )* x R  v2 2R+R)*
&G)*& x G2R,8  j5G x  & ,8 
|,8 R  & x ,8  )*| R    &R 
 $2 x ,8  x  G v

Palabras Clave

H!]#  x # . . X] OG  x 


I
  x  x x   x ,. ,8 ,. v
  x   x  ]88 Z ,8 | x  ,.   ,8 x R x 

  x ,8 ,8 x G"R v ] ,8 
 Z8  4(8  ,. ? x  ,8

q x ,8 R+,. x R"R  x  x x 2  x ,8 ,8 ,8G x G 
$O  v
R
 )* )* x R] x  
,8 x R x R"R x   o   x 
=RGH!]# "!]#   x

=R v  
x  )* x o G  x  R x eR x  x G x 
 x R )* )* x
$,. x ,8)* x H  x  I+ x R x   ]o |,8,86 ,8+ x  
2RG v
w4x( O)*$,. x   ],8 
k "!]# "!]#  x O  (]  8o8

] ! $
v

Palabras clave reservadas


H!]# "!#   x  x  8 8&=X]  ]88  ,.  G x G2R x )*   x ,8)*
 x R ,8  x
,.    +    x R ( G x )* x  G x G,8 K,8 
x "!# v R
GR  x  ,8 
$  ,.  x  G,8 x  )* )* ,8,.  x  v  x
 ,8  :| $
&,8 
 x  x GO)* R | x )*q R &,8)*
 x 
 x   x ,82q x GO)* R qG 
Go ,8 ) x  v  x  
,8  2   v
Sugerencia: Cualquier cadena puede ser especificada como un identificador si va entre
doble comillas (como esa). Se debe tener cuidado desde tanto un identificador ser
sensible a las maysculas / minsculas y contendr espacios en blanco u otro caracteres
especiales.

#& 
  x + $
G+G2GO
 (| R
 x 2 x  K|
 $+ "!#
x  q"!# 
 RG x )* R +o2G|R 
R q,. ) x  x   x R ,.$
G
ABORT ANALYZE
BINARY
CLUSTER CONSTRAINT COPY
DO
EXPLAIN EXTEND
LISTEN LOAD LOCK
MOVE
NEW NONE NOTIFY
RESET
SETOF SHOW
UNLISTEN UNTIL
VACUUM VERBOSE

# 
  x Rq q
 q ]o x )* { x $ OGqG2GO
G  
H!]# e"!]# eGO)* R 
]{ x  x ,.)*eG  G ,. ) x 
x ,8)*  x R ,. G
CASE COALESCE CROSS CURRENT CURRENT_USER
DEC DECIMAL
ELSE END
FALSE FOREIGN
GLOBAL GROUP
LOCAL
NULLIF NUMERIC
ORDER
POSITION PRECISION
SESSION_USER
TABLE THEN TRANSACTION TRUE
USER
WHEN

# 
  x Rq q
 q ]oR)* { x  x $ OGqG2GO
G  
H!]# "!]#
ADD ALL ALTER AND ANY AS ASC
BEGIN BETWEEN BOTH BY
CASCADE CAST CHAR CHARACTER CHECK CLOSE
COLLATE COLUMN COMMIT CONSTRAINT CREATE
CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP
CURSOR
DECLARE DEFAULT DELETE DESC DISTINCT DROP
EXECUTE EXISTS EXTRACT
FETCH FLOAT FOR FROM FULL
GRANT
HAVING
IN INNER INSERT INTERVAL INTO IS
JOIN
LEADING LEFT LIKE LOCAL
NAMES NATIONAL NATURAL NCHAR NO NOT NULL
ON OR OUTER
PARTIAL PRIMARY PRIVILEGES PROCEDURE PUBLIC
REFERENCES REVOKE RIGHT ROLLBACK
SELECT SET SUBSTRING
TO TRAILING TRIM
UNION UNIQUE UPDATE USING
VALUES VARCHAR VARYING VIEW
WHERE WITH WORK

#] 
  x R $  "!# x
  x $ OG,. $  
x
x

x
x
R
&G] H  ,8)* )*  8,  RO$  ,. x  )*?  x ,8 x

length
CHAR_LENGTH CHARACTER_LENGTH

#2    x R$ K?


 $Z "!]# "!]# x  x  $
G?,8 
+G 
2RG   x ,8)* x )** R *R  ,8 x  )e x x R 
 R x $ 
? x R 
?
BOOLEAN DOUBLE FLOAT INT INTEGER INTERVAL REAL SMALLINT

#    x R $
G,8 
G2GO
G R x  "!]# "!]# yx
  x $ O
,8  x  v '(,8 ] y 2 x e]
 k x 2RG2 x  )*)* x  
 o,8O R o (v ]2GO x  + (+ x   Z
Nota: Algunas de estas palabras clave representan funciones en SQL92. Estas funciones
estn definidas en Postgres,pero el interprete no considera los nombre como palabras
clave y las permite en otros contextos.

ALLOCATE ARE ASSERTION AT AUTHORIZATION AVG


BIT BIT_LENGTH
CASCADED CATALOG COLLATION CONNECT CONNECTION
CONTINUE CONVERT CORRESPONDING COUNT
DATE DEALLOCATE DEC DESCRIBE DESCRIPTOR
DIAGNOSTICS DISCONNECT DOMAIN
ESCAPE EXCEPT EXCEPTION EXEC EXTERNAL
FIRST FOUND
GET GO GOTO
IDENTITY INDICATOR INPUT INTERSECT
LAST LOWER
MAX MIN MODULE
OCTET_LENGTH OPEN OUTPUT OVERLAPS
PREPARE PRESERVE
ROWS
SCHEMA SECTION SESSION SIZE SOME
SQL SQLCODE SQLERROR SQLSTATE SUM SYSTEM_USER
TEMPORARY TRANSLATE TRANSLATION
UNKNOWN UPPER USAGE
VALUE
WHENEVER WRITE

Palabras clave no-reservadas


H!]# "!# R  x  x  8 8?OX] 8  ]88 '( ,8''(
q,8O G k)*G x x ] x
'(o  x  q k'( ,.' $  k   x R GO v 
o  x  x x   x
,. $ ,8  x (  x 
Ik)* { x 2     $+,8)*  x R ,8
G v R
R  x ]$ OG,. $  ,8  x  ,8 x  ])* 2)*G2R ,.,8 x   v  x
 ,8  :G2R| +,8 
q   x 2,8)* x )*q ,. ) x $  v
# 
  x ]$ O,8 
 x 
  R
 x 2 x  $
,8 
 x 
K
 | "!]# x "!]#
ACCESS AFTER AGGREGATE
BACKWARD BEFORE
CACHE CREATEDB CREATEUSER CYCLE
DATABASE DELIMITERS
EACH ENCODING EXCLUSIVE
FORWARD FUNCTION

HANDLER
INCREMENT INDEX INHERITS INSENSITIVE INSTEAD ISNULL
LANCOMPILER LOCATION
MAXVALUE MINVALUE MODE
NOCREATEDB NOCREATEUSER NOTHING NOTNULL
OIDS OPERATOR
PASSWORD PROCEDURAL
RECIPE RENAME RETURNS ROW RULE
SEQUENCE SERIAL SHARE START STATEMENT STDIN STDOUT
TRUSTED
VALID VERSION

# 
  x  $ O,8 
 x 
 Gq R
 x  OG,8 


| "!]# H!]#
ABSOLUTE ACTION
CONSTRAINTS
DAY DEFERRABLE DEFERRED
HOUR
IMMEDIATE INITIALLY INSENSITIVE ISOLATION
KEY
LANGUAGE LEVEL
MATCH MINUTE MONTH
NEXT
OF ONLY OPTION
PENDANT PRIOR PRIVILEGES
READ RELATIVE RESTRICT
SCROLL SECOND
TIME TIMESTAMP TIMEZONE_HOUR TIMEZONE_MINUTE TRIGGER
YEAR
ZONE

#    x Gq ,8 


 x  GO
 G $)*
{ x  x $ OG,8 
x 
 $2 "!# "!]#
COMMITTED SERIALIZABLE TYPE

#+2    x R $
G,8 
 x 
  x R o"!# H!]# x  x  
,8   x x  x ,8 2 x R

ADA
C CATALOG_NAME CHARACTER_SET_CATALOG CHARACTER_SET_NAME
CHARACTER_SET_SCHEMA CLASS_ORIGIN COBOL COLLATION_CATALOG
COLLATION_NAME COLLATION_SCHEMA COLUMN_NAME
COMMAND_FUNCTION CONDITION_NUMBER
CONNECTION_NAME CONSTRAINT_CATALOG CONSTRAINT_NAME
CONSTRAINT_SCHEMA CURSOR_NAME
DATA DATE_TIME_INTERVAL_CODE DATE_TIME_INTERVAL_PRECISION
DYNAMIC_FUNCTION
FORTRAN
LENGTH
MESSAGE_LENGTH MESSAGE_OCTET_LENGTH MORE MUMPS
NAME NULLABLE NUMBER
PAD PASCAL PLI

REPEATABLE RETURNED_LENGTH RETURNED_OCTET_LENGTH


RETURNED_SQLSTATE ROW_COUNT
SCALE SCHEMA_NAME SERVER_NAME SPACE SUBCLASS_ORIGIN
TABLE_NAME
UNCOMMITTED UNNAMED

Comentarios

 &G? x
x 
 2G,.  x .,  ROK  +,8,8GZ,8  x  
 x
'( x   x  v % )* { x  q2OR o  q$Oq v
- This is a standard SQL comment
// And this is another supported comment style, like C++

%"$)*
{ x OR)* 
q q,8)* x $O $H    v
/* multi
line
comment
*/

Nombres

 x  )* x "!]#*G x ],8  x ,8  ,8O$,GG  x )*{GO ,8)* x +


 
 % #( ,8)* x  x yo x ,.$O,8Ro  x )*{GO ,8 v   ,8  %
#   x * (G x ?)*)* x R )* x $q? G)*  %
#   ,.$)*
O,8)*  x y #define  x ,"H,8- x H x ,8  
". v ' v
H G
 K Ro,8 x   ,.)* x ,8,8R$ ${ ,8 v
 x   x ,8 x R?  x )* G  x ,8 x R x G,8,8R] | x  x 
,8)*    ]  e,8)*    v OI)*  x )* e $,8)*   x
,8 x R x o,8,8R x e
 q,.)*e q,8 )*GO x y m R, v 2 x 
q{, x ,8 v

Constantes

kRG  O $ 8


  ,8  x $2 x R? x %)*G
],8)* x R v #  x  x Ro)* { x  G  x ,8 ,8 ,. x x R 
 ,8 R",8 
  o x G x R,8 x )* G,. G k x ])* x Rk)* ,.  x  v
#&,8 x R x G )* ,8 +q ,8O  x )*+I5$ |,8 x 2R x RG" ,8 |ROR x
)*|   x  v

Constantes tipo Cadenas


S
8=88  x 2G,.  x ,. $  & ,.$OG,8G ww  )*  $?,8)*   | )*
 4HnK" v Esto es una cadena !]# )* R
 ,.)*    )*  G
 x G2Ro x ,8   x x e,8  x R,8  x y ,8)*   ] )*  
$,. x G4 v

v  x k ,8)*    )* k G x R],8 ( 


Diannes horse
x ,8 x  $O4XoHK. vhv Dianne\s horse v  x ,8   x ,8 x ROO x x 
,8 x  x 
  ,8  x R,8 o ,8 x eO$ v #],8,8. x  )* )*  
$)*
{ x 
 x x ,8  & x  q,.$  x o.,8    x ,. x ROq \tab v

Constantes tipo Entero


S
8 .q4  8 x x ,8 ,8,. x    R w4w  x  x R ,8 )* v #
O x 
] 
 G$ ]
 x   uG G $ u$ G(v R
  
 x   x  2 R)* 
] )*
 x '( v
,8
e x G)*  G e2G],8 ,8 $O x  R   x  x 
x R,8 x ,8  x "!]#  x  x ,8 x GH 
int8 4000000000 - string style
4000000000::int8 - Postgres (historical) style

Constantes tipo Punto Flotante


p
84 + 8
 ,. x   x  x R ( x  x Ry ,8 )* x k
,8 )*H  x R,8 x ,8  x R ,8o,8 x H 
  x  O)*RZ
{dig}.{dig} [e [+-] {dig}]

  x  dig  x )*    v  )* 2 x ,.    x  dig o x *)*

   v ]R e   x ,8  |,8)*)* x )* x    {+    G2 { 
A D (G2,8  x  v x G" x  x R x )* x  R  x ] x ])* x  ] x 2GOR  u(v. 
'( x x % x ,.$OG,8q x ,8   x  q,.$  x  v
x ,8 x 2R x R   x R x Z $ o v    +G,. ,8
 ,8 R)* x R  x   x R,8 x ,8  x q q"!]#  x R,8 x  
float4 1.23 - string style
1.23::float4 - Postgres (historical) style

Constantes Postgres de tipos definido por el usuario


x ,8 x 2R x Re  x R   k   2 x    $ x $ 
x *  2

  x  x ,8  x 
type string
string::type
CAST string AS type

?
 q   x R  ,8  x k,8)*y x  k R x  ,8 x GO x 
 *  )*  type v   $ eo x k,8 x  x R  e x  ,8  v #R   
  q)* R O x '(k)* qG  eo
  o,8 x 2RR  Gq2G x 
,8Rqq )* ,8)* x    v

Constantes de tipo Array


S
8 .Z c i ,8  
 R G x ,8  &R&OG
,8 x  x
G+ ,.$  x $G, v  )*R x GO ,. $ 
 ?,. x  x oOGGG    x 
{val1delimval2delim}

  x  delim GoG G )* $  e )*,8 x $  x  ,.  pg_type v O

 R ,8 x R  G,8,8&,.)* v x RG)*  ,8 x 2R x R   $O

{{1,2,3},{4,5,6},{7,8,9}}

,8 x  x G|  |  )* x   x G2 x qO$   ,8 x  2R x R& O
 x  v
x  G)* x R*  x  x    $Z G * R x )*,8o  )* R 
O$ )*k
e2Ge2  e$OeG R G)*] )* qG  ,8 x G,.R
,8 + x   x ,. x ,. $  v

Campos y Columnas
Campos

x 8] +,8  
 ?RO  R  x ,8  $ o x       x 

")* x
")*$
,8)* x
,8)*

  x R ,.$ r% x ,8e   x  x .,  ( R $q $q x  R x 8, 
 )*R ,.$)* x  v #   x  x     $ q  x  x x   x       v
  x  ,8 ? q o x ,8,8 x x $  v
  x  ,8 ? q o x ,8,8 x O  v
  x  ,8 ? ,8)* x   x R   x ,8,8 x|v
  x  ,8 ? ,8)* x   v

O)* x( )*,8 x R,8)*,8 x   R 



Xs. t. gt 4B  v 
 G)*yk x  y x R x )* x Rk,8)* x  x  x ,8 k R y R abstime v
#|  x  ,8   & x ,8,8  x G&,8)* x |2 x 
R v #&RO x 2$,.,8  x 
  x  x ,8  x ,8  )* x qG)* x  u v

Columnas
x  ] q,8 x 2R 
q q O)(
instance{.composite_field}.field [number]

x  instance  x R ,8 x q,. $2,. x ,8 )*| x R x  q,8)* x  ,8 
  ,8 x   x  x ,. $ k,8 2 v   x )*
 
O $
 G x 
  
x  x ,8  x   R k o ,8   x +G
  x ,8   ,8      H
 o $
Kq,. $   +  % v=  |  %e    x .,.G x x 
)*  $,.,8 x   )*  x &&
  |  x  x ,.    x O x
,8 $ 
 | G,8 OG,8 x H!]# v composite_field x ,8)* o x k o  ,8)*
  q")  x +
 2 ,8 
,.$)*  ,8,8  x  x  RO  R+ 
 ,. $2HG
G$?% ,8)*,8)*  v x  )* x  field  x ,8)* x )*
 $2 o 2%  )*,8 
"  .,8,.  x   v " field  qR  array x R x ,8
  x  +,8  x  number x  ,8( G)* x G,. ,8k ( v " x k2 x  ,8
 x %)* x R x ,8+2 
 
 x R +  )* x R G$O v

Operadores

  
 GGO$ G  x   x Z 2     2 x "!]# v 
 o  GO$ .G  x ,8 x 2  R  . . Gv q  Ro q  
  x (   ,8 x     )* x    )*OI,8 R ,8 x
  R ,8  pg_operator ,8  v #{ x R    x k$
 
  )* x Rq  | x   x  v

Expresiones

H!]# GO)* R V   ORO x  O)*$+ R x $


 $ v #   x    x
,8 x R x  .q4
r  8 8  )*$q $   x ,8  x q p
=  R  x 
)*| x( )*,8 x v
x oG". x + x o q |    x G
(
,8 x  x 
RO  R
a_expr binary_operator a_expr
a_expr right_unary_operator
left_unary_operator a_expr

)*G
  x  x ,8  x  
  x  G
G,8 x

 2'()*'($    ,8 x  x RyR  R v #R,8  


  x &  & x ,8R $)* x  .& x  & x( I  x  & 
.,8'(2 I e x $O o  
 G  I v #    x R,8,8  x Gq'($  x
 o  2R x $,8  x G v

Parmetros
x  Z8] K& 2 x  ,8 x $O) x x  x ,8 x "!# v % ,.$)* x G2R
?G     x ,8 x   G,. $O,8 x   x 8, x H!]# v # )*,. x $O{ x  


$number

OI)* ,. x  )* o   x ,. x   x ,. x

$,8)*

dept

CREATE FUNCTION dept (name)


RETURNS dept
AS select * from
dept where name=$1
LANGUAGE sql;

Expresiones Funcionales
x u V T8vp
= 8 | x )*  x  x ,8 x  G
H"!]#  o?2 + 
 )* x R+ x R{ x R 
function (a_expr [, a_expr ... ] )

OI)* H 
  x Ro,8 ,8  o o ,.  O q H    x )* $ ?
sqrt(emp.salary)

Expresiones de Agregacin
x  "V T8*$w \(8T8 . x R  ,8,8 x  x  x ,8 x ,8 x 

{q    2G ,8,.  x  $o ,8 x    v x  x ,8 x $
,8 x   ,.
)&%   G x R + x  
 | q ,.)*  )* )*   q  x R  v
#o x $" +  oG" x ,8 x + o    x 

aggregate_name expression
# expression
aggregate_name #

w
w %
aggregate_name  "%
expression
c

x
aggregate_name
 x  aggregate_name  ,8 x 
)*
x
x
x x
x x x

x R  x H
expression
,8 $ 
 ? 
 ,. R o2 
  o x 
G
,8 x|v
#O )*GO )*q ". x 
G,8 x   )*q 
G
,8 x qRO${G& R $
   $  x   "G2 x 
 
 x 
  x  x   v #e x  )*
 )*  &o O )*GOG ##G&  ,8 v #oR,.GO )*o  )*q 
G,. x
e     e x  ,. x 
   2R x R x e x  x   v #&%  )*
)* )*o q
$,. x $O,8  x   $  |  x RO  x ,. x 
  x  
 x 5$ x ]2,8 ,8 x 
 Z,8 ,8]  x R 
 x GO$ )* x  ]%R H
 o,8 x ,8 x R v
(OI)* 8,. x x 
 
|G x %)*Gq$$   $Z & x  R52,. x  u G  


 x %)*    e x R   x  4u*x G x  5,8 x R  2R x ,8 u G  
G
x %)*] q   x R$  x  x    u(v

Lista Objetivo
x  S  ]  x  2R] 
{ x R ",8 q x  G  

x k
 )*G )* x RO$ +,8)* x R
)*(

a_expr [ AS result_attname ]

 x  result_attname G x )* GZR  R


'( *,8  x )*
 $  

" R  x ,.$2 ] x  x R x ,8  ,8  $, x|v " rex
x
x x
x x
xx )*

sult_attname  R
 R ,.G a_expr G,8   *
RO  R?,8 2 )* ,8)*y x )* ,8)**  R  v " *2 
x )* ]&  G,.R] x +2
| x    v
a_expr

Calificadores
xe=8 y=8 8,8 x 2 2R x ,8  
 G x %)*G ,. $ 2  ,8 x ,8 $ 
  ,8
%


x ,. $ 2   x a_expr 
kG$?%,8)* x
x  x ,8  v

boolean

2k?,. x I x Wy 

Lista From
# S
Mp K G x ] ]  V   8 v  G,8)* v  K. x
) + G2R )*(
[ class_reference ] instance_variable
{, [ class_ref ] instance_variable... }

 x  class_reference G+   )*


class_name [ * ]

#K x )*  x  x )*q$O  Go x R x ,8 2O x 


  ,8 
] x  ,8 x class_reference v x $)*
{ x   G
    ] x 2R x ,8 
 x 
e   ,8 o
 x  I  o,8  x  ,8 $o x  
RGO$  q '( x ,8 oG,. ,8 x ]   x  R 2,84wx v

Captulo 3. Data Types


,. |R'(q    x Ro+
  G
  x  v
R
'($ ,8'+ +x R  R
  $
 R* O v ])*y  x 
|RR
|  x '( ^z{
i"|^z}|z ,.)*)* x e G2,8   k'(G v
w4x '(,8 x RZ $"'(   k x ,8R  x k  (  ,8 H!]#*2R x  (,8)*
  x ,82 x o 2 8 x  v ")*+ZR,. x  G,.R oRo"!]#
,8)*$  kR v"w4x R'(,82G2( RR]  x  "!]#  x $$)*
 ,8R k x  x $ 
R
 v  x  R'(o   R x R
'(
q

  x 
)*R v k
R
+ R'( x 
" ,8'k x  x e,8 
 R'($'(
q2GGO$"2   I   )*R$2 ,8'|'(q $ x  )*qR v

m)~m)gtb84ra$bkmmqJab



Postgres Type

  x

SQL92 or SQL3 Type

 
,8  x    
,8R x 
 ? x    x 

,8'(K x

,.'($O,= x

   x R',8'(,8G
 x 
w 
O  xqx k-
'(  .2
,. ,8  x    x 
,8  x ? k '(  )*
 
G"$,. x )* , &LO $
O
R x 
 x  x )* R'
,8   x
  ,8 2  x
R x 4 x  x )*
w 
2  xox R-
'(  .2
  x G *Rk4 x 
2  x   x 
  x  
R x R
G
x(x IR x q x    x 
 x o
)* x ( x    x 
H ,8  x ,8
"$,. x )* , &LOO 
O
 x  x e,8  e
G)*G ,
$'k x    x 

,8 
,8 , 
G

R

.,8 )*

G,. )*$ 4 



R



    q,   x

x 
x 
x 
x 
 x 
 
)* x 
x )* ,
G'

2)*$  x 
x  x R
G

,8 )* $
x )*GO ,8h

Description

Postgres Type

 x 

SQL92 or SQL3 Type


 x
 
R )*
R )* x
R )*)*

,8'( x

R )*
x R

R )*$)* R'k )*q$ x 
,.'($O,=
O x  x

Description

)*RO , x  x   x 

,.  e)*G ,'k x 


  x 
x 
? ? x  x  x
,8  x ,.
R )*q $
 x   R )*q x
$
"R )*
    x 
R',.'O$,.R
 x 

Nota: The cidr and inet types are designed to handle any IP type but only ipv4 is handled
in the current implementation. Everything here that talks about ipv4 will apply to ipv6 in a
future release.

m)~m)gtb84ra$b
{cf8st
f^t
fb8mfb

 x )*

Postgres Function

,.  x  

SQL92 Constant

GG n x ^n
R )*n x ^n
R )*)*n x ^n

,8 
,8 O
,8 O

x R  R
x R )*
x R )*R)*

Description

 x )*q x ,8 O x 


  x
R ,8  x R x 2$,.R  x
R )*q ,8 O x 
 x ,8R  x
R x eR )*q ,8  x 
RO x 2$,.R  x

R
+'( G .'(   x   ~ ] GG )* x  vwx      x "!]#
,8 x( O)* x ,8GH 2R x R (OR  x q "!# $ k R v  R'( '*k 

(H!]# ,.)*  x ,88R'(|&2)*,8 R'(+2R x  k'( ,8']|  $,. x  
 x k'( ,8''(  x  
R'( ' 
 x 2R x  ( v k   x )*-

G R ,8 x( O)R'( R W65"'(k
R'(G2R x  x  R G4 
?2 q,8$ x q ,8 G  x ( -
  x x RR'() v
& '( x  | x    x ,8  x ,8 x  x y*R'( v  v
x R

GO& x  x  x  x )* )*I,8'(,8- x  v ")* '(R& x
x ,.R  x  v  v $   R  x  x e)*  R  ,8  x  x  )  x R )*GOI,8'(,8-
x 
x '( x RR )*
x G",8 R  x G v x )*e2G)*2 G")* '(
x )* ,R 2)*q RqR
G)*$   x R x 
 v
'($)* R'( x  x k   x ,.R  x & x  x 
   v %'( GR'(G2  
  x    x ,8R  x )* o.,.   x k'( x ,8)* RR'(qO  x  x   v

Nota: The original Postgres v4.2 code received from Berkeley rounded all double precision floating point results to six digits for output. Starting with v6.1, floating point numbers
are allowed to retain most of the intrinsic precision of the type (typically 15 digits for
doubles, 6 digits for 4-byte floats). Other types with underlying floating point fields (e.g.
geometric types) carry similar precision.

Numeric Types

 )* ,q,8 x 2 Z R? x  4 x R


GO x   x y 
'(R
R]
 x  x  x )* v

m)~m)gtb84ra$b
|kcd*arsB
ab
Numeric Type

Storage

.,8 )*


O $
 



x 
x 

G
G



x 



x )* ,


O $ 

 


R

Description

2GI,8 G
,8   x
?  :,8 2  x
?  :,8 2  x
 ,8   x
 H,8'( ,8 
"G ,8   x
GO 
O x 

"G ,8   x
2GI,8 G
,8   x
w  x  ?
,8  x ,8

Range

x  )* 

G,. )*$ $,.G
u G,. )H ,8
  
uG G R
uG $
HI u G,. )*$
 ,8
x  )* 
R uG G

%'( x  )*GO ,'(


  Z+ 8, O x  x y R'()* ,GORO x x ,8
  x  v  ?RQ  8 8 
l`  x p
= c .lZ8=8? )q x( O)*R  x|v
%'( x  )* x 
    x     )* x ,.  Z x ,.)*  2 
?'(  v

The Serial Type


%'(+ R
 Z,8  ,82|+,8 x R ,8R k )  R'(  x ,8)*
 x  x  vKw H Z ,8   R,8G& x 
  x   R + x R O G vwx R'(,.  x 
)* )* x R  x ,8  x 
CREATE TABLE tablename (colname SERIAL);

G
 
  x (R,8  x 
CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename

(colname INT4 DEFAULT nextval(tablename_colname_seq);


CREATE UNIQUE INDEX tablename_colname_key on tablename (colname);

Atencin
The implicit sequence created for the serial type will not be automatically removed when the table is dropped.

w )* ,8 (G
 x ,8+2  x '(q H x  R)* ,8    k'( x
 R 
,8 x R x x *  q  v "
R'(   k x *,8)*)* x ,8 G x   
k   -
  K
CREATE TABLE tablename (colname SERIAL);
DROP TABLE tablename;
CREATE TABLE tablename (colname SERIAL);

%'(
 x ,.k  )* x x '( R x R  ,8   y  x  k`kz
plz|^ z v

Monetary Type
Obsolete Type: The money is now obsolete. Use numeric or decimal instead.

%'()* x  &H ,8  x ,8k '  ,8 )*" x 


G x RR  x|v
w4 R
 ,8)*   ek R'H# ] #e'( x (' q)* x R
q2'(  2qR'(o)*
x RO,8 x 
 x R  x   x   O8)=v

m)~m)gtb84ra$b
t
fa$4m$rBab
Monetary Type

)* x 

Storage



Description

 ,8   x

Range

u $ G(v R
uG v 

x )* ,k   ,8'(q)* x R$ x '(  * K v

Character Types

H!]#  x G&k]O )*O],8'(,8GO,8'( x k$,8'( v R


| OR&'(G
kR
G2 x    R  x Ry'(k)*
 x GO$G"+(k'( ,8' x  -,8'(q  x 

  x ? )* ( ,8 . e x R'(q2 $ R'( G v

m)~m)gtb84ra$b
m$rm8IarBab
Character Type

Storage

Recommendation Description

,8'(
,8'(K x

Character Type

u 
R
x 
R

Storage

"!]# 4 ,8)*R  
H!]# 8, )*R  

Recommendation Description

R"

,8'( x


R
x 
R

~ ,8'( ,.
H!]# ,.)*R  

" x  q,8'(,.R


   x 
R'  x   
Z    x R'
?$O  G4  x 
R'k '
 )* 

%'(q  x '(G    x 


R',8'(,8G| v %'( x )*o x  '( x  
 x R'(  k 'e,8 &R
   x G x $ x $)* vHw  
x Z x  x   ]'( x   vGw no  x 
R' q,8  x   x  $ ,8'(
 
'(   G x ,8  x   % # v %'( | &

,8)*  R )* x k)*
,8'( x 
 x  R  $2 v

m)~m)gtb84ra$b
a8sImQm$rm8arBa
Character Type

x )*

Storage

Description

G

%'( k,.'($O,8R
x R x 

Date/Time Types

R
"!]# +R'(  
 "!#e $ x e )*qR v

m)~m)gtb84raR ^ kma6Wsd*aB
a$b
Type

R )*)*
x RO
G
G
R )*

Description

 Rq,8 x R x x 


' R x eR )*
&R )*q x R 
& $q,8 x $ x x 
 x  R
 Rq,8 x R x x 
 x  R )* '(q 

G

Storage

$uq~

Earliest

 u$  u

Latest Resolution

u  
G

u $$
G
$uq~

u G  u *
) ,
G 
u 


G

$ G  v 

v 

Nota: To ensure compatibility to earlier versions of PostgreSQL we also continue to provide datetime (equivalent to timestamp) and timespan (equivalent to interval). The types
abstime and reltime are lower precision types which are used internally. You are discouraged from using any of these types in new applications and move any old ones over when
appropriate. Any or all of these type might disappear in a future release.

u )* ,

u )* ,

Date/Time Input
e x R )** x   k,8,8R x  ) x  x   )*R& x ,8   x  w
,8)*$  ."!#,8)*R
 GR    x  x '( v %'( GO x  )* x '
 x y x  x  |,8 x )*   R'( R x  R*,8 y'(
?'( 
 x ROG v %'(],8)*)* x SET DateStyle TO US  SET DateSty,8 R'(
  x 1)* x '*  $ 3 R'(,8)*)* x SET
le TO NonEuropean
2Go'(
  x H1 * ])* x ' 3(v %'( O)*G R'(
DateStyle TO European
 G   v
HG X  a" 8 q R'(],82 x    $
"R )* x   x R'(]
,8 x  R )*q x  v
G)*)*'(Z x R]R )* x   x G q] x ,8 2G x 2 x  
G2
 -
G"
2R x 
 v
date

%'(   k x   q x   ?'(q  v

m)~m)gtb84raR ^ kmaqifc
Example

 x  $O u G
u  u
u u $
u u $
u u u $
u  v G
u  u
G u
u  v G
G 
 x $O  ~

Description

x  )* 
 
w u )*R$ GO
]5$ $ 
 u x   x )* 
  x 5$ e$ 
 u x )* 
g5$G   x K u x  x )* 
G& x 
G
w u R)* x '$ $
w u R)* x '$ 
G& x 
G
 x  
   '(,.)*)* x 

m)~m)gtb84raR ^ tfl~~ra)sImst
fb
Month

 


,8.)*
E 
 x $O

x 

Abbreviations



G,
G
 x

x

Month

,8'

)*
,.R
G
)*G

Abbreviations



,.
"$"

Nota: The month May has no explicit abbreviation, for obvious reasons.

m)~m)gtb8
ra) ^ km)t
Haa)kl~~ra)s4m$Ist
fb
Day

 x 
 x 
%H  
 x G2 
%'( 2 G
O G
R  

Abbreviation

H x
 x
%H $%" G
  
%'( %'( R%'( 

H$

time

%'(   k x   )*q x  R v

m)~m)Xg$tb84raR ^ sd*aifc
Example

(v G






G 
G    

Description

w u
w u
w u
w u
")*
")* u
")* $
")* 
")* 




G
G

5  x  R ,8(


 
5$ x  (' |)* ( O u

$
$

timestamp

?$ x   '( )*G2R)*R


,8 x  q ],. x ,8R x  R  x   $ x R )*
  k  x R  x $
 BC   G  x   x  &R )*k$ x  v HG  v
AD
%'( 
1999-01-08 04:05:06 -8:00

*$ R )*R)* 
 ?k'( ,8'  w ,8)*  x  v
w4x    R  x ?'(k G
)*
January 8 04:05:06 1999 PST

  v

m)~m)gtb8
ra) ^ sdya9|t
faoifc
Time Zone

"%

$

Description

,8
w
w
w

,"R x E % )*


u  R  ?H%
u  R  ?"%
u  R  "%

interval

x GO
 |,8 x ,8  k 'R'(   k x  x R
Quantity Unit [Quantity Unit...] [Direction]
@ Quantity Unit [Direction]

k'(
Quantity  vhvhv -1 0 1 2 vhvAv 5 Unit  second minute hour day week month

century millenium8$
G   x &  ? ' x R65 Direcyear decade
x
,.
 ago &G)* v
tion
Special values

%'(   k x "!#4,8)*R   x ,8  x ,8 x  2G  o )* x   q'(
,8 x  x  $R
 CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP v
R
"!]#  OR
H,8 H,8 x  x R ,8 x  x  x ,8 v

m)~m)gtb8
rabi ^ a8smG(km$4as4d*aMtfb8mfb
Constant

,8 OW x 
,8'

x(x 
I x(x 

Description


 x 
 x ,8  x  )*G  E
u u u $     x )  )*

#R?'( x R'(&
 R )*
O R'( x '(
  )*G

Constant

Description

x
 
x 
R G
R)*O
 (

w   G
 x R
 x R x 2$,.R  x R )*
x '( 
x '(R)*O
x 
'(R 

 
 k'( x '(
   x   current  G GGO )*R'(

 | ZG 
 v "q
  qk x "R  now x )H ,8R  x  v ,. O

 8U k x (R  CURRENT_TIMESTAMP$k'( ,8'k     x (R now v


now

Date/Time Output
R  )*R,. x R x  R'(  2R  w u G"!#k w4x  .RO    x 
R
$ x )* x $  x R'( zkma)\a v %'(q  $  
+'( w )* v

m)~m)gtb8
ra) ^ kma6Ksd*aMkcccab

nw n
n "!]#n
n2RG6n

Style Specification

w u R x 
%H    x 2R
 
  x 2R
 

Description

n GO)* x n

  x $R
 

Example

u  u u
u u u 
 eG, u
"%
u$(v u v u 

 u
 u$(v  H%
 uou 
G uv  "%

%'(*  q R'(y $e x  )* k  ,8 y x  '( ReR )**$O x
,8,8  x ,.k ''(q$
)* G
%'(y"!]# '(  x  x x  x   x    x R|k'( ,8' GO)* x G
k'(R'()* x R'   k k ,8
 v HG kR
"% )* wx  '(
'( +R x  R ,8| x ROGR  x  x  
  v

m)~m)gtb8
ra) ^ kmakrnarHtf
a$fIst
fb
Style Specification

 E x

Example

u$ u u  
u G u(v 
%
u u u   $u
v $ "%

x  GO
 R  -
| -R'( x   O)*$",8'( x R& -

,8 x
 G 
GO| x 
 vw4xkw *
)  q'q R ( - -

week



century



[ Quantity Units [ ... ] ] [ Days ] Hours:Minutes [ ago ]

%'($2GGO$H$
|R R ,8
'(q$ x ,.q HR )*R
G

0 % '(  %"% #y x   x )*


)*R?2R  v
0 %'(  %"% # x   x )*
$OR  v
0 zkz} z H!]#,8)*) x

x $O G   *k'(,8-


 x  ,8R k x R
x $O    *
R'(  x  x y e x   x
v

Time Zones
R
"!]# x $R,8)*$  k R'"!]# 
 x R  x  R ,.$+  v

x
x

kGGR.R'("!#  $ ]'(?   )*  R|


 )*R
? x ,8$    v
%Hk]
  G)*H

0  '( 
'e'( RR  x '(
 x ,8 R  )* x HR'( )*,8 x
  v
0 %'(q    
 )*q$ x  ,8  |,8 x R x ( x R& R 2G ) %"]% v
% )*] x  x '((kO ,. x '( x e)*G x x e x  G2q,8 R k R'y R$
k R )*o2 x ,8oR'( R ()*$OR'( ''(o R'e $
 '(
x 
 )*
 x $O G v
%"y  ER'(k  R ,8   ("!]#,8 RR )*k$ x  x  k '  x
 )*R
Gk'( ,8',8 x R x
R' R x  )*G( x  )* ,8?R )* q x 
,8 x R x x  x  k R| )* v8 OR'(RR )*$ x q    
 )R'(q x 

x  x 
R) )* x ,.$  R  x '( x ,.,. x '( x   
 '(
2$ x 
 )*q x R'(,8 k'(
 v
R
"!]#  x kR )*y$ x   ) '(* x 
x  x 2R) 
RRG xu $  x  x Go'(R
,.  )*   x " 
R)* v
R k '(  x $  R )* R,8   x  x x 
2
  x $ k% )*o4% v
 + R x R )*$R x R x   x x GO+]% ?$  x R - x  x 
 x k ,8'G x %
)* % v % )*G,8 x 
G R ,.$R )*e x '( RH
O

  x  x RR'(,8  x   x R x '( x ,.     x R'(
Z )*
 x  v
%'($2GGO$H$
|R R ,8
'(qR )*q x q'(

0 % '(q%  x 
 x ) x 
O $   eR'(q,8-
 x e  G,.R  x 2R)*G&R 
|R'(q    
 )*q x  v
0 %'( %  x   x )* x 
  o2G'(,8  x  2G yk  x y )* x 
x( O)*$  x RR'(q,8-
 x  x ,8 x(x ,8  x|v
0 %'(q"!#,8)*)* x z+iz#^|^z RR'(q )q x  &R'(  xv
w4  x x $ R )* x  o2,8 G (R'( )* x ,8) % x )*|2G)*
 x k v
Nota: If the compiler option USE_AUSTRALIAN_RULES is set then EST refers to Australia
Eastern Std Time, which has an offset of +10:00 hours from UTC.

Internals
R
"!]#*    x G +  $
" ),8 ,8  R  x  v %'(Gk'(
R'( x ,.
o ,8,8 o  ,8 x ?",.$ ,.  R x  x R+)*,8 x '( x]uG~ R ( x 
'( R $  x R'(q2 )*  x R'((R'(q  x 'k R'(q?  $(v $
 v
,8 x  x   x  R'( u R',8 x R Oy)*$-
  x GG x yG  x  & x 
,8 x   x  x  
'kO x 
,8  x  x o R
HR )*q'( x  G v

Boolean Type

R
+ R+'(o"!#   x R
 v 
,8 x '(
q x q  x  k$
Gn nn  n v '(  RXn x - x  x n.  x  )* )* x G  x  x  
R
x "!# 5 ]## & x  R ,8 
 
R  R v ,. x   x  x ]  x   x
 x  G x ".  x $ $
|
 RRo  
,.)*R  qk ''( +R
 v
 2G u  O v

m)~m)gtb8
rab+tt
am$fB
a
State

Output

%HW 

nhn

 

n n

Input

% ]
+nnRn 4n)nn)n6n
nu n
#"Rn n4n  nn x n)n x jn
n n

Geometric Types

 )* ,R
GG x k  )* x   x $&2 ?GI,8 v %'()* x $)* x $
$R'(q x  O)*+'(
$2  ?  R'(qR'( v

m)~m)gtb8
rab+jkat
d*arsB
a$b
Geometric Type

 x 
 x 

Storage

Representation

 

G'

u



G'

 x

x 
R
x 
R

hA 


,8 , 



h hP


R

G
R
x 
R

 h
4 u
4 u
 u
 u

h
h
h
h

u h h  
u h h  
u A4 h  
u vhvhv

u h u vhvhv D
u h u hv vhv

Description

  x  x 2,8
wx(x o x 
x Rq x o2G
)* x 
,8R x   $&
  e' )*  
R
 x
 x '
 
 x  )*  
,8  e$'
,. ,. x ? x
  

O ,8'2GZ Z x ,.R  x
  x yR 
  G
 kG O)
O  )* ,q
O$  x  ,8'k|2,8 x   x  R  x R  x  x R)* x x  x R2G,.R  x  v

Point

 x R $'( x )* x HRk  )* x 2  x     x  ,8- 


G)*G ,R v
 x ( G,.  e  x R'(   k x  x 
( x ,
x ,
where
x
y

y )
y
is the x-axis coordinate as a floating point number
is the y-axis coordinate as a floating point number

Line Segment
# x )* x R   $.2 x G  |  x R v
  +,8 G  x '(   k x 2 x R
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1
,
x2 , y2
where
(x1,y1) and (x2,y2) are the endpoints of the segment

Box

~  "| x  e +  x R k'( ,8'k Rq,8 x  '(q v
 G,.  e  x R'(   k x  x R 
( ( x1 , y1 ) , ( x2 , y2 ) )
( x1 , y1 ) , ( x2 , y2 )
x1 , y1
,
x2 , y2
where
(x1,y1) and (x2,y2) are opposite corners

~  " R   x *R'(


'( k  ,8 x  
 x
 x R $ '(q k& 
 x  v

 x R v %'(,8 x


R'(  
'(,8 x
( x G '(,.

o$   x x  ReR


 2 v R'(,8 x  R'(q,8 x
x  R)* x  ) R'(q x  

Path

'(].2 x 
,8 x(x G,.R R]  x  v ',8 x K x Ek'(R'(
O+ x  + x R x '(2G x ,8 x(x G,.R  x K,8  Kk'(kR'( 2+ x
 ( x q,8 x(x G,.R v2 x ,8R  x  popen(p)  x pclose(p)    R ,8
R'k x ,8  H x x ,8  x  isopen(p)  x isclosed(p)   
2G ,8G '(q x o
GO v
R' ,8  e  x R'(   k x  x R
( ( x1 , y1 ) , ... , ( xn , yn ) )
[ ( x1 , y1 ) , ... , ( xn , yn ) ]
( x1 , y1 ) , ... , ( xn , yn )
( x1 , y1
, ... ,
xn , yn )
x1 , y1
, ... ,
xn , yn
where
(x1,y1),...,(xn,yn) are points 1 through n
a leading "[" indicates an open path
a leading "(" indicates a closed path

'(&  
2 x ' O2 x R v= RR'(|
2  x |O Z] (v u 2G
 )* &R'(k'( ,8'e'($ e x  o   x  x '(G2 K,8  ?" x x R
,8 x & R'( x )*  x R2('( x R'( 2  x R   kG *,8 2 x  x 
'(  v %Z'(]
  R xy x ,8R  x upgradepath o   Re,8 x GO'(q  )*  x
  G )  (v u G v

Polygon

 
 x k. x R R]  x  v 
 x ]
 2'  
$ k,. x  
   
  x &e,.  R'(2
 &]R  R G x R  * x '(
'(G  x  &
 (  x G v

 x +2G,.  2 x '(   k x  x 
( ( x1 , y1 ) , ... , (
( x1 , y1 ) , ... , (
( x1 , y1
, ... ,
x1 , y1
, ... ,
where
(x1,y1),...,(xn,yn)

xn
xn
xn
xn

,
,
,
,

yn ) )
yn )
yn )
yn

are points 1 through n

 
 x o R ?  x '( O x R v. '(2RGGO  x O k (v u
2G  O)* 
 x k'( ,8' '(  x  y G  x  x '(G2 |R'( 2q "
 &,.  x G2G'( 
  +,8  x R   G ,8  x $ x '(G2  v %'(
    x x ,.R  x
Z2   o,. x 
H  x   )*  x   G
) : (v u Rupgradepoly
 v

Circle

,8 |. x R e,8 x R? x ( x eo   v


,8 ,8  ,8  e  x R'(   k x  x R
< ( x
( ( x
( x
x

,
,
,
,

y ) , r >
y ) , r )
y ) , r
y
, r

where
(x,y) is the center of the circle
r is the radius of the circle

,8 |   2 x '( 2 x R v

IP Version 4 Networks and Host Addresses

%'(k,8 2RG x GkO-G,.  x w     wx G)* x  R x 


x RR  x|v %'( x |R
o'( x x k-
 x w  x R  x  x y )* 

O G  x x G x RR  x .2 x ( )* q'(2%
 w e  . v

m)~m)gtb8
rab.i+aGrb8st
f#oBab
IPV4 Type

CIDR

,8 

$O  

Storage

w  x Rk-

Description

x 


O $
 

x R+ x '(R

%'(,8 qR'(  w  x Rk- v %'( )* qG,.  x ,. $2  x GkO-

k'( x.x.x.x o'( x Rk-y x /y R'( x )*  R x R'(
x x.x.x.x/y
"
v

w

R)*)* R   ,8 ,8  R  x 2 )*  x  ) R'(k o,8   
x )* x 
R/y
) ,.G|'($+ + R x  y x ,8  k$ G+$  '(,8R] x R'(
x   v
k)*qG")* 

m)~m)gtb8
rab.iB
abzmd*Iab
CIDR Input

u v u v u
u v u
u vu
u
u v u(v
u v u(v
u vu
u

Range

Z w  w 
 ,.-
Z w  w 
 ,.-

CIDR Displayed

u v uG v u
u v uG v
u v u u
u v u$
u v uv
u v u(v
u v u uG
u

inet

%'(k x GR
k  G  x  '(  x  x    & '( x( O)*$  x  '(
x ,8   x y'( w     x |R'(| |  x|v R'(|
 k x |R*2R
w  yx Rk-2
 k'(  '(,. R v %'( x  | )*  ZRR'(,8 R
,.G|'(+R'(  x R'('(|,8 x  x  x G v" x ,8  x G" +,'(

O  | )* x + '(  v
%'( x   )* R'(  x ,8  x  x.x.x.x/y k'(G x.x.x.x  x x R x ('(
 x y '( x )
G  q x '( x R)*- v$w R'( /y OZ   ? R
& q$ 
v x   R'(
x
 x G e (  /32 v %'(   kR'(qR 
/32
/y $O(  (
x
|o '(('(2(qI  
 R '( O v

Captulo 4. Operadores
,.  +GO | +   x  G x  v
R
,8  x  x 
 xx %)* + ? + . v ? .? x
,8 K  x GZ,8R 
 G2 R)* pg_operator v   x RO  x pg_operator
x ,8 
 x )* ,8  )*  x k
 )* )* x RG(O$ + ,8  w 
 R   x    v
O
R  $
  x R| H  ,. x ,8 x ,8 x 2RO x 

1MGG 3  
SELECT oprleft, oprright, oprresult, oprcode
FROM pg_operator WHERE oprname = ||;
oprleft|oprright|oprresult|oprcode
-----+-----+------+----25|
25|
25|textcat
1042|
1042|
1042|textcat
1043|
1043|
1043|textcat
(3 rows)

#  O  G  x x 


,8|      x  x )*o  & 
)* Z
select * from emp where salary < 40000;

R)* x    O  G  x   )*e 


O$ .  G,.RG)* x  v  x ,8 o x o

x ,8  x   )* )* x R x  


x R  '( o$2E

select * from emp where int4lt(salary, 40000);

psql

  x  x ,8)* x  nn q)*&G  v

Lexical Precedence

#+ +  x  x x o,8.  x ,8 o


o,8  ,8 q  x R GH2G v #q)*$

  e O$ GR  x  x  y)* )*y,8.  x ,8 *2 x ,8  


 v R 
$,.GG,8)*)*  x ,8] x   R  v ?OI)* $ | |  x 
I
R  x  x x ,8.  x ,8    x R
+ ? G
  x ?
O
I
O v

m)~m)g)krnafnaotarm$nt
rab
ra8ana$f.smna8ra8sIafa)
Elemento

w
k
h
AD

Precedencia

Descripcin

,8 x  ,8|"!# 


8,  x 
 R  
 )* R | 



 G 


  

Elemento

Precedencia

Descripcin


 G 
GG,8'(

 G 
GG,.'(
$
  
$
  

  

G
x /

  )* $ G+  


)* x  x $O 
R)* x ,8 x  ,8 
 x  x ,8 ,8 x
,8)*  x   x 
 
)*    ,8,8 x    2
  ,. x $ 2R,8,. x
G2q%  #"
G2 ##
R( % ##
x R 
+  x +
I&)* G)*
,. x R x  x 
,. x ,8  x ,8 o R
G2    k  x 
  
x 
$,. x
x R,8,. x   ,8
x x  ,.

w ]
##
% ##
IR  + )*+O$ .
w4
~ (% 
# w 
I

 ,8'(
,8'(

 G 

 G 

%


Operadores generales

#] .)* 


? x  x  xx %)*G R ]  R
x R 
q x   R  x )*{ ,8+'( R  R
" )* v

m)~m)gtb84ra$b
ka$rmt
rb
Operador

O
I
l
I

I
O
GG
@@ O
ff

Descripcin

 x ?
}
 x ?  $ }
   }
w 
 }
$
 }
?  
}
 x ,8 x o x 

% w4
)*

Utilizacin

u
u
O
u lI
u O u
I u
I
O u
n2R4n[GG-n"!#gn
@U@ O
n,.8h)*,h'()* hngff
n / ,. / n

Operador

@ ff

fx
@f
@ fx

Descripcin


 ,8)*
 x ,8  x ,8 q
G
2 x 2  qq)*
,"")* x
 x ,8  x ,8 4G

2 x 2  qq)*
,"")* x
,8 x ,8  q
2 x 2  qq)*
,"")* x
,8 x ,8 G q
2 x 2  qq)*
,"")* x

Utilizacin

8,
8,
8,
8,

n  ,8n@ ffn /  / n


n'()6n+f#n v x'()* v xn

n'()6n+fxHn v x%'()*$ v x"n


n'()6nJ@ f#n v x%'()*$ v xn
n'()6nJ@ fxn v x
  ) v xn

Operadores numricos

m)~m)gtb84ra$b
ka$rmntrab+fcd*rs8tb
Operador

@@
/
/
x

5
e

G8
G G.

Descripcin

 ,8R 
,8 HO$ 

  
   
%H x ,8 
   ,.$,. x
" )*
G
 
 x
 x  x ,. $,. xkx R 
#
 R)* x R O$
?   R
 x  x ,8 ,8 x
o,8   
o,i% ,8

Utilizacin

@
@U@

/
9
/(v
x



(v
5 v 
e (v
v e(v
G8 (v
GG8 v

Operadores geomtricos

m)~m)gtb84ra$b
ka$rmntrab+atdyrs8t
b
Operador

Descripcin

Utilizacin

Operador

%"O x  ,8 x

%H x 2 $,. x

,8  (?"R,8 x

Descripcin

,8  (?"R,8 x

wx ,8,8 x

% )*G]  x  x


 
 x 
 x )*$" )*

)
mlm
m
mI
6I
l

IlI
I
}
}8
}8cG

eo e
}rG
}rGG

e
ee

Utilizacin

n  h u u  nEh 
n v  nWh  x 
n  h u u  nEh 
n v  nWh  x 
n4 $ h u u 4 nWh 9x
n v  nWh  x 
n $ h G4 nWh k
n v  nWh  x 
n4 u A u h u u  n
n4 u u h u h u  n
n u  h u A4 u  n

n  nE  x  )
n4 $ h G4 nWh  
H2 GO x q}
n  h u u  nEh ,8IMm[m
n4 $ h G4 nWh ,8R
"  x q? 
n4 $ h u u 4 nWh ,8Rm

  G}
n4 $ h G4 nWh ,8R
"  x q? 
n4 $ h 4 nWh ,8RmI
.,.'($}
n4 $ h G4 nWh ,8R
  x ,8 o x 
n  u nEh ,86,.  &6I
n4 $ u nEh ,86,8  
 o    o }
n  u nEh ,86,.  &l
n4 $ u nEh ,86,8  
Ro I] }
n  u nWh ,8,8  
n4 u nEh ,86,8  
 o G,8'(q }
n4  u nEA ,.6,8   IlI
n4 $ u nEh ,86,8  
Ro x ,8 )* }
n4 u nEh ,.6,8  QP
n4 $ u nEh ,86,8  
wx GO,8o22 GO x 
n4 u G h u G nWh  }
n4 h $ A  nEh ,=RR5
|'(O $ x R }
n u  nE  x }.
n  nE  x 
| x  ,8  }
n4 $ h u 4 nWh  }8cG
n4 $ h u G4 nWh  
x
(
x

x
# 
R  e ,8 ,8 G ,8  een  h u  nEh G'
+
 ,8 }
n u nE x }rG
n  nE  x 
|  }
n u G h u  nEh  }rGG
n4 u G h u  nEA  2G
 x  x  x
n u u nW  x Re
n4 $  nEh ,86,8  
 x R 
e9en  u $ nEh ,8,8  

Operador

fO

Descripcin

,8 

Utilizacin

n
n4 u

 h u
u h

u  nEh  


G4 nWh  


x QfO
x 

Operadores de intervalos de tiempo

R     x R &  )*R x RO


 & x  G
   | & R
" )*
  x  ] x G2ReR x   x R y,.)* ] ])*])*  x  v k
 
O$ .OqR  v

m)~m)gtb84ra$b
ka$rmntrab+naqs4far"
m$4tb+naosadyt
Operador


O
l
I
O
I
I
O
I
l
G
fO
}gI

Descripcin

wx 
 ])* x &
}
4w x R$ )* x  
$

}
wx 
  x  
$H
}
w4x R$   
}
wx 
 ])*
& }
w4x R$ )*& 


}
 x 
 ? x x GO
  
 )*
w4x RO
 ])* x & }
)*  x   x 
 
,8 
% )*  x ] 
x 
 }

Utilizacin

Operadores IP V4 CIDR

m)~m)gtb84ra$bika$rmnt
ra$bie[Mik`
Operador

Descripcin

 x ?


 x ?  $ 
w 
H 

Utilizacine

nu
nu
nu
nu
nu
nu

v uG
v uG
v uG
v uG
v u
v uG

v u(v
v u(v
v u(v
v u(v
v u(v
v u(v

nEh ,8 
nEh ,. 
nEA ,. M
O
nEh ,. 
nWh ,8 KO
nEh ,. 

Operador

I
O
I

lI
l
l
O
IlI
IlI
O

Descripcin

Utilizacine

nu
nu
$
 
nu
nu
  

nu
nu
2Ro,8 x  x  x
nu
nu
Ro,8 x R x  x +  $ n u

nu
 x   x 
nu
nu
 x R  x q  

nu
nu
?  


v u
v uG
v u
v uG
v uG
v uG
v u
v uG
v uG
v uG
v uG
v uG
v uG
v uG

v u(v
v u(v
v u(v
v u(v
v uv
v u(v
v u(v
vu
vu
vu
vu
v u(v
vu
vu

nEh ,8 I
O
nEh ,. 
nWh ,8 I
nEh ,. 
nWh ,8 MlI
nEh ,. 
nEh ,8 l
nEh ,8 
nEh ,8 l
O
nEh ,8 
nEh ,. IlI
nEh ,. 
nEh ,8 IlI
O
nEh ,8 

Operdores IP V4 INET

m)~m)gtb84ra$bika$rntrab+ie[oi|^z
Operador

O
O
I
O
I
lI
l
l
O
IlI
IlI
O

Descripcin

 x ?


Utilizacin

nu
nu
 x ?  $ 
nu
nu
w 
H 
nu
nu
?  

nu
nu
$
 
nu
nu
  
nu
nu
2Ro,8 x  x  x
nu
nu
Ro,8 x R x | 
$ n u
nu
 x   x 
nu
nu
 x R  x q  
nu
nu

v uG
v uG
v uG
v uG
v u
v uG
v u
v uG
v u
v uG
v u
v uG
v u
v uG
v uG
v uG
v uG
v uG
v uG
v uG

v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
v u(v
vu
vu
vu
vu
v u(v
vu
vu

nEh x 
nEh x 
nEA x 
O
nEh x 
nWh x cO
nEh x 
nEh x I
O
nEh x 
nWh x I
nEh x 
nEh x lI
nEh x 
nEh x l
nEh x G
nEA x l
O
nEh x G
nEh x IlI
nEh x 
nEh x GIlI
O
nEh x G

Captulo 5. Funciones
,.  $ x ,8  x G    x   x   x  v
 x   x  q)* ,8'(q q  $ ,8 x GO x
 v  x   ,8 x   x  
x ] ,8 ,8  x ,8 
$)*
 x R x   x  RO${G O$ G   x
,8)*GO  v

RR  ,8  x 


x G  v   x  x ,.  x 
q ,. )* x   

Funciones SQL

1 x ,.  x qH!]# 3   x 8,  x  ,8,8  x G   x qR x ?"!]#  R  x  x


$" | 
$  x 8,  x  
 x
    x  )* )* x  $,8)2 )  x
x
v
,8  

m)~m)g){cf8st
fa$b ^
Funciones

# 
 list

Retorna

x  #


input  #

w
4

# # input value

" k
expr expr
%k expr A vhvhv D

#(H expr  

Descripcion

 R x

  x
 o 
G x

o )*
 ]#  x

 ]
# 
input O value

Ejemplo


#  
 r" 4P


c2

## 4w )n n
c1

R x o .2 x Hk k c1 O


u %k n)*,8'Bn
q  )*
,8 )%  oG  GO 
 #"dn x )*R,.'Bn
 

Funciones Matemticas

m)~m)g){cf8st
fa$b mad&s8mb
Funciones

I$

Retorna



k h 

R x 



Descripcion

   )* x 2  x
 x  x 
,8 ,8 
  )* x   x
x )*
 x  x 
,8 ,8 
,8 x 
 x
o x RR



Ejemplo

 v $

 x

k v uv 

 x 
x  

R $

Funciones

  x 

Retorna

x R
GO

x 

String Functions

H!]#  x 
2 x RO

,'($R" v

$

Descripcion

8,  x 
ORq x  x R 
o x RR x 
,. x 
q x  x R
R x qq x G

Ejemplo

 

x G
GO v G

x ,8  x  + R],8 x  x R" |G,. ,8 v   x |2 x )* G)* x  $ 


x 8,  x G
 2R
G+#+ | %"R]2OR $OH!]#  x 8, '(

m)~m)g) ^ RMrsfv{
cf.stfb
Funciones

,8'(  x '( x  x 
,8'(,
x 
RK  x '(RO x 

Retorna

Descripcion

  x
 IR  G"R
  x
 I  G

Ejemplo

 kORO x 

2R x 

,8 x 
qG
)* x %,8  $
$ )*,8 x oR)*(
HR
 ,.$ o 2 ,8 x
 x  G"R
,8 ,8 
RO x  R"R
,8 ,8 
O,8,8G| 
x G"R

 kGOn% n

,.RR  x '( x  x 
2 R  x 4RO x  x
 x 

x 

 2R x 
 x 
A ) x hDA  x hD

 x 

 x 
RO )*A  G  x QGERO  x Q
 GEW'BD
A RO x D )2RO x 
.
 G"

#)*
  
v   x 2 x
,8O R|O 

,8'(  x  '(n Rn


,8'(  x  '(n I24n

,8R$  x '(n I24n


2 R  x nn x
n%)&n
 RO x n%)&n
)  $
 )*R'^n+n )
n%")*+n

,8 x  GORq x  nR)&n


)*%,.  

x ,8  x Gq R x   x


 GqOR R"R
,'( ,8'(
 $ x R x )* x ROq )* )* x R| $ x ,.  x  oG"R"!#
v

m)~m)g){cf8st
fa$b+nao
a)$4t
Funciones

,8'(4R$

Retorna

,8'(

Descripcion

Ejemplo

8,  x 
ORq x G"R ,8'(OnRO x n
R ,8'(

Funciones

,8'(4
G,.'($

Retorna

x R,.$4R

R

  RRh x hR

R

 RO )*R"RhR"

R

R"R2RhR



 IRh x RhG"

G"

 )*Rh



,8'(

 G"Rh x Ahh x hD R"


R"R,8'(

G"

R"RG,8'(

G"

R O x  
RIR"R )*hR

R"


,'(,.'($


,8'(


,'(

$,8'(G

Descripcion

.,  x 
q x

,'(o ,8'(
O )*GOo Go 
,8 q q
)*%,.  
G   x  ,8O$,.REG
  $
  q 
  x 
R 
,8 ,8 
G,. ,8O$,.REG
  $
  q G
R"R
 ,. $o x  R"R
,8 ,8 
   x  ,8,8GE
  ,8'(o 
  x 
R 
,8 ,8 
,8R ,8,8GE
  ,8'( 
R"R
G"RO$ 
,8 ,8 
,8 x 
Rq,8'(R 
R"
,8 x 
Rq$,8'(Z
R R"
,8 x  GORq,8'(,8
o x 

Ejemplo

,8'(O
G,8'(
n
,8'(Z x n
x ,8n'()*6n
  n'( ?n n}8}in

  )*n" )&n n+n


2 R  x n'( R'Bn n n
O \n'( ?n n+n

OR )* n )*"n n+n


 ROn'( HR'(n
G"Rn,8'(RO x n
G"RW,.'($
n
,8'(Z x n
 x  Rn u  nn u n
n)n

,. x 
q,8'(? 
 ,'( n,.'($

,'(
 x  n
,8 x  GORqG"o  
,('  n
2R x n

,'(

#)* k  x ,8  x  ,8 ) x    x kR*RO$R$O x 



)* x R+,8'(
 ,8'( v

Funciones de Fecha/Hora

# x ,.  x   ,8'(("kGk x  ,. x I x R k'(O)*  x ]$O


)* x   ?
O + $
"% )* v

m)~m)gkma6Wsdya9{cf8s4tfb
Funciones

Retorna

Descripcion

Ejemplo

Funciones

Descripcion

,8 x 
qq2R )*

Ejemplo

R )* x
G
 $R )*h GR )*

)*+
(

n x ^n n u 
u nWh $R )*

RR )*R )*

R )*

,8 x 
ORq )q R
RR )*
) n x ^nEh $2R )*
*

RR )* R

R )*

,8 x 
q R
RR )*

 )*G RR )*

Retorna

 )*

RR )* RhR )* G )*






RORRh RR )*

R
)*n x ^nEh G )*

R
)*nR nWh R

,8 x 
ORq $R )* 
G )*G n u $ 
nWh $R )*
n nEh R )* 5
,. x  ,8'(

R=n ^n n x #nWh GR )*



RORRh )*G2 x

,. x q'(O

RORn'( 4n n
'(
)* x 6nEh R )* x

RR x ,8n)* x 'Bn n x ^nWh  )*


RR )*
RR x ,.Rh $R )*

,8'(o x ,8 

 x R )*



x  )* x }

 x
Rn x L
nWh  )*

x  RR )*


 



x '(  x }

 x
Rn x L
nWh RR )*

x R )* x
 



x '(  x }

 R )* )*G2 x

G  )*

,. x 
qo R )*

R )* x   )*

 )* x

,8 x  GORq
R )* x

 x Gn
'(nWh  )*G x
 R )*n
'(nWh  )*G x
 )*G2 x n
'( O6nEh G  )*

Ok  x ,8  x  date_part  x date_trunc( ]


)* x    x 2G9
G4n
)* x 'Bng n'( nj)* x RnH^,8 x n ,8)* )*G2,8  G ,8 x R 
M ,8 n,. x  nB)*    x )&n:)*   ,8 x n)* ,8,8 x n v date_part 
)*  ^n$OG x $($  + )* x 
,.'Bn$OG x $(  x Z  
u 4$O $R )* nG,8'Bn x &G
RR
o2G
x RO x ,8 O 4K
 )*G2 x

Funciones de Formato
Author: Written by Karel Zak 1 on 2000-01-24.

# x ,8  x G  )*kG x x  k,8 x I x  '(O$)*  x $],8 x



OR 
 | RR
G HR )* x $$ x )* , qR )*R ,8 x 
 
R )*G 2 $R
| 
x  v

m)~m)g){cf8st
fa$b+na{
trd*mt
Funciones

R ,8'( RR )*


R"

Retorna

R"

R,8'( )*G2R)* R "


R"
R,8'( x $R
 

Descripcion

Ejemplo

,8 x  GOR x )* ,


 x 
,8 x 
qRO x 
RR )*

,8'( u (v
n $   gn
 RR )*n ,
$ u nRn  x
|+| k^n
 R\n ,
$ n)n x
|+| n
R )*)* n
, G nRn] x
|+| n

8,  x  GORq RR )*


 x 
R ,8'(n x ^nEh $R )*
nk u w Hn
,8 x  GORR )*)* ,8'( x k
o x 
nk u w Hn
x
x

x
,8 
q  "  ,8'( u Rn  n
o x 
,8 x 
R
,8'( u v
 " oRO x  n $  n

R,8'(

G"

R,8'( x )* ,.
R"
R $R )*R
R"

R"

R $:R$

R

,8 x  GORq x 
R

RR )*$)*R
R"

R

,8 x  GORq x 
R )*)*

R x )*G"R
R"

x )* ,

,. x 
qRO x 
x  )* ,

RR )*

 x  )*n u G(v


n)n  G  n

O +  x ,.  x   )*RGH2G


x 
)* x R] O)*$ ,8  v

m)~m)g){t
rdymscrabmrmonmasdya4tXmr" arb8sfg
Format-picture

k
u
k
w

Descripcin

('  H 


'( H 
)* x R 

u u $
u u 

Format-picture

"
"H

||
|+|
|+
|

%
 x R'
)* x '

 x
)* x

 +









Descripcin

 

$2$  
x ,8'( G 
)*$ 
R ,8 x ,8)*
)*+   
% R )*   R H(
%  )* 
R H$(
% R )*   R H$(
x )*
q,8)* R G)*G2  G
  ,8,8GE+ x )*%2,8  
x )*
q,8)* R G)*G2  G 
 )*&,8,R x )*%,8  
x )*q,8)* R G)*G2 4 G
  ,8,8GE+ x )* x %,. I
x )
q$
.
  H)*  ROG
 + ,8,G| x )*%2,8  
x )*q
  H)*G2  G (G
 )*&,8,R x )*%,8  
x )*q.   H)*G2  G
  ,8,8GE+ x )* x %,. I
)*+ u u 
x )*q,8)* G     R
  ,8,8GE+ x )*%2,8  
x )*q,8)* R    RGO 
 )*&,8,R x )*%,8  
x )*q,8)* G     R
  ,8,8GE+ x )* x %,. I
x )*q$
.
  H  $  R
  ,8,8GE+ x )*%2,8  
x )*q
  H   RGO G
 )*&,8,R x )*%,8  
x )*q.
  GH    R
  ,8,8GE+ x )* x %,. I
 o H( $ u $
o H)* u Gu
o  )* x  u 5$" O u
2G)* x o )*G
x %)  ) x o x (
,8 x R  o    
|R   x   +   x  u u ~
 $OR
)* xkx %)*O$)* x  w  ww 5 w O 
2 G
x
2G
x
)*  
(
(

%" q  )*R ,8 GO)* R x + R *k v 2 IG 
q x  x  $ O)*$ ,8  v gn n+  R
  v

m)~m)g)cwGabm$rmqt
rd*ms.c(rabmrmonmIa6Ks4d*aqtXmr" Barb8st
fg
Sufijo


%

R'

"

Descripcin

)*    x $ 



x )*  x H  

x )*  x H x( GO &

 )*
,. x )* $ 
  
)* ,8R  v %'(
% $ %(% w 
% $ %( Ro ,8 
 x   x ,8 ,8 xkx 
| 2$  v  2$ 
,.)*O )* G) x
)* ,8  v
 )* q x  )* )* x 
x 

Ejemplo


 x '
%
%
 x R' 

H

nonH  2$ ,8)*  Qoo"OI)* vnooHkoo" w ooHn


nwn( x q,8)*   2$   x R,8  v "

 GG,8
nHn  
|  oo"KOI)* vnoo" |+  x R'oo"Hn v$v
G"Z,8'( R
"!]#yRR"R2 x nwnk(R"Rk x R ,8)*   
)*$   x  
  e
oG
R x  x GORG ,8)*-k
)*: ,8  $OI)* vnKkG   $ |+| n vv

m)~m)g){t
rdymscrabmrmofcd&~arKsf wt
m$WfcdyarsX
timr
a$rb8st
fg
Format-picture

v  
$,8)*)*


Descripcin


 &R x  (,8 x  x %)*G
,8 ,8  q    x  x
  x  G o,8  x   x ,8
,8)* $] x   ,8  x
  x ,8 ,8
 x R ,8 )*
O$ Z q )*  
R x o
  x G
R 
 x  x  
O$,.-R
R x o
  x G
$ 
,8 x G  x 
)* x  o ,8 G
 )* )* x G 4 o ,8 

Format-picture

w
#

+
% &R'



Descripcin

 x R ,8 )*H o ,8 


$O Z q + 2q ,8 
R x oG  x )* x  x   ,8 x
,8 ,8 o x %)*Q 
 x o  x )*| x   ,8 x
,8 ,8 o x %)*QP  2R
GH!]#
 x   x
 x o  x )")* x  x  
2 ,8 x G2G,8 ,8 q(GH!]#
 x   x
R x o x %)*G],8)* x %)*
)* x  x %)* ? x R u $
,8 x 
Rq x %)* x %)*G  x 
x ,8 x 
R  x %)*)* x +
q,8
x %)* ,8 )*  "!#
 x   x
 u x u ex 5$(R x o x $ 
)*    ,8  u x   x n x nHG
x %)*  n n  G+ nn v 
,8'( x    nnH x 
,8 )*I x "OI)*   v  v
x )*,8  x R ,. v $'( x 
  v

 
 x   x  O)*$ ]
n nRn#jnvn w n"  x  x ,8'( xx )*G5G,8'(O u
n G n   ,.

-12

$ (R,8'( u Rn w G n   ,8

12

v ,8  x )* q Hn w nH G  x  Mn n x ,8 q  x q
o& )*  
n n v

m)~m)g)ztXmr" afa)ady:t
b8g
Input

R,8'( x k n]$.k u w "n


R,8'( x k n .$ u w $gn
R,8'(
v u 4n  v $ n
R,8'(
v u 4n v $ n
R,8'( v u n v n
R,8'( u Rn   v n
R,8'( u Rn  $ v n

Output
Tuesday

, 05:39:18

Tuesday, 05:39:18
-.10
-.1
0.1

0012.0

0012

Input

R,8'( n  n
R,8'(
4n  n
R,8'( n o n
R,8'( u )n  n
R,8'( u )n $ n
R,8'( u v )n $ v $ n
R,8'( u v )n $  $ n
R,8'( u v n G   n
R,8'(
4n  )n
R,8'(
4n  w n
R,8'( n  w n
R,8'( n#  n
R,8'( n  n
R,8'(
4n  n
R,8'(
4n  n
R,8'(
4n   n
R,8'( n# $ n
R,8'( n | n
R,8'( n | n
R,8'( (v n | n
R,8'( n  'Bn
R,8'( n  x )*G  n
R,8'( v )nK: ,8 )*K G
R ,8 )*K v $ n
R,8'( u R n  G n
R,8'( u v  n   n
R,8'( u v $ ) n $ n

Output
485
-485
4 8 5
1,485
1 485
148.500
148,500
3 148,500
485-
485-
485
+485
+485
-485
4-85
<485>
DM 485

CDLXXXV

CDLXXXV
V
482nd
Good number: 485
Pre-decimal: 485 Postdecimal: .800
12000
12400
125

Funciones Geomtricas

# )*{ ,8 x RH"" " x GHR'(  x  x *,8 ,8 o  x  x x 
 x
,8 x I x   x ,.  x  x  
|$  v

m)~m)XgR{cf8st
fa$bjkatd*Irs8mb
Funciones

Retorna

Descripcion

Ejemplo

Funciones

.

Retorna

$

Descripcion

.,. ,8 



 ,8 ,.  

"h



,8 x R4

 x 

,8 x    
x ROG,.,8 x 
,8 x   
,8 x R GHGIR

,8 x R4,8 , 

 x 

,8 x  HGRG

 )*GI,8 ,8 

$

 )*R G,8 ,8   


)*G
ROn4  v  En h ,8 , 

'( '(



$)*(
 ,8H  ('  
,8 x   
'(R n4  h u u  Wn h 

,8  R'



 ,8O$ }

,. 
 n  h u u h  nE '

 x '



 R }

2
 x nA6  h u u h  D nEh R'

  x '( 



  x  I    x    x '(n


u  u I nEA  2G
)* x 

  x '($'



  x  RR    

,8 2G4$'

R'

,8 x 
RqR'
,8 


 x nA6  h u u h  DnEh R'

 x  h 

 x 

x ,8,8 x

 x Rn
u  u I nEA  2G
n4 h
 h  nWh  

 x R'

x 

x %)* q x 

 x R'

R'

,8 x 
RqR'
 x

q GG,.R x 
 

Ejemplo

Gn $ h u u  En h 
Gn $ v  En A ,. ,8 
"n  h u u  n n v v h  n
,8 x
ROn4  h u   Wn 
,8 x
ROn4  v  nEh ,8 , 

  x '(n4  h u u h   En h '

 x nAh  u u h $ D nEh R'



 x n4  h u u h  nEh R'

Funciones

  4,8 , 

Retorna



Descripcion

k R'(4



R)*('(  x 

   H,8 ,8  

Ejemplo


 n  v  En h ,. ,8 

k R'( n  h u u  Wn h 

m)~m)g){cf8st
fabnao8t
f
arb.sfnaqstbjkat
d*rs8t
b
Funciones

",8 , 

Retorna

" x h x 



,8 x 
Rq x 
,8 x   

"
 x



8,  x 
R 
 x ]
,8 x   
n  h u u h   En h  
 x

,8 ,. GI

,8 ,8 

,. x 
qq,. ,8  

,8 
,8 n  h u u  En h 

,8 ,. GI x h

,8 ,8 

,8 x  GORqo,8 ,8  

,8 
,8 n G nEh  x  v 

 4

 

,8 x 
Rq   x   
n4
u  u I nEA 
 

 4 x Rh x 

 

,. x 
qo 

R'(  x

 x 

,. x 
qo'

 x ,8 ,. 

 x 

,8 x
 qo x R
,8 x  

 x Rn  v  nWh ,. ,8 

 x  h 

 x 

.,  x
 qo x R
 x GO ,8,8 x

 x 
 x

 x 

,8 x R   x 

 x n
u  u I nEA  2G

n  h  nEh  2G


 x 4


 x

,. x 
q  x  

,8 xku  x 


  x n  h u u I nEA 



Descripcion

8,  x  GORq,8 ,8  
,8 x   

Ejemplo

n  v  Wn h ,8 ,8 
n G nEh  x n u u nWh  x 

 2G
n
u  nW  x n u  nEh  x 
R'(n  h u u h   Wn  
 x

 x n $ h u u h   En h  


 x

Funciones


 x 4,8 ,8 

Retorna

  x

Descripcion

Ejemplo



 x npts ,8 ,8 


 x

,8 x  GORo  x  

 x u n  v  En h ,8 , 
npts


 x 4'

 
 x

,8 x 
qq  x  
 x n  h u u h  nEh $'

8,  x 
Ro 
 x  

,8 xku  x 


  x n  v  En ,8 ,. 

m)~m)g){cf8st
fabnao.c(ms $m8s
fjkat
d*rs8m
Funciones

Descripcion

 G2R' 
I (v uq )

Ejemplo


.OR 
 x   x

,8 x 
Rq v u

 x


K

n G h u u A   En h  
 x

O ($'(R'

'

,8 x 
 v u
R'


 G
R'(n u u u  nEh R'

O 

 
 x


 x

,8 x  GORq
v u

 x


 G

n u u  En h 
 x

Descripcion

Ejemplo

 '(R'

Retorna

'

 
R'(n u u u  En h R'

Funciones PostgresIP V4

m)~m)g){cf8st
fab8tb.rab8i[

Funciones

$ ,8,8 

Retorna

$ ,8 x 

G"

'(2R x 

R

G"

8,  x R 
o 
 
 ,8, x  ,8 8, n u v u$ v uv n
,8)*G"R
,8 x R 
o 
  
 ,8, x  ,8 ,8 n u v u$ v uv n
,8)*G"R
 o  G,.,8 x
'(2,.)*R
'( Rn u v u v u(v n

Notas

Funciones

)*-  x ,. 

Retorna

x 

Descripcion

8,  ,8  q   x   
 x G)*-

Ejemplo

)*-  x  x 

x 

,8 ,8  o   x  R 
 x G)*-

)*
-  x n u v u v u
v n

x R)*-
 x G

R"

,8 x  o x )2- x  R


,8)*G"R
)* - n u v u v uv n

)*
-  x n u v u v u
v n

u(v )*  Z --


eo =v R,8 v ,8

Captulo 6. Conversin de tipos


#?,8 x   "!#   x G x R x ,8  x $ )* x R x G
 )*,8   G x RR 
 Rq x x )* )*kG"G2 x|v R
o]
 x  ,8   ($OG$ $
  x  ,. x  x 
 x  G x G+R  v
 x )* ,8'(q,8 x  $O  x  x ,8 R],8)* x +  R   G)*,8 x )*k 
,8 x 
 x R  v " x )* ,8 x 
 x )* ,8  $ R
& G
 ,8G ?G2  R ?  x ,8 x    v   R Z   x I $ 
x    x )*   x ,8 x 
 x R  V$O
,8   yG] x  x   ,8,. x k ])*,8 x )*,8 x  x ,.  x ] ,. x 
2 x
o  x 2R
G v  O R$2 ,8,8  x ,8 x   x R x  
] G
  
 x     |
)* R x )* x( )*,8 x    R
,8 ,82 x ,8  x O$ |GO)* R  v
#  )* &R  x )* G  Go  O R)*G"$,.R 2$ 
 o,8 x 
 x )* ,. Ro qR  v

Conceptos generales

H!]# x   x  I,8 x x   x ,8 x o O


 v  ,8  R  x o,8  
x   ] $
] R)* x ,8)*e],8)*,8)*2)*  2$ v 
  x  x  )* R  x 2  
o)* ,.'(*)*$o x *"  

)* )* x ,8  x   ~ v ? ] x R q)*   $+G
 O,8 x 
 ZR 
 x Z   x  G x  x O)
 x  Z
$2R x R+)*OIZ
 x 
x )*'(   ,8
GO)* R x  .2  x ,8 x R    x R)*$,. $ 
  x ,8 x G2  )* )*)* x o ,.G ,8 x  R +  x  2 $O  v
H x  $ ? ,8  ,8o  )* x  {G" ,8 x  ,. x ,8,.R x
)* x R " x G G2,8  x  x )*]$ K],. $ v #e)*Oe k 
  x   x ,. x 
  x ,8  x $ x  )*  v (  x 
I]   x
,8 x "!]#GO)* RG,. ,8 x )*| R ,. x ,8  x $ v )*,8 x )*G& 2$ 
2R
Go x  ,8?H x $  GH,8)* x ,8,8 v &OI)*  o,8 x   R(
tgl=> SELECT text Origin AS "Label", point (0,0) AS "Value";
Label |Value
----+--Origin|(0,0)
(1 row)

  x  ,8  x $  ]G"


R  x  v " " x R  x ]|,8 ,8  x R x ,8
GR  x - x  x Z$2  x  q x ,8  )* x R v  x R  +G 
+R,8)*
 ,8O )*$   x R v
ke,. R,8 x R ,8,8  x  x )* x R o x H!]# ,8  G
  x  R x $

 $+ ,. x 
2 x qR + x H x $   
 
O)* RqR x G".  x G ,. x  . o x   )* x ,8)*
,. x O$ .   )* x R v
# )* (+ x ,.  x 
O x  H )*q R + +,. x     . ?  x
,. x I x   x ,.  x  v #$  )*  x ,8  x q  x  x x e)*
)*
 ,8  G2?*,8 $ 
 ,8 x   RG2G,. ,8?  x  GR y $
,.  x +   x  G x G G)* v

 ,8
x  
x

GIR 
+ q,8 x   R
x o G,. $O,= x H!]# w " % x o   $ +  x ,8 x   R x x R  v
#]  x  x  ,8 x   Ry G2GI  
 ,8 x 
 ? $
,. ) x + HGRG 
  w " % v
 x   R+ kw
]G *
R     (  x k ,8 , x kw H# %  x
G,.Gq,.)*y x % x ,8,8 x R x R ,8 ) x $2 ]R  ,8 k,8  2  k"
# % G
 x =R R +,8 x 
OR o x ,8 x I x R x )* v
,8'(q  o o ,8 x 
O x R  x  o  x ,8 x 
 x ,8  x  x ,8   

 x  x    
2 R)*  x ,8  x GGO .  v kk$ 

|'(G  R ,8 x  ZG
  +,8 x GO x $O|  x )*OI+ $Z,8 x 
 x ,8  x 
 R  x R + x $ H!]# ,8)*)*  x R x G
GO v
 x   (   ,8 x  x ,. x 
R o  x ,8  x  ,8 x 

 x o R)* x x  
)* x ,8)*  oO  x   $)* x  )* )*
)* x      x  v H,8 x   ],.     x ,8 x  ],8 )* 
,8O R Go x  x ,8 x ],8 x GO x 
  2G  G x   ( 
k)* x  v 2Rk2 )*  O)*$,. x   ? x   (? Go O$q 
2   $  o,8 x  x o k x  ,8   )* R  x k R   x 
    ? )* )*+,8,8K ,8+ )* x oR x 2 x  v
 x  $ R
 ] x  
,8  ,8  x $)*  I 2R)*o 
,8 x  ,8Rq,8,8  | | x Z"!# v k,8 x ,.],8G
   +  x 
  x RO x  x )O ,8)* ,   x  v  q,8R ,. x  ",8,. x
o 2G4 ( x  R  x  x KR   &G
,8   $O G|)* q 
 x R] o,8 x  $ v  ] K I  x  +q  K   K
 G"  x )
  G   x   
 x  $ &  x 
 ,8 x  
,8 x   x    x eG 2 $O    x  
O,. x x Q% x ,82 ,8 x
)*  x ROq
 q
R  x  x $O oR   x q 2  eGO x )*  q
 x x  v
#  x )* 

R  x  x   q ,8  x ,8 x  e x ,8R ] 
  xe ,8  + q G)*  x +
 $  x $)* 
,. x   
 ,8  x     x R,.$O  xe $,.  )* x  x  x R x $( 2 $O  x 
,8 K,8 x|v

Guidelines
%"    ,8 x GO x oR G2R x  (  x  x  x R  GO
 x ,.  

0 #,. x 
2  x  )* ,. R x k GO x  x G x x ,.] x   $  x  x R
)* ,8   v
0 #&   x |ZH  O $  |,8  &H x  G  x ]  x ,8 x ,8 )*  x
RqO  $  x $ R $ | x x  ?   x R  |I
 q   v
 x R o  x ,8 x R )*,8  2 R  x  
   x &,. x 

R 2 G)*   x +(   +  RH2 k2  ],8 x GO x
 x G,.G2$O  v
0 #qR o  x q    x eG2R x  ,8  x   v  e x  2RG
x R  x q   x  o x( )*,8 x q + ,8  x  x R KRo q  
,8
,8  ,8 O R   x k $ ,8  x  )* ,8 $2$  x  
x ,8  x G   x   x  x ,8$  v
0  G
GO'(+ x ,.] G x $   OI,8 R+2 x ],8 x 2  R x 
x ,8G2 R,. x 
2 x )* ,8 k   v kG2R)* x   x ,8 x 2  RG2Rk  x
,8 x 2R   q q
G2R x  $G 2 x  x ,8o ,. x    G G GO

 x 8,  x 2 )*  G)*k] x 


 x   +k x G  x ,8  x  ,8 x 
 x
x(x G., G2$O |  x ]  ,8 x   R v
 ,8  x  )* x G(  x k,8 x    x O)* )* x 
  x k,. x 
2 x )* ,8 
$O x  x ,8 x  x  x ,8(   k  x  x  x ,8 x  ,. R,. x   
 ]
)* x R,8,8Z x  $    q x 
 x ,8 x x 
G  x x ,8)* x q,. x 
2 x )* ,8   x   x ,8 x  x R 
 v

Operadores
Procedimiento de conversin

karm$ntr&naoa)mIcm8sf
u(vwx ,8,8  x  x  ,8o  x I q,8R x G,8R 
]  )*R v
 v " ( x 
)* x Rk  x GO$ + x  k x - x  x  x  x ,8 )*

q+ )* )* 
q]
)* x  v
vw4x 
R  )* x Hk ,8 x I 2R"$,.R,8 x x  |,8 
 x qq{H)* )*o
|,. x )* R 
 v H H ]'(  $ x  x ,8| x  GOR 

)* x R x G$OH  x  $ & 2qq  v

v ~ 2,8oG)*R&=R  v
 v
,8 x   R  +O$ .,8 x GH)* )* x )* v
v " 2 '( x O$  x       ]  x  ]  
2G O$  x o x ? GR  x    O$  v
, v  R  ZGO$ .Z,8 x  ZR RZ)*$G" ,8 Z |  v $ 
  x '(I G ,8 R+ Ro2    x Ro v "  
G  x
,. x  R$  GR    G  v
v " $ % x  )* x q  x RO +?K x - x  x K,8G
  ?,8 x  R 
 x  ,.)* G x x )* ,.
RO x 

G)*R ,.
 2G4  x  v " '(
x q)*,8  ,8R $2)*|  x R   x ]ZG" 2 $O  x 
x GOZ
 o ,8,8 x ,8O,8R x   G G  ,. q x )+ 2R v
H  *G2R x R x k,8R $ x R x ,8$2  x  *   
,. ) x   x R q  )* x RoK x - x  x v
 v ,8]G(,8 x  Rk,. x  q=R Gq R )*G",8R
=R R x 
K   ,8 ,8R  |,. ) x  
 v " $ 


 )*|  x ,8 x  $ x  G  x x  x  x  x ,8|2
 x q x
 v

Ejemplos
Operador exponente

H k'( x  G" x  x R  x k x (,8R 


R)*]
)* x  v
G")* x $ $2  x q x   x ,8 " x 
 )*&$ )* x R& x  G". x R
,8 x   
tgl=> select 2 ^ 3 AS "Exp";
Exp
-8
(1 row)

R)* x GO"( x   ('(,8 x ,8 x 


 x R )*GO 
 ,8 x   R+
 
  x Rq
tgl=> select float8(2) ^ float8(3) AS "Exp";
Exp
-8
(1 row)


tgl=> select 2.0 ^ 3.0 AS "Exp";
Exp
-8
(1 row)
Nota: Esta ultima forma es la que tiene menos sobrecarga, ya que no se llama a funciones para hacer un conversin implcita de tipo. Esto no es una ventaja para pequeas
consultas, pero puede tener un gran impacto en el rendimiento de consultas que abarquen muchas tablas.

Concatenacin de cadenas

x ]2 x R o )*    R x RO$


=R$,8 x  o$  x )*{ ,.,.)*e,8 x
 ,8)* OIG"R x   v #,8  x   x )*{ ,.$,. x  * x G2,8 ,82 x
I 2R &,8 x  +GO |,8 x  G x  v
x  )* x R x ,8 ,.$
tgl=> SELECT text abc || def AS "Text and Unknown";
Text and Unknown
----------abcdef
(1 row)

 x  R,8GH x   ()* o H 2R % x  ?  x ,8 H ?R
 x )
|
)* x  v H " R )* " x GO  G
? x R
],.)*   v

 x ,8 x ,8 x ,8 x R + x G2G,8 ,8G


tgl=> SELECT abc || def AS "Unspecified";
Unspecified
------abcdef
(1 row)

 x ,8'( x x  x  R x ,. 


  R.  x '( x ,8 ,.$
R  x  ,8 x    v G)* x GOG
 x $  & ,. x R   

,8 x  G G  + x  
qR + 
)* x |2 x    x )*{ ,8 v  

HKR  GK Zo $+,8  x |  x )*{ ,.GG"R$oq,. x    v
Nota: Si un usuario define un nuevo tipo y define un operador || para trabajar con el,
entonces esta consulta tal como esta escrita no tendr xito. El analizador tendra ahora
tipos candidatos de dos categoras, y no podra decidir cual de ellos usar.

Factorial

OI)* ]  2Ro x x GG2 x G  R  v %"OG  ,8  x  )* x G$H  ,8R 
+  x  o+ x R v ,8R o +GO .Z +ZR  x  )* x R
x ] x   ,8R  "
R)* x  x R,8)*k  v " G,. o x  
)* x R x )*{GO ,8 x  x 2RGq x R x R],8 x GOR G2R$ )* x Rk x  x R
q oG$ $,. x  ,8R  v
tgl=> select (4.3 !);
?column?
----24
(1 row)
Nota: Por supuesto, esto conduce a un resultado matemticamente sospechoso, debido
a que en principio el factorial de un nmero no entero no est definido. De cualquier
modo, el papel de una base de datos no es ensear matemticas, sino ms bien ser
una herramienta para manipular datos. Si un usuario decide obtener en factorial de un
nmero real, Postgres intentar hacerlo.

Funciones
zmcm8s
fnaocf8sf
u(v~  2,8o x  x R qG",8Rq x ,8R 
]  2R)*, v
v~  2,8o o)*R| x   v

 v ,8 x  2R R   x ,8  x &,8 x )* 2) x )*,8 x ")* )*
x %)* qH )* x  v
v "  '( x  x ,. x  x   $   R Z   x  +   x
2G,8 x GOR 2$  ,. x Z H +R  x ]   x ,8 x 
  v
, v  k  $ x ,8  x ,8 x  I 2R)*G" ,8 k ]  v
 ]R 2 x '(I  ,. R R2    x R] v " ( 

  x ,8 x  R oG2Rq H   G,8 x GOR  v
v " ",8  
 q  +$ )* x R&  x  2 x  ] ,8 x ,8 ,8 
,8 Z
)* x Z + x  ,8 x   x ,.$OZ,8)*  x x 
)* ,.$RO x 
G)*G ,   x  v H H'($ x )*$,.  ,8R G
)*  x    x +G  O H  ,8o x |  

  G,.,8 x ,8,8 x k  2G+   ,8 2 x R x )* 2R v "
2 ]'( x ,8R  x  x ,8&  x GK ]   ,8 ) x  
 x  q
q x RGO q  ,8 x ,8  v
 v ,8?,8 x  $*,8 x ?=R R R )*G",8RZ,. ZI 2RG
K ]  q,8 ,8G
 q ,8 ) x  G2  x R  v H H'($
)*  x ,8 x  R2 x '($ x x  x  x R x ,8+q  ,8 x  v

Ejemplos
Funcin factorial

H '( x  x ,8 x ,8O $&  x  x |,8R , v 


  G2RZ $
 
  x R+,8 x   $,8 x 
 x  )*R ,.$)* x 
)* x ] x  o
 x 
tgl=> select int4fac(int2 4);
int4fac
----24
(1 row)

G '(,8'( x  )* ]&GH x   ?


tgl=> select int4fac(int4(int2 4));
int4fac
----24
(1 row)

Funcin substring

k  x ,8  x  substr ,8 G  x , v " x  )*  x   x  
H )* x R8$ R 
x  (v
H   )* ,8 x x ,. x  x R o,.$  x  oR 2 x  ,8 ,8RR R R 
 ,8R)* x Rq,8 x  9% x ,8 x ,. x ,. x  Rq R Z
tgl=> select substr(1234, 3);
substr
---34
(1 row)

H  q,8  x & G,.  (o,8)*]R 


,8'(G,8)*  Z x ,.$2]  
 x 
 x oR $ x  x ,.GG x   Z x  x ,8 x 
  o$R R=
tgl=> select substr(varchar 1234, 3);
substr
---34
(1 row)

 
qGRO x  O) H x  $ ?(
tgl=> select substr(text(varchar 1234), 3);
substr
---34
(1 row)

Nota: Hay algunas estrategias en el analizador para optimizar la relacin entre los tipos
char, varchar y text. En este caso, la funcin substr es llamada directamente con una
cadena varchar en vez de hacer una llamada para realizar una conversin explcita.

R6j?9Bi?j^??)&)Xj^^?Bh))g)BR??))j-?BBh)9XB??QM+
tgl=> select substr(1234, 3);
substr
---34
(1 row)

"4?&BM6Mh4ihX&
tgl=> select substr(text(1234), 3);
substr
---34
(1 row)

Resultados de consultas
)J)XL)c)X\)
B  X^6\6M+)XlX^4"4?h)
B g BX6)?l?BBh9XB?H?9+"6?jd?4ih4&B)j?vg"6?R
B J "6?h)L?J#l?jBhhhj \&J?XB)$d)"iBR$4i?Rw)
ij&B?jB?hKBjBXM?BBhBXjB)rBBi?j&v6\6[?Q?B?
ijg?&lBj&"$+?[$?j)"&4Bj6J?&"[+B&"$
?vj6BQ^Bh"lijL??B?h

Ejemplos
Almacenamiento de varchar

)X)ij?&B8X?))J8Xj&&c)"XB)\)?6??BhijB6?^)6
"6?)BQh?BMjh)&Bv)X
tgl=> CREATE TABLE vv (v varchar(4));
CREATE
tgl=> INSERT INTO vv SELECT abc || def;
INSERT 392905 1
tgl=> select * from vv;
v
--abcd
(1 row)

Consultas UNION

[ijB6"Xi?j
 
  )?L? 4iBh[#iRB^2 &) j??2[B)
?j?6?Bhr^L"4?h)


)J)XL  
B  &J46?j
h?jr6L?4B?X)hj?r4?h)B
B
  B?hX)r"6?h)M?rX?)6?
  )r6\h)?)4h??r?&
i?R6?  Q?X?&B9M"6?h)J
Ejemplos
Tipos sin especificar
tgl=> SELECT text a AS "Text" UNION SELECT b;
Text
--a
b
(2 rows)

UNION simple
tgl=> SELECT 1.2 AS Float8 UNION SELECT 1;
Float8
---1
1.2
(2 rows)

UNION transpuesto

jh?j4 
  6^j)Rh6h)6$M?jrh?$?M?&X?)6M8

!
"

tgl=> SELECT 1 AS "All integers"


tgl-> UNION SELECT 2.2::float4
tgl-> UNION SELECT 3.3;
All integers
-------1
2
3
(3 rows)

lBl6)hl)?hB)?lB)BR??))jr$#?l6r6X
&%w&hj'%h?dB")(
j"d46#4&)?# i?J?#Q?v XB?XQ"X?l6)Q J)B)?))j +*
XR??r&jg26v&w% &hj$
% ?^X)B^B)X&j Bv6?4iX?j&)"2B
R?,
tgl=> CREATE TABLE ff (f float);
CREATE
tgl=> INSERT INTO ff
tgl-> SELECT 1
tgl-> UNION SELECT 2.2::float4
tgl-> UNION SELECT 3.3;
INSERT 0 3
tgl=> SELECT f AS "Floating point" from ff;
Floating point
----------1
2.20000004768372
3.3
(3 rows)

-

Captulo 7. Indices and Keys

B44M)"[?&R??#4

#4BB)BXv)h)6v4j&RBi . B6Bj?v4)(
BdR?Xj?&B$i?)6$Rh?h60/^B?X)" 64 )r)??iR?jB$?#"J.(
?l4?4
B)"j?Rl6
/^??"6?K??1 /^$&)BX6?BXv)hl)B
?B6?jLh?&r)" ?BX")6^?dhB"6BXjB?B?X

 /^l j&rjB?B?i4r&R4B4
2d)X2)$5)JB76?Qj9Bd?B4&)"8JX?4 )lX?& B)&98
Xj?& &) )?6&B)Q))6jX?)4j)h i?R ;: 4)hjX?)62?26 h
6X?8hB[j)h$896& j[)?X?)?B4 3 j+)&?4["?B4
jC (Q?Bh4
/^j? 6^hB
X?)69 8JhB?[j)jMX?)6[?Bi?4
Xj&)?j cih?B9 j j ( hQ?Bint4_ops
44 <  Bv)?-4Rj X?)6?BvR) (
"j?hM4RjHX?)6 jKB)c4?#
>X@ ?XX)$ 5))#?B4Q? B jhB["6?j-l6 (iB4BX?j
2=3 j

)J??#8jB9&j")h?hr26?B?2X?)6 +  B6BX?jB)c?B?i4$X)d
68jR?#)6)Xi46
8)2)6dj)j
BR) /Lj?Bj&)??^"?"
6j&M)B6&)h?^hQ)?QB4 hQhBM)6)h
243

6h"["jc?2"4Jh4Q)B B)6C)XX6[&hB[ j6XBR?B?X  B


"H)XX6&4Bj?-)2?&?4&Bh)?jlB  B&)&(c)MB?&(XBX"BX9h4
 B "4 )XX6&hBd?&?4&Bhr6RB)"^h46?BA2h&)&BUrRR?6??
)??B C  BB)6#)XX6
&4Bj ?$R#?&?&4B)h?j  ?D /L?& BU ??B)BRB?B
EQ&Bh?ChBQ)??B&[6C6?4? &?B?X)hQB)H)?-jhB6Q)Xi4&hB
)"??^B)&?MRB ^Bj-BRc9hL9j?&?)4?j?X)??^)$? c[X)6
/L?hB
K+)&?R6h)?rB)6L)XX6&4Bj6
/^??-XjB?M6?B&"v?B?i49? 6X)G
/^BB
 B 6h"2h?&?)F
)8?B+dRh?h??Bcj?#?dMij&)?6^6?B8jBMH JI
& IK; K) LK& L
)hd? j6" @  Bd?h4iBX
j &i?R6QJ ?B?XQ B
D /L4 hB ?B)
X)?48box
Xj"?BR8M /^Bh )?O
Nj)h?B
j?B
+Xh?Bl" bigbox_ops
j?B &?h???X)h?B-)??jB)B 6)Xh?j c4?) (
F
Nj)?BM (j?BJXj"?B)4
chBM4?d
/^B?X^j"XhB???M?)  P P;PP
B?H6Rrj?)"hXj^6B?8
j)jX?)6H6) (
$  B
poly_ops
jhr"iM?B?X
) bigbox_ops
polygon
/^??)XjB?J6?B9Rlh4?B
/^BBB)[?B+
 B 6h"9jh?&?)&
)h???B?#?^Xj&)?jL6?BQBjH II
; QRI
. QRL
& LL
; S; T)K Q Q
/^??XjB6?K?BvMBR8?BV
/^B4B-)8?B+
 B jh4vj?&?RU
)h???B?#?^Xj&)?jL6?BQB j)h
=
Z
 "Bh?iJB?B 
WX RiX62&4Bj 6jh2&?Y (Xj??B+ [h
64&)vMJX?4
l6\
[ ]_^ `7ab[ c0d hQ"&jc )^?B
j)hvX?)6?6r jvXB6h"ih?B ?B?X8j ?B R)-)B
 B
int24_ops
j?B
X&)?6c8)R?B$?B&)h? 4C)??iR?jB c ?&??)?i
6JB?B?X4jdB9)hMhB)B?vMX&)"4L))?B6B?B )?^int42_ops
?
/^?6?X??c"B)?g9 e)BR& 
 B??1
SELECT am.amname AS acc_name,
opc.opcname AS ops_name,
opr.oprname AS ops_comp
FROM pg_am am, pg_amop amop,
pg_opclass opc, pg_operator opr

f

WHERE amop.amopid = am.oid AND


amop.amopclaid = opc.oid AND
amop.amopopr = opr.oid
ORDER BY acc_name, ops_name, ops_comp

Keys
Author: Written by Herouth Maoz 1 This originally appeared on the Users Mailing List on
1998-03-02 in response to the question: "What is the difference between PRIMARY KEY
and UNIQUE constraints?".

Subject: Re: [QUESTIONS] PRIMARY KEY | UNIQUE


Whats the difference between:
PRIMARY KEY(fields,...) and
UNIQUE (fields,...)
- Is this an alias?
- If PRIMARY KEY is already unique, then why
is there another kind of key named UNIQUE?

J?&)j
6#? hBl?6-6hd?4B?Lv6X?1/ 3 j
+)&? jX?) <(
X?hQB&?Bh? ?B8Jj

k  Xj&?B)?jLc?B)BhB?vhQ/^?^?Bh??BQBM"1/
: 6?&?

D B6?&?#R&?B?dXB6)?B 3 j
R&?

HB)lXj??X?jBj-??& 6 <  Ri#i1(
??X?j#?r?Bh?4 82B?9B&hJ /^B?i#?
B9?&)!
6 l  B?
68?$6
?^4?h?c
/L4c4hR&)J??i)h?jL"4?"B))X^X??4ih?
/^??)?6QB)9B?B)&
m 1
E BM
n 9hB)j$B&Rv?B
/^BV
/^RBHh2&? 9 Xj??X?jo
/^??r)?h2?Bh?
?
D B&XB)"J
6BM /MR?^BRc$ /^[X??4ih?jBBR&
%  ? X?BX< %wiB$B
B)4 ) ) ?BMjBM#B)BdBBMh)  pqq4 ?rBj
jhB6$6?XBvXj??X?j ?9BR& EQB"4 j"l& 6v6"@ /^?B?B hB
)h)6hB)B)&M)"9B? < m 1 /^hjB#jhB$h)?l?&hBv)hR[4?hM
B ij??Xh?Br)?MvBMXj??X?jj
^)& H  BR& /^?#?B4hi?4B
(
r "ih)6?hM?B8B?4hBMX??4ih?j#B)&MjBjRih)??vBBMX1
??X?jX
s 3 j-R&??j&jlX?8[XB)B$hB BR& jB$X??Xh?Q "j
%  ? X?BX< %$
% ??jM %w?_
/^??H6h??H8hB^6)&X??4ih?jBjB?t
/^?hCL?h i"B
B)& H : ?B8RrhBMB)&?B?+hB) BUu
v

U
:

?&Ro64w
2
x

-y

r6#jH?4B??B8B1/

)B#"?4?BQ?


r?&j66h?jB)"BJhQ)
Bj?#BJ)??1/z  )
x
x

lB?M4?H
: "6d))8)?hB)?RiX6vBM"1/
6 cB?
x : ")h4?)6Q?jB8)B4)"F
!




"





x
x

w
/^B8BBj& (B?B{
6rR B#+??X???d6RB)" k  6BRnE??
j#&6B46RB&hB)J?B?X
)"M?&?&Bh)h?&(4BB k  4
Bj<(
BMBM?&?4&Bh)?jB)&"?QBM"?4?jB
4 /^4L)LhBM)h)6 9 j6"
j)??1 / Bj& (B?M?B?X6Rc?B?X46^lB"X k  6)"
)Y/^)BY(

 Bj#&RQ4QR? RBQXj&?c)?jdjc?X?&B6)6?hhBM)ihB)
j j& B-B)[)#?B&hB6[Xj?&B <  B2?B+ )"9&"?L)?&?4&Bh (
?jB)J)?|
/^B?i Ri W_*[
r h ?&j"h#X)6[Xj&&B?#4?
dvBl&"vhX?Bh? 4 j& W_*[
r &R?cvjC)??jB)&)6"66X
)
64?BCR
66h" ? &)? &&j M  B}
/^??B)d4X?)ij&&)B-j
+)&?
:

CREATE MEMSTORE ON ~ table 

COLUMNS ~ cols 

B??rBjB)^4?6?BQX&&)B\6J)8+)&?4

)XM
/^B4X")hlQ?&)R
6#vB?Qij&?B)h?H?6BM/^B4
?hB k  6X?X)h?j4 ?-6)LhB))?BQ? X")hijBj
hB)B["w?4cRB
)hMhB{
6?j?B8hQ&j"MhX?BB)^64B?)j6X)X
s
/^)B8dXj&?B)?jjr4?
/^B?i?lBj
B?^)[L6XjB)
jB?rj
64i)#"??&
BUJB)MQ4i?Q)BB?B
()h6J6h)c"??BQB)Bij&?B (
?jX
s m 1 /^h)?Jj
/^)Bcv& 6BM"h?4c4jhX?Bj) B?B)Mv4jchB
&)Bj WX*[ r "jc?4H?
j
(JM?B)^?B+)&8?&)?B) r}r  W_
X&&)B
)&?Bh???B WX*[
/^?hBjK-j
6B1 /L\
r /^B?X i"4)4?B?i4{
)6LjdhBM)XB)cjdB)M4BB?B&RB?)6LjLJX?
X&?B)h?j
, 6
c?4)B" 44?4Bi4

Partial Indices
Author: This is from a reply to a question on the e-mail list by Paul M. Aoki 2 on 1998-0811.

)XX)$5 ?8) ?B??M[66 h)?<8KhB&66?8B 


"?iR 1 jh46jh )?R?B?X/^?h )?h)CJi?X)h
??


r B jHRJ PP J)?Rg?B?i4r6?B6?B?<(X?)6M"?Xh
 Bl&)?&&j?)h?j$)h?)B?B?XM?hB? 4?K)?KhBl?Mj)9 6#hB)-i)
"h)?^2)?B4Q R?B?BLlX4h)?)B /^Bd??)?cQrhB
/^Bj?
R?8)B 6hhB^)66X?)h 6)X@ h?&^X6h9 n8  B")"8jc2"4)6Blj1 84
X$ C XD 9 f-.f Hh)??
B
j)   BLB)?
 B^&)XB?B4??)h^RB  Rh?)H?B?Xl?6&
)$R?Bv6?X?j /^B?X&?B?X$

-??
ni)B Ljh?&?))?j /^B?X
?B?X2

6< nX 8J BhB^Rh9hB)?Bcj?8X??B|
/^B)"J?X)h6&)hiB
:

/^$6?)4?

6&#6X
/^) 3 2Bj6
/^B)"L?B )R6dhBiKhB
"?4&
)")6?X)??8)B)?j h8B9X"6B?B^&)4?)??R#?</ "j?&6
)??u
/^? ?hi4B
Xj
))&hvRB &?)  B4^)"? hBd4BRiR4
B)""?&jB$6)BRj"?B) k  hJ9 8B4@ BU
6 (B)""?w
/^?
?)C 6@(j2+hB6?^h4)X)6hB6?4ih??46?&)h?LhXBB?j?r6X"
; f;f ))B jH&j"M?B&)h?
 BC 6X$ C XD l f-.f  ^l"iM

Notas

-

B B 4j&Sj&)? jB ) ?
B ) 16YS $ '6?4 &* 

Captulo 8. Matrices
Nota: Este debe convertirse en una captulo sobre el comportamiento de los matrices.
Voluntarios? - thomas 1998-01-12

6h"r&?99? )h?hj$Bl?B6h)BX?[6R#B?j$X&^B[&)h?
&???&4B6?)Rr?B?8h 2cR?Rg?  4li"46$&)h?i4KrX)??JY(
[?Bi?Bv?jB?jJK6)? ' )M??6hRH6^6RJ?&4lX"&j
BX?)6XL&)h?X ?j
)6
CREATE TABLE SAL_EMP (
name
text,
pay_by_quarter int4[],
schedule
text[][]);

ijB6? )? X")$BMX?)6


??)&) :  e &r XjBMX)4B$h?v 5)
B)&+Bl&)h?lB??&4B?jB)B9h?^ [)MeMe))4+24"6Bhl4
6)?)?2?&6))4&?)2lB &)? ?&B6?cB))$h?l  5)j6XB?
XR"J4iBhvB)?^4&)B)c4&?) l : Bj[B)X&j )?BO
ab @c])8
# \6viRB68R"i)?&4Bj28B8&)?)BX)&?9cR?"B"
??) ?j86))&jXj X&R 
64 XjBX
?4B6\K6hB 4&
?"iBM ?6?B)?rM6M???)M)M?B?X?)??))H6"X)


INSERT INTO SAL_EMP


VALUES (Bill,
{10000, 10000, 10000, 10000},
{{"meeting", "lunch"}, {}});
INSERT INTO SAL_EMP
VALUES (Carol,
{20000, 25000, 25000, 25000},
{{"talk", "consult"}, {"meeting"}});

r4ih 6"???Rv?QXcc4Bi?j&RB&4Ri?j)6)[&B1Q)[?)
&)h?X66h 6-B#&)h?L ?&4BjX?B)#Xj )  CB)??)#Xj
)4w
 : Bj)Bj&j[B)XM)?B)[XB6?Rv6j : e 0r} ?&"B&jl(
)&j2X& )XX4L?&4B BL?)2&R?X2^?L   68XB6?h
"6d?j[Bj&4[^?jl&?R2Xl)j[iR&?R"C4CH6B Y (
&6"M 
SELECT name
FROM SAL_EMP
WHERE SAL_EMP.pay_by_quarter[1] ~\
SAL_EMP.pay_by_quarter[2];

+----+
|name |
+----+
|Carol |
+----+

6??4BMXjB?h9"XMjRljh"iiH?&6"jj
?jr4&?)j

-

SELECT SAL_EMP.pay_by_quarter[3] FROM SAL_EMP;

+----------+
|pay_by_quarter |
+----------+
|10000
|
+----------+
|25000
|
+----------+

R&Y 4j&jMRiX)?)?&4Bll?6?Bh)"X?jB[?l&)?ld6M(
&)h?X  6h&XjB6?&"X#?&l4?&BhCd?)Bd ??)#?
?&"jr)#?)?96&RB


SELECT SAL_EMP.schedule[1:2][1:1]
FROM SAL_EMP
WHERE SAL_EMP.name = Bill;
+-------------+
|schedule
|
+-------------+
|{{"meeting"},{""}} |
+-------------+

Captulo 9. Herencia
XBh?Bl?R$iR?)?4$9? 4h)j$2j
 "i&jMj$X?)6 C lX?)6
R&Y48X?) ^)h)?&capitals
BhR?X?)6
B44H

capitals

CREATE TABLE cities


name
population
altitude
);

(
text,
float,
int

cities

- (in ft)

CREATE TABLE capitals (


state
char(2)
) INHERITS (cities);

"")  "$hj2?j[)?j2B)&4
 6X)jBB^?B6h)BX?L
j?)?jB+)??hBM?9X?)6 capitals9 j?J8j )?QB)&Mr+h+L
)hlBR?[ jh4) X)cities
BR :l

 ?jB?h#cR?4? H h?l)h?h
j?)?j
N)hc ?J)h6R&Y BR?cR& &"j9QBhR
Njh)B
[?v"X?6?j . : 4&)
h?Bl )h?hLh)j6)hv&6Q
6R)K^hBX ;  capitals
j6"2B^i?RB4")B?B^ )?)
h)HX?)66lBXjB?h$B)X4 4BX? )BhlhR?)H?B6)BX?)
B
X?)6X&v9j)?)?Bh)BX?)6r4XB?B4
Nota: En realidad, la jerarqua de la herencia es un grfico dirigido y acclico.

 h4&??26??Bh9ijB6?[BXBh2h)r?)
X?)r6?h))
2B2)?hY(
d\ PP ?4&)
SELECT name, altitude
FROM cities
WHERE altitude > 500;
+-------+-------+
|name
| altitude |
+-------+-------+
|Las Vegas | 2174
|
+-------+-------+
|Mariposa | 1953
|
+-------+-------+


h"d?Rg)vBXjB)
?Bj&4lj)?)X?)i6?BX?B#?)X(
?R?26RB^46)?X)??)R)2^C)?h?BX?&^? PP ?4B?
XB6?96$ #?, 

SELECT c.name, c.altitude


FROM cities* c
WHERE c.altitude > 500;

lM??Q6??Bh@
+-------+-------+
|name
| altitude |
+-------+-------+
|Las Vegas | 2174
|
+-------+-------+

-)

|Mariposa | 1953
+-------+-------+
|Madison
| 845
+-------+-------+

|
|

)#g4&$l6)$
?B?il[?lXB6?l24??R)696"
 j)?)2X?)626cities
4 jM6\&Q??^?2\)")#8B44BX? <r cities
XB)
M?)r"B4
[c&
)B)??))v \  u ^ B&?4d?
???)Ri?j^\
)R)9 #gXj&j"6RXj&484 1,X

Captulo 10. Multi-Version Concurrency Control (Control de


la Concurrencia Multi Versin)
?hY (w6?  jBX"BX  Bh" r  MB8 XB?X))B))B8)Q&\)
?)$"6h)X?B4 2Bl)92)h #BhBL&?h?6)? -)? r Y6B4,
B"j"X?jB)v?9??&Bh)X?^) jh4
r

Introduccin

?"iBi?^?8&)j$ #?8h"26?6h&)2)698Rj98R ?j


)L4XjB"jLXjBi"BX?) j6"l&)B?4Bd?#XB6?64Bi?L?l)hjQ
&?Q&?h?c46?j 9  6Q6?B?KXM&?4B) ijB6?9B9)6 )h?RX)
)B6)XX?L9B[?&)d?$Rj
B2)"XdR\
X))iXJX&86c
?4&&))6c6? 4BMX4B^-6)#)X)?2)j28B) jMh
 6L?lv?Qh)c)XX?j&c4v)h?BXjB?6hB[&6rX)6)jMJ
?M)Xh)??Ri?j8$h)B6)XX?XjBX"Bh 48?M&?6&?M$)h6"jjX?1 (
B)BlXC [$XC ?H?XXg)MX)M66?L?9)6)h
(
 2?ci?R?"4Bi?94B"&??6?#^c&j?82?j^r24#?j ?M
j r F ?)vdBXc?h& ?4ihR$d)hQBCBh)  X& N?X
Xd?? ?c)$9?[6X?h29)h$L96h2&j^?l?4XlBBX
?49?6X?hM?4X?BBX9?49??X
:

Aislamiento transaccional

6)c) : 
9
k  BriR"B??4Kr)?6?)&?Bh9hRBRiX?jB)l & (
X?vr"-BXB
4Q6hB?jHvX4B Bh"
h)B6)Xi?jBHXjBi"Bh

 6jrB4iBjB6)Bj
6X


?X)X%w6i?Rl%
lB)B6)XX?8?$)h6X?jJ-BhRBRiX?jBQ44RJ)4BQX6)
?X)BQ"J??4
[B^h)B6)Xi?j ?Q8?)j9"?)&4BQB)M#?<#?&BXB
MB)^6?Q&j?iRjBhRBRiX?jLX6)
?X{%w)Bh)6&%
lBQhRBRiX?j&c4?c[v\Xh)$BvijB6?)4cj??BLXj)hh#[(
?)lL6)?6)XCBdijB?X?j 8M 4#BXB#^hRv?)v
R?6)XL?XB?i?jLB)^?Q?B6)RJHhM)B6)Xi?j^X6)
jX)h"^B?c4?2R??R&?BLdX"6jB?Bh )XX?B4M626i?#&)
)\


\^)
)X\&)\Qi)
Lectura "sucia"

Lectura no
repetible

Lectura
"fantasma"

-)

Lectura "sucia"

XhBX6)
 Xhi6)
 Xh"h??
???)R?


j ??
^v6??
8Qj??
8Qj6??

Lectura no
repetible

j 6??
j??
8j??
^j??

Lectura
"fantasma"

j 6??
j??
j6??
8Qj6??

6h"j "4i ?XX6)B??R??R&?BQ4?R??)?

Nivel de lectura cursada

 ?{?X)4 BB?B9)?6?)&?4BLjX84

6h"  )B^Bvh)& (
6)Xi?jC6^h4ihL4C68B???^XB6?dj?c)h[XR[RB[8?
XB6?X&BR) lBBXM
B)hw
%w6X?jl %JB?X)&?jQhRBRiX?jBX& (
X"iBX6)jRB?Mh4XX?jd?XB6?h
BBv?4c4?QJ
BijB6?&?4B)M[\XQB4i?R4X? ) u
 ^   gj
 ) \}@   u 4hv6?B^)Xh)??RljBvh)B6)iX?j
XBX4B9B^i6))+BhBX?[6Bv)B6)XX?d[?BhBhl)XhR??)6
?M6)wM?hMh)B6)XX?Q$X6 l)" '  8X)6[  )"44?Mh)B6)C (
X?L69MJjXK2X)&?)K?[? 9  LX)6M6X66c?9?
j)@ #?l+?hj
\&?jB#B6?#j)lj$?QjQh)BRiX?jB?QXB6?h
6$"h4ih)
6h? [
X&Jj)$$? B$? 6)?6)Xr?XjB?X?
M [?lXjB?h i ?lB4c2?j?[?l6)h?)XM?[XB?X?jBj6
)X)??4)v))v&)"XJ)M4H)Xh)??))B)

 4BQ4&i4BQv?M"6?)BMl?v\Xi?j 
0 \ $ 
X ij&B
XB6?RBBQM)8R 46)j)B6)XX?B4XjBX"Bh

Nivel de aislamiento serializable

8XUg XC ?X"j"6?jBd4KB?K&R2)?hQR??)?B hRB)XX?jB) ; )B


BLhRBRiX?jC6hL KB?K4?)??R)?B?LXc?hd6?8?jl)h2X6)
)Bh9Q?8)B6)XX?ij&?BX BBXLQBK)hj26X?j2BK?j[X)&?
)B6)XX?B4vXjBi"BhlX6)jQ)BhL?#hXX?j L?#)B6)XX? j[?
RBj4h9B?c4c&?[?2\Xi?j#9hRB)XX?jB
4#6?+ij&^6c?)$h)B6)iX?1 (
B 44^\X))^4)j)R^6?)8?)HXBX"B4&Bh
-Bd?d4c4?^j9BLijB6?LRB?d\XX?j8BLX?)X?j 
 
u  ^
)  +
}M O) u B6h[6?B8)X)??)42jBlh)& (
6)Xi?j ijBX"4BlBdX6))g?4Bh)B6)iX?j&vh)hQ[)X)??)R
4h
?Q6)QQv?jh)B6)XX? 6vX6l#)" ;  X)6#lQ)"i?)& (
6)Xi?jQ6v"ji4$iR&?R ?8? ;  4-X)6vB8h)B6)XX?
XBX4B6 i6)B)B6)XX?^6?)??))?$6))MXj^j&B66\


ERROR:

Cant serialize access due to concurrent update

jB&h)B6)XX?j 6?)??))?dBJd&j?i)[?R8X)&?)48[h)
)B6)XX?B44J) rM?hRBRiX?jL64?)??R)? B)9&4)
Nota: Tenga en cuenta que los resultados de la ejecucin de SELECT o INSERT (con
una consulta) no se vern afectados por transacciones concurrentes.

--

Bloqueos y tablas

6h"M"Xl)?j&jl?j&RlijB"j?)$)Xi4dXBX4BvQ?j
)h &h)?) C: ?BM[4hjM&jjM[?j#?j)?" 6h")h&(
?X)&4Bv)BhMv?\XX?vBX?)4i?jBc&?Bh)vj"j96"j(
X?B)
J)M46)jrj?)r)??X)X?B4 9  j$?j
&jj$M?8+i4
) : iX6 B"  C 6cR??8^)B6)XX?86)B?4B^B)6?M)X?j
?h)B6)iX?j
: 4&$M?4Xh)&Y L6962X&Rh?X?LdX?6?9)2XjB"j?))X4l (
6H
?Xh& 6X?
?)K)B)K
R?RKvh\Xj&)? $  hr
h
6jB8&)"XBM?B&4?)h)&Bh6) $M8?v #[Q)XhR??)

Bloqueos a nivel de tabla

XX6 B4"  jC6


l&jQ?Q)??l)h&R?X)&Bh 6j )?RM6)Q?4B
ijB6?)) J 6"v??d6hv?4Q6) [Ld^B)d\XR
BX?))6?j
N?Xj
Xj : Xi46  +X??  C 6
 j&
:

/
W 1

BR"  j+6
: ??8_ 
\}M O  u  \, _  )9X?))X?jB

ROW SHARE MODE


N?Xj
XjL?j
&jj  +X?6?c  C6 : XX6  X?6?  j+6
 B^Xj&

IN

/ 
W 1

X?6?  j+6
 vR?"   u ^  
X  \,X  )M4i?R4X?B4

IN ROW EXCLUSIVE MODE


)" W M /  + X??  C6  X ?6?c  C6Q : C(
 Bji9Xjd?j
&jj B)"  jC 6 B
i4  +X??  jC 6

c)"  j C6
)Q4i?R4X?B4
 #)?4" \u"$ ^ ) \, _ 
IN SHARE

MODE
N?X X ?^&jj W M/  +X??  C 6 B)" W M/  +X??  C6
 h  Xj&
C6
 X?6?  j+ 6v : Xi4  +X??  j
c)" W M /  +X??  C6
 Qh&  \, _ R4X?)w)X?B4

IN SHARE ROW EXCLUSIVE MODE

-f

h QXj&N?XlXQ?&j W M/  +X??  C6 B)"  jC6 BR W 1/  X?)(


?  jC6  X?6?c  C6Q : iX6  +i?6?  C6


+i?6?  j+6
 Qh&  \, _ R4X?)w)X?B4

IN EXCLUSIVE MODE
C6 W M/  +X??  jC6 B)"  jC6
 B
lX&N?ih2Xv?-&j W M/ B)"  j
BR W 1 /  +i?6?  jC 6  +X??  jC6 : X X6  X?6?c  C6


XX6  ?6?  jC6


 Qh&) 1,X \ , _  \   \@X
/ B)"  jC 6 W M/  +X??  jC6 B)"   C6 B)" W M/  +X ??<(
 Bji9Xj W M
 C 6  +i?6?  j+ 6Q : Xi4  +6?6?c  C6
:

Nota: Slo AccessExclusiveLock bloquea la declaracin SELECT (sin FOR UPDATE).

Bloqueos a nivel de fila


 6$?l
?46 "ji4X)B[X)&j?BhB$BM?68Rih)??).(
jML) d&)"Xj)v6
)X)??Rj6 j6"B#"h?B2&&&j?
B?BB[?B&)X?j#6"?)$&j?iR)
^4h&8B8?B9Y #?&$J)94
&"lM?R?jR)r6?^?BX"&BhQM?j
&

d&Rj+hB2Li4B9V

\"@   u &j?iR9?)r?R$6?C (
X?B))&R"i4Bj?)6+R&jvM6M6i??)8^j?6X
 j
?
[B?M?2B8)X92?j
)hrijB6?) +  h
j#6)j
R
?4)K6i?h)

l l
U
B?X)&c

Bloqueo e ndices

B jh4$"J"X?B24?j^)9?Xh&6X?h92Rj
dR?R
BQjX")9#)X)M4jQ )Xi4v) #?B?iM?&J?&Bh)Q48 6h"
#B?XjL&)B\)jr ?6??Bh&)B&
 jr?"iB4rh?{
:

B?XXA2 

W (  4
^?r?4 
#B?X&rh?  j&)?X?jXg4X?6?c?)R)XX6
?X&6i?h  B ?jL?4Bl?)6) 2[?lX?))6?j&6[B)
\X)

fy


B?XB)6

QLK?j ^B?c4K)?BLJ)8)XX6&?Xh& 6X?h  -?


?B ?)H6) ?)?BB)9?Q"ji4RJ
 ?jjrB?j$)?B"ji4&\HXBX4BX??jr?jjr
B?c4\
#?B?XJ"v4^"jX)U
%wBj
&h9 %

"i
rRv?jj
B?c4+r)?B$X)h?X?X+X??\)Ql?K)Xi4j
M?X&6X?h l $?jj 69??4cRd2X)?B&?))&4B4)4

Mgh?
#?B?X64?B6h)vQ6iR
#B?X h""j"X?jB ? &)8R?&XBX"BX? 6? "X)
%w6)
 !
&hjl %

Chequeos de consistencia de datos en el nivel de aplicacin

cd^?)[?X)[ j6"[B?jR?l)h6J? hB i4Bd4B?c4


d)?6?)&?BhC#?hRBRiX?jBH?jRj?<#jjlB&)B6)XX?  6
6"6X?jrjj l  LhR
)?RwR+6B2?2
4?9j_

\ 6hB
6?B?X969?9")?&4B4?6h9^&&c4dM6j?c?vLh?&
6) MQQ?8X?)X?j &?h)B6)XX?j X&4B))BB \&?jB-Q?
?M6 $"j?  j)jHl)X)??RX?jB-?)B6)Xi?jXjBi"Bh )Bh
{
4h6M??9X)lQ6M)"
)[)6R69[?l+?hBX?v2BQ?vd"h?lXjBv)Xh)??))X?jB X&(
X"iB6H$ #?&6)
) 
\@ ) u B4i?Rw)X?h?  \
,X &)$)Jj?) C  h8hB6#XBh[X)B86h"$4BjB 6
6 48h)BQ)J??iRi?jBB)X? 6h"???R)Blj&Q4?R??)?
Nota: Antes de la versin 6.5 Postgres usaba bloqueos de lectura, as que la consideracin anterior es tambin vlida cuando actualice a 6.5 (o superior) desde versiones
anteriores de Postgres.

Notas

B &)?U cR?S6 "

f

Captulo 11. Configurando su entorno


6 6Xi?jhR j"$Xj&[ijB)-6^"J?l4BjBj$&jl  6)
)??X)6?jBQd?B4)#d)? j ^)&L 6"QB?X"X)&4B
?B6)?)vv))ci4 H  jB?hM?
A2)#?M : &?B?6)jHv?)Bh) ?B6h)?)X?
)MKX&?B6h)?) 6"
6h"llB)??X)X?ji??4BM g6?  &)?jh 6j? BX6?h#)C (
X6^?dJ)hi??4B88?L?B6)?Ri?jCC\&?)??X)X?jCX??B8[K&M (
B?jQ?B4)Xh?c
, ) ?&J??X)?)^X6)^R&?"&j^ j6"^6 B
?B6)?)d44?psql
4ihj?
? &)"jBvc4QJ?"Xh?
$ #?/usr/local/pgsql
l6h???j$4JB&"v4J?"6j?jB jh"4
/usr/local/pgsql
6 ^4)?&BhL?B6R?)  jv?jX&RB 6h"v6L?B6)?R 4 ?"Xj?
C  Bl4dXBh224 B)?H6?"Xh?))hd
6/usr/local/pgsql/bin
B4? H???RdBd)?BhL4 4' 6?  B4??h)HX&

B4' #
csh tcsh
B)?


set path = ( /usr/local/pgsql/bin path )

 #4BiB4"
X&

96 ?"Xj?L46jB) i B6vB[)?)B9 B[6B??

.login

4;B)?
sh ksh bash

$ PATH=/usr/local/pgsql/bin:$PATH
$ export PATH

)gic"
86d?"6h?QJjB) H* M)Bj8)4?)B$)6&?"&jr
BLB.profile
R?-?"6h? ?  6h"9^6 R ;: 4&)6BBR4&2"iX4&(
4&Bl4 4"BX?!
)XBR B8cR?4?Q6B?Y8R)XBRBcR?R?
vBhB1 ^?#?)"dv6hX&Bh R -B4B?4BvX&?4)&4BQ
??&
)4[j"$Xj&[&?X)-68)h
M )$ #?$Xc?h)-?)H)?B)H
&)B)gF
lB?[M6X?86d6B?)B4MijBh?BR
cB)&?B?h)r26 6??#BLXBL?)X6) Xj&d?B4&r4 4ihjjY (
)) hBQv")??4)
)?Bv)"l&) . 
\&?j64J6?j
l)6l; (
jBv&)?B"4&h)gB4i4?h)v44i?X)rJ)?jrl?v)?)?2[BhjB
A m 
 X 4B&"L^?d&)?BL6?L?#)6^^)hj  #cR?4?L
BhB A W vh)&Y 6BX4)? .  i6h?vB94h 864
?B4B)BX)$B)??X)X? "4i?[&B66\l"
Q?XlQB4
XBXh)XQ
' * $ #?$XjB?h)-?B&?)h)&c
ij4+)&?B?6h)
6d?h?QJ)Mpostmaster
)4)6 6dBjBQ6h9ij46R&BijB)

f

Captulo 12. Administracin de una Base de Datos


Nota: Actualmente esta seccin es una copia disfrazada del tutorial. Ser necesario ampliarla. - thomas 1998-01-12

96)KjXlUUX)XHC?Xgr"6B6)?Mj?26?jLcRM?9?B6h(
?)X?# j6"6j)?B)$)6 9)h ?B6h)?))$Jd4
R&?B?6))$J
h6B))??))MjX [X)XK)HU
X)-)iX H  "6B6)???Rd?9)
(
&?B?6)X?#2?424c&j&Bhd#262i"4[?[)692Rj + : 6)?
6? )K????v)X")-B4c))6)jw
QB4cjr6)? [
R?[hBM?jh?$?c??4?l$")??4)-?M&)$ #M$?)?)"
)&?B?6)h?)
 6"6+"Bj&R?&B2B84B[?j &?6& ????$
6?h&j)h?cvMj)&?c?hRK?jiR
A2) #?M : &?B?h)j j6" k  hRM46j
h?XjrXjL&Rr4)??
 

Creacin de Bases de Datos

))6 )j6X")4B"[ j6"ij8gXj&)B i"))\Ri;\)=


HQ???h)?2B4XBlR$6&?Bh6hR?&?6& BX?j  jh4
createdb

)?K ?Y #?B9X&)B
jj
 &h 6"v6h) Xj?BJ)vQi)??Q?
Bi?jB[R)?2
 Rij&)B[r6J+)$ X jh"4i[B)
hB?v????QJH)g6 ()?l)MX")-)6)h
)i"4B
)6)j-??R&)u
)&?

)?B?
Y #?B
ij&)Bj64X?


% createdb mibd

QJ)MhBHg&?6&"6?)v4B"l

psql

6i?

* CREATE DATABASE mibd;

B ?4B&4
????BX6)?J)&X"4vB)6#)h6Kc4&r6??Bh

&B66\@
% createdb mibd
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mibd.

6h"?M&?hX")-X)??H& &"Q R4)h^^4?jK6


6v)j&)h?iR&Bl)&?B?6)j [?)6vl)hMQ)X48vi"4 < j
B&" ?)r)64 )hij&B)RHjBM?v6RL??&?h)jrMB
?B?h#hj)j R X)Rih4

f)

Ubicaciones Alternativas de las Bases de Datos

$j6??2X")Bl)92)h$4?)r?"Bh[c2[6h?B)8)
Xhd)Bhv??Bh)?)X?j <W X"[Qi)? XjB6?h?)6lvRj
9B4XB^"R?&Bl^h), 49&jjMQ?8)6)j6BQ&RB84-?)
jB6X")?)6MRj4&?h?j)XX6l)g&hj
 )?i)X?jB)?4BR?)M)6rM)j
6MX"4dj#"=?)&?Q
B8c)?)?QQ6h)8-iR&?B&)j?)K?)jBQ)?&Ri4B)?
)629)hj +  6[cR?)?26R89B)6?LB?lRB 2))BXr
&hj$Lc?)r)[Bl)Bhl42&?h?
4X?v462?li4BlB)) (
&?B?6)jjh4 9  B6?h9Xjd4)&?B?h)j?jiR6j"M?X)X?jB
"Xj& (
)))L)628Rj ) 8486)MX)??4MB&"88)?)?Q)??
)?B?X)M?ji)?42)?hB)?jc)B68"4ij&?B86)MBj&"2Q)?)?
X^g"4g\o
A * :1: M)?h)HXjB?jBrij^h)r)?)?i


Nota: En versiones antiguas de Postgres, tambin se permita el uso de nombres absolutos de fichero para especificar diferentes locales de almacenamiento. Aunque es
preferible el uso de variables de estado ya que da mayor flexibilidad al administrador local para gestionar el espacio en disco, tambin es posible usar caminos absolutos para
especificar ubicaciones alternativas. La Gua del Administrador discute como activar esta
funcionalidad.

$R)B4v6?)&[?B?)X)??$X)&?B#)?)?v[6)
)B9 ?M)44^)gB)j)?Bj
X)&?Bj)?X?B)?4 '  )?X)X?jB)?4BR?)
86K"Rw))\XRB

initlocation
)8X"4MC)")?&)Xc)&?Bh&6)B?^)?)? A * :1:[ )89 (
9\&?^h?B9B)?j
)64"6
+?69L
Q6X?? 4K8)/alt/postgres
?M?8XBhL4-R&?B?6)/alt/postgres
jM j6" J j6?j$ (
&BhR6 ?9Y #?BX&)c6)6X?
% initlocation $PGDATA2
Creating Postgres database system directory /alt/postgres/data
Creating Postgres database system directory /alt/postgres/data/base

)2X"4Bl)699)j$4#)"2)?&)XB)&?4B8)?hB)h?c
)?-M?MY#?BMij&)Bj6)M4g??Bhij&)BU

A * :1:l

% createdb -D PGDATA2 mibd

QJ)MB)XH?v&?6&)h?H

psql

4X?

* CREATE DATABASE mibd WITH LOCATION = PGDATA2;

RB2h?B
+????2BX6)?2)
i"4)J)6-$)j6$R??Bh &4BhM

% createdb mibd
WARN:user "your username" is not allowed to create/destroy databases
createdb: database creation failed on mibd.

j 4?jX)4??B8+?6M8&jj?9)6M)hrB8?4B)j?R)6?j#)
Bh)K84v6X??H86?"Xj?j6)c4?6??c@
% createdb -D /alt/postgres/data mibd
ERROR: Unable to create database directory /alt/postgres/data/base/mydb
createdb: database creation failed on mibd.

Acceso a una Base de Datos

lBMB)Mi"4vB9) )hj)4 )XX4??)6??Bhr j&)

\X)BM?j-"j)&)&jB?"4 j6" jJh?


?&?
?Bh"X?hR?h)-h4ih)Kij&)Bj k  ?B4Rih?)&Bh psql
2 6X??4B"j)&L  ^^?#??"$#?d^6h?B) 
 k  6h#?
4&?hB?)BX&)Bj k  6  "X??B?jK"6?h)JjK&B66\Kc4?
86d"j)& H  6h?B4)6M?6ihM&))&??)&Bh4L?M4iX?j7
nCn
"R)BX
)[44?&4B)?j \&?j #69&)B) C  c6
$4)Xh?cRvRpsql
?9)6Rjr&?#6X??4Bv4jij&)BU

2

% psql mibd

46)?)lX^j6??4BM&4B6\@
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
type \? for help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: mibd
mibd=>

6#9 #?&j??B?X#4
&jB?jQ?6iXB&#4X??l? k 
"6jB
 Bh"#v)"QQhR6hdQ&)Bh?BQ&B?hc < jR&
X?j2v6X)vQX&?4BX Xj?8)v?Bc4h?)@& psql
h4&?jJ
hBK)6"?96?Bh)+?r c)?jrXj&)Bj k   6h"jH&4?QM


mibd=> \h

lB#L4&?BdL?B"jX?[6QXjB6?h)v
XBhB?v)j4?jH 6"6X??B

)"i#dh)\K8)6)9

mibd=> \g

6l? ?XR6c?jK$"X6)-6L?  gh&?BM6L?lX8JB


^X&)gBdB4i4?h[BX&RB &gM
"X6)2)h&)h?X)&Bh[?j ?j
Mh&B#XjdBh8Xj& 9 )9?psql
44?X?jB
9Rh?MLic"+?)&
& 3 ?XB4jR^ ?B"jX??)?BhRih?)&BhR6X?, 


mibd=> \i miFichero

f)

)6)??

psql

Q"i6)HlB?+R6X?

mibd=> \q

B)??)) [?vB)$"44-6^6B?+$Xj&)Bj R$j"jij&)Bj


lpsql
6?c6X?o &?BhR\XhQ6  ?j94?j k  6v4l6) ??"<(
&Bh84Ri?# ?)BX&6)X?jBh)?)j"9B)2Y#?B4)6 ; j&Bh)?[QB
Y#?B4 ?B?X)^ij
 9  jQ?vM)R)XM6) ?)j))B)6hg
?2Y #?B262?BjR l )2ij&Bh)?$)?)
Y #B)r8Bh"BlY #B26
{
& .
Privilegios para Bases de Datos

Privilegios para Tablas



*

Destruccin de una Base de Datos

6 [HR&?B?6)jM^?^)68^)hjl&J4h"??LRB 
6??BhMX&RBo[B?)
% dropdb mibd

6&"h?^ #?X)&4Bjj[?[XB"
lB?d)6ji?R2XjC?^)68)h9 B
j)4H"X46)&RBM 4BXBvij^&iB9J4&?h)X?


f-

Captulo 13. Almacenamiento en disco


626XX?B4i4[4r6i? C cijB)lR?89?Bj&)X?j#? 3 : k C j?&(
R?j9n(BBj&) ppq ( P) (


ff

yy

Captulo 14. Instrucciones SQL


6Ll?#?B&)X?j ^"\"4Bi?L)d?)l?B6"XX?l k  6j))l
6h"


ABORT
Nombre
ABORT

M?)B6)XX?^^X

Synopsis
ABORT [ WORK | TRANSACTION ]

Inputs

^jB

Outputs
ROLLBACK

4BhM4c4?l64rXj&?h)QXjL4?h

NOTICE: ROLLBACK: no transaction in progress ROLLBACK

jBvB)h)c)XX?jBr48X6Q)Xh)?&Bh

Descripcion
6B)XM?[)B6)XX?L#X6^X)2hR$?)
Rih??))X?jB
BXB)
jH?9hRB)XX?jL6R86X)h)B) 9  hXj&)BQ4r?4B?XQ4LXj&jh)&?Bh)
X&)B \ X\  k p) Q6M"6B j?)&4BMj))jBB?6j?iR
X X

Notas

lh???X \ O$

)Mh&?B)H?hjR&B B9)B6)Xi?j

Utilizacion
))jh)Kj?j
X)&?
ABORT WORK;

Compatibilidad


SQL92

69X&)Bd4Bl+B6?j 6h" k  "64B2r))jB$B?6h?X) \ 


44jij&)B k p) ?)?Bh

_ \

MODIFICAR GRUPO
Nombre
MODIFICAR GRUPO

: B)?-6)?jM8"??&?B)-6)?j "

Synopsis
MODIFICAR GRUPO nombre AADIR USUARIO nombre de usuario [, ... ]
MODIFICAR GRUPO nombre ELIMINAR USUARIO nombre de usuario [, ... ]

Entradas
nombre
 jB&"Mg"Q9&j?X)

nombre de usuario
l6)? c)M6KB)?jv4??&?B)jr4" H 

?jr8+?6?

Resultados
MODIFICAR GRUPO

y

4BhM"X??B6?McR?)X?j8Mij"X

jB&"$(

Descripcin

6
6)
X)&?)4+ BR?6R?j$"2[??&?c)(
?^" 6 ?v?r)&?B?6)j")6 )j86)K69j"
: B)?6)?[ JvB[X"$6 6)?
)?&Bh4??&?B)-6)?
^vB6?B?X9M6M??&?BMR6)?v4^j&?6&
l6)X
]_cc7\]_^7`8) i"R8"lBl
[ ]_^ ` \]X^`L) ??&?B)K
"
O $M$\ } \ 

Forma de uso

: B)?K6)?jr9^"U
MODIFICIAR GRUPO personal AADIR USUARIO karl, john

??&?B)Kd6)?vML"


MODIFICAR GRUPO trabajadores ELIMINAR USUARIO beth

Compatibilidad
SQL92

^[+?h
?Mj"  $M$\} \

 k )p)$ XBXJ[
"?RH6?&??)

MODIFICAR TABLA
Nombre
MODIFICAR TABLA

j?)irM?)&j?X)i?jBrh)?)

Synopsis
MODIFICAR TABLA tabla [ * ]
AADIR [ COLUMNA ] columna tipo
MODIFICAR TABLA tabla [ * ]
MODIFICAR [ COLUMNA ] columna { SET DEFAULT valor | DROP DEFAULT }
MODIFICAR TABLA tabla [ * ]
RENOMBRAR [ COLUMNA ] columna A nueva columna
MODIFICAR TABLA tabla
RENOMBRAR A nueva tabla

y;

Entradas
tabla
 jB&"M^h)?+?6BhM)M&j?X)?
columna
^&"M B9ij?&B9BQ9+?64B
tipo


??B4c9Xj?&B

nueva columna
^QBj&"M)MB9X?&B99+?hBh
nueva tabla
^QBj&"M)M?9R?

Resultados
MODIFICAR

4BhM"X??B?Mij?&B2Q?h)?M6MB"Bj&)

ERROR

4BhM"X??B6?M)?v?9X?&B9BvjLcR??)

Descripcin

O $M$\ , _ X)&?[?v4B?X?j9Bvh)?l4?64B + ["4


B )$B9B4cX?&B9?)?M)Bv?&?6&96?Bh)?MXAADIR
]_cc
COLUMNA
lo c J dj"
?L4&?h^jB24??&?B)9?v)?"[J
COLUMNA
iih #?&ij?MODIFICAR
&B 8
 h6&
&?j8)?j4jvXhC6? 6&R??X)4&?)
??B)$l?B62B) C [i?R?
X)6l2BBj&"[9Bvh)?

^[Blij?&BvX)&?2?&[6[&RENOMBRAR
j?B2B?B^2?Rj ijB4B?jM4
?9R?M)X)B 9 * 6M&jj?9h)?9?9Xj?&B[J&RBXj&?6&8?J
R& Bv46) rM6hMij&)Bv6\XR
l6hd 4H4X"4j4hh)?)jKX)&?)Kd64&
Notas

B)?RMX?)
&6)jK?M6 &?h?
COLUMNA
$$6??4Bv Bj&$
Bh)? ?B?i $?Mj"Q4rh4Xh)6$6j
6
R?Qhj)?))?R 6486hl??48?\)") #?66B. 8RK4ih4
)h?h8BL6[ B)?8[8"Bj&)8B?BBv9?) 6i?R4 C  6^6?&"


6 $B)XKiRB[ B)$v&j?iMLR?[8B6"X?)6  Bv)9#?


?)"B)^?\)") #64BMXj&
SELECCIONAR nueva columna DESDE SuperClase*

B#BX?BR)&J"v?)6X?)4B))&J"?LR?Lv6vBXBh)
8?96"X?)6
 ?"44B$?&?&Bh)X?jBR?)i?R6?)jKX[v??&?R))?MB
X?&BQ6)&?B)R l642R$?v"
 O @\,X )
jB?jH)?"4KjPONER
2&VALORES
)-)" POR
[6DEFECTO
QhB
R&Y 4^M)X)??R)H?Rr??BRr+?64Br?j
Bj
)?"4j4 46j+RB
`[_)c
l6h ^4[X")j9L?X?)6d)#j9X)&?)[44& 1
W 4B&)
XR??)h$$64&M+iR)?j[
6?64&B[6&?? '  F

)0 $X
)w
`X Bw$ @ ?4BM&)r?Bj&)X?L?)B"4Bi?R66Bh
* ?' #R9 \
,X )lBv6i?Ji?j&) R&??l9?jMR&Bh )?Y (
j

Moda de uso
) B)?KB9Xj?&B9?J :WXFm : W B9h)?&
MODIFICAR TABLA distribuidores AADIR COLUMNA direcciones VARCHAR(30);

)"Bj&)KB9X?&B94?64BM
MODIFICAR TABLA distribuidores RENOMBRAR COLUMNA direcciones A ciudad;

)"Bj&)KB9R?+?hBh@
MODIFICAR TABLA distribuidores RENOMBRA A proveedores;

Compatibilidad
SQL92

["
6hv)6&?vXj&?v+XX?j9lBLjjhv?jc;(
COLUMNA
?"4vj9AADIR
XC
?&?)X?jB6-ij&C6L4??X &RQ)? 1 L"
MODIFICAR
4h^6&?6?c^X&?4
COLUMNA
k pR 46X?X2)?B)$X))X?4$R?iB)?4$) O $M$\ O, _ j"< (
BMBQ4h)^j)@ #??"XR&B jjh))j j6" k  


yR

MODIFICAR TABLA tabla AADIR definicin de limitacin de tabla


MODIFICAR TABLA tabla ELIMINAR LIMITACION limitacin { RESTRICT | CASCADE }

: B)?rd??&?B)
BQ??&?h)X? lh)?vXj&#BQ??&?h)X? [ij&";(
i?jBg?&?)X?jB?X)g8???)X?j#9"4d4h;B) + )9X")H8??&?B)B
??&?)X?j
B?X)4X"4[??&?B)
#B?X
B?Xj4"64ih?)&Bh
X]_cc
a b [cdM < RQX)&?)$j)X?)6vv??&?h)X?jB9B4i4?h"X")$&"X4)
?
)?)cQj"jr))&4"jR?9_
]Xc clo cd"4

jh4&?)J)??&?B)HiR?????)X?jd48B9h)?
distribuidores

CREAR TABLA temp COMO SELECCIONAR * DESDE distribuidores;


ELIMINAR TABLA distribuidores;
CREAR TABLA distribuidores COMO SELECCIONAR * DESDE temp;
ELIMINAR TABLA temp;

MODIFICAR TABLA tabla ELIMINAR [ COLUMNA ] columna { RESTRICT | CASCADE }

 ??&?B)B
X?&B$B
h)?  j?4B&4BXRr4??&?B)B
Xj?&)
?6hBh?9R?M6K"X"RQ"4iRgR&
CREAR TABLA temp COMO SELECCIONAR did, ciudad DESDE distribuidores;
ELIMINAR TABLA distribuidores;
CREAR TABLA distribuidores (
did
DECIMAL(3) DEFAULT 1,
name
VARCHAR(40) NOT NULL,
);
INSERTAR DENTRO distribuidores SELECCIONAR * DESDE temp;
ELIMINAT TABLA temp;

)2X?)6?)l)L"Bj&)MX?&B)lR?R[j+4B?jBl)
k  pR BQ?Rr"jc4


j6" k 

MODIFICAR USUARIO
Nombre
MODIFICAR USUARIO

j?X)K??Bj&Ri?jd?XBh96)?

Synopsis
MODIFICAR USUARIO nombre de usuario
[ WITH PASSWORD palabra clave ]
[ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ]
[ VALID UNTIL abstime ]

Entradas
nombre de usuario
 jB&"Mg6)?QXh)??)^6&j?X)j
palabra clave
 B9)?)w9X?)MM46)M4^69XBh

FWX:F*[
 FWX:F*[
 6h)9X?)6?)B ?X)Ri?RQ 6)?)X4R49vRj
g 6M64i?X FWX:*[ j6)?QjMB?6"?))6)j
l6)B! W_:*[ 69B?4[2#)?8?[iR)6?)&X"))6r
)j
FWX:F  W
 FWX:F  
W

 6) X?)6?) h&?B)&6J6)?d6hv)h?))Lli"4rBjM6(


?jX&?6& ' hMjX?^B)X$4KR&))+)?l84")?l<(
)6)-j4Bi?&9j)?)"6?Xi?jB)XX6

abstime
 QXBQiji?jB)?&4B?Bj)4?v?)?)wX?)lv4hv6R?

J?)w

Resultados
MODIFICAR USUARIO

4BhM"X??B6?M&?X)X?jdXj"Xh

ERROR: MODIFICAR USUARIO: usuario "nombre de usuario" no existe

B66\
r"j"X??96)+6)?96X?X)2B2+?6
l?)6rr)h

yR

Descripcin

O @$\   \$ 6$J) X)&?)-?j)h?j ?MXBhM$86;(


?# j6" k 
 j?&6"6)?&vB8)6)j94vX)&?) Y(
???j
4iBRMiRi?)dM)?R4
X?)MXL69j" l"?B)?&4B?j
R?jr6j?Q4^X)&?)-d"j?)?Ri?)
l6)$_
]Xc o]zo]_a^ RX"4 B&6)?
[ ]_^ `@c)])??&?B)
^6)?

Modo de uso
)&?)-?9R?)X?)c ^6R?U


MODIFICAR USUARIO davide CON PALABRA CLAVE hu8jmn3;

)&?)-?9)??4ML6)?vB)6M?XB


MODIFICAR USUARIO manuel VALIDO HASTA 31 En 2030;

)&?)
?)??vl)?#BRh?XB)64i?X)BdQ)h?))X?j
+?4[R?j?99 r )Q ppq 6)B?9)jB[Bj)?99h?B Bj
&)M1  U


MODIFICAR USUARIO chris VALIDO HASTA 4 May 12:00:00 1998 +1;

)KL6)?Q?9X)4X?)d i"R-hj)?jrQB)r)6 )j


*

MODIFICAR USUARIO miriam CREATEUSER CREATEDB;

Compatibilidad
SQL92

^B)#"4  $M$\ \$

R?jrM??&?&4B)X?j

 k pRB< h)B)$\?8B?X?

BEGIN
Nombre
BEGIN

&?4B)B9)B6)XX?^^&jQ4BX)B)

Synopsis
BEGIN [ WORK | TRANSACTION ]

y-

Inputs
EO W v
W_:  
:u


R?)RX?)jX?BR? ^Qh?B^Xh

Outputs
BEGIN

6v?B?KXMB9B4cM)B6)Xi?j^B6?QXj&B))

NOTICE: BEGIN: already a transaction in progress

 hQ?B?iMMB9)B6)XX?86h^""6 ' Mh)B6)XX?jL48i6QB


cMR 46R

Descripcion
-4ih 6" k  \X?))B6)XX?B44lX)r@?X)iR h)&?Qi1(
BX?#ij&R
)Rhjij&&?D^4j"j96?6&R9v)6vv)j6 < j)9R?)w)6
X)26)L96)?d h4ih)84Jj?[)B6)XX?LXj&&?K62\X(
L?&??X?)&4B8)B)HK6)h6H?d\XX?8+?jR8h"&j
\X8C"j??)C 6   ?B?X?dB^)B6)Xi?j 86)?&C&j BX)iB (
jj j?jM46)j 26)?jM46 [&Xj&)B 
 [\X))
BLhRBRiX?jB?X^B)68 4??X?h&_
^}aK& ]_^ @ QX
hrJ&RjQ?8\< (
XX?j .  jM46)j&&jd4BiRB)^6l\Xh)&&XBd&))?jjj"l?
)B6)XX?^6R' gXj&&?"?"B2)Xh?c?46?B?X)?2 F  8M?6X l 
\XX?L&???4 6)j
B"9B2hRBRiX?jdh)&?d
"?9)
?XB6?64Bi2X)BQ6MX)&?)8&XB)rh)?)"?)X?jB)4
jh" k   W_: *

B?
&R??R&?B jQ6h  ?R8)B6)XX?B^4
 r}r
0* jjB9?)$XjB?h) Bh"89?lhRBRiX?j#6?^h?B2#XBhl?j
X)&?2XjB6??R2RB9Q?^h4iX?jCQ?8XB6? J : -6B2h???))

_\  \X$   uX$  

\$X _ \66 )
 )2XjB6?)[4-h?
$ 6HB4i46?)2R??R&?B&8hRBRiX?jB2&)9?"6 J
)W
:
 :[0  6?hB)  XB?j8X)&?jXB6j??)j8)BhL#?
)B6)XX?lBh Xj&?BX
"4?&Bh)B4Hr?$\Xi?jQ+?&J6) * r
8B9h)B6)XX?^6?)??)4?
H?#)B6)XX?6h#XB6jh?R j6" k  )6Rw#dh)v?)l)XR??)< (
X?B[6R BXB)96HB 8B?BBL84??)2? 6   )2hRB)XX?jB2h?BC?
"J?44h)BR : 
* )h&i)ijB6?hBh))?6?)Q)?
Notas

4&?)6$ ^lXh  )M?Bj&Ri?j8)&??R6j"$?jv h)?)H)Bh B


)B6)XX?
lh???X_
^}a _
] ^ @ QXh)4&?BRBhRB)XX?j
W

y;f

Utilizacion
)X&4B))Kc2h)B6)Xi?j^6)?
BEGIN WORK;

Compatibilidad
SQL92

 #B)#B?BX&RB 
 ^
  B4hB6? [?Bhv j6" k r
$ 4??X?h^ k p) 8g?[?B?i?Ri?j9B[)B6)Xi?j#6?4&"26h2?&??iv^4
4&?B)vvijLL4h) \ O$ QXj \ X\
Nota: Muchos sistemas de bases de datos relacionales ofrecen una caracteristica de
autocommit como una comodidad.


X?j?Q)?R
h???))l)v?"iBh"jj?hj k  &Y(
 kl4d)?6) )BEGIN
^L6dX?)6)i4"6d8?)l)B6)XX?B[6)B?X)
XRBvh)6?))??X)X?jB)6M)j
k pR R&?^4?"  W
: 
:l
 J)M4H4B?jM)?6?)&?4BvM)B6)C (
X?^j4 46

CLOSE
Nombre
CLOSE

?^Xj

Synopsis
CLOSE cursor

Inputs
cursor
 jB&" M^i6K)?vXR

C y

Outputs
CLOSE

4BhM4c4?l64X6Hi4)l+?j6)&Bh

NOTICE PerformPortalClose: portal "cursor" not found

h9)?hM6M6j

cursor

B6hX?)vQ9B6?QX)

Descripcion
??4l?"X"6^)6X?)X&&Xj
)? * 62l6QX<(
)B KXjhcB6&?4 j)X?B4266??Bh[ 4 [ X6jM?
6HX4)BXRBvBQcM4HB4i4?h)
l&X?jl?&??i?hM\Xh)dJ)lX)vXj R?4hLi)B#BQh)B6)XX?j4
4&?B)Mj \ O$ v \ )_ \
\

Notas

6h"vBCh?B#  6R dXj  ) 4??X?hM8- i6[dXjB6?


)?lX)BlrX?)4 lh???ig6R ^\  RX?)w)KdXj

Utilizacion
HgX6j??)Bj&&
CLOSE liahona;

Compatibilidad
SQL92

\

4hh)?&BhMX&J)??MXj k p)B

CLUSTER
Nombre
CLUSTER

jj"i?jB)?6Q )?&)XB6\)")li6h?Bc)j6c?

Cl

Synopsis
CLUSTER indexname ON table

Entradas
Nombre del indice
 jB&"M^?B?X
table
 jB&"MB9h)?

Salidas
CLUSTER

j)")&?4BvB?)Q+?h6)&Bh

ERROR: relation ~ tablerelation_number 

inherits "table"

M1"uMU{Mu1C''+XH {9'g;1' )90;)+'H)D +$U;'99)


+$+'M"uMU{M
ERROR: Relation table does not exist!

M1"uMU{M; ''C $<F;HX'Y'+FMX+X' F$,' '+


''$F9 ',+<$9,+,U' 'CMtu1U\M

Descripccion
)6)Bj6
&)B9 jh4
)"?[X?)664i?X)j
)"jR?&))&Bhd ?B?Xd64i?X)
B?XddBR
1 ?table
indexname
6?Q4B?vM

classname
 B)lBX?)6 6M)")46?X)&BhM"jBB))6)Bj 8??Bj&Ri?j
-?B?X J  K)"R&?B&4[6)h?X   Cj)2R?))6c&?BhR[^?^X?)68
)X)??4))+?jiR&?j$B^6&R")j ^2B)X2B?B&?BhB^9&)BhB
)R-B)-?B6h)BX?)K9h?))X)??R) w RB?"X4))?)
&)B)?&Bhh4ih)BQ4jij&)BvB
\ 

Notas

9R?[Rih)?&Bh62X)92Blh)?94&)ij#4j"L?B?Xg9(
$624B&l[6 Bj&"2??B) j
46[)RBjj ? "&?6j XBXY(
jrvh"?B?XMJ?"8X)Bl6M\X4R")&?4BQX?64?B
 8?j
X)6^M)XXBrMB9??B)j?))?)hj4&4BM4B"lMB?R)R
"4&)X)v?j9Rj4?R-v?h)?BM?&jh)Bh R ? Rj


?4B 4BBX?v[)XXl)?Bj)h &) [vjhj6jdB)L&?B?X[2?


)R4BX?)R4gv \ )
vh"&?R94CH \ )
[)L4[C?jliRj[C?jl^h???))[
?B?Xl)v4hRr&iBR??B4)MlBR?Rj#&B?X)?j$[&?B?Xv?c
&???49??BRX?)Qij?BX? \ 
))v"QB?B?X
?Bh?X4hh)d)?B)vd?6X$)#??&#??B&X ?#Xj?Bi?4
j)$?R$h)$??B) 2X?BX?4")?i&Bh[4h[#?[&?6&v)?B[
jR?R)Bj)Bv)Xi4j?6XQRi4?)Bv?MijB6?
m )ljr&)B4R))J)-)j H  MJ?&4Xj8gX&RB \ 

"jBBl?vh)?lj??B)JXj&?vj"B)X?jB?B?i[[64i?4 .  hv4
6J?4B$lR?R-RB"r?)??B)-6
)l
6i)B64)?R)?$h)?
#j"#2?B?i4gL6BB?jRB9?lh)?l46v6"iB))?) BhR 4h)4
)?B)rR?)h?)6RM6hM&8B)B2)?B9M?6X"XB4)iR??B
&? + 6"?4BlBvX)XBg"^?v&)j?Q[Bvh)?v)B[BdX)[
?X)XB
vh&)BR)")K)hjrh???))
SELECT columnlist INTO TABLE newtable
FROM table ORDER BY columnlist

??)94Xj?89j"BR6?d 6"rd?2X?)6?V WX* W C)9B)X


X?BX???j
?B?X4+94
&XB8&))J?))h6j"B)j 9* 6
#?&)?#?\)-h???)  
, _ 
 )#"Bj&)2Xj&
?8)?8?\)c 4i"i)MX)??4?B?X J  KB?X&"?4&^42B6QXB6temp
)
?

*d+ * 9)B4#)4?)B4 F 
?26)?J"9?2&)j?l?j
)h9B)86?j4B)B6)6M???Rj?B?XM+?6Bh
Nota de traductor: Un ndice agrupado es aquel que llegado al final de su rbol b-tree
no contiene un puntero a una pgina de disco en la que est la tupla, sino la propia tupla.

Utilizacion
")&?BhQ ?"?)X?j8&?))6)Bj ^d)h?hQ6)?)?
:

CLUSTER emp_ind ON emp;

Compatibilidad
SQL92

^QBRQB?Bd4h)hv?B6\ \ 

4 k p)B

COMMIT
Nombre
COMMIT

)??R?h)B6)XX?^)Xh)

Synopsis
COMMIT [ WORK | TRANSACTION ]

Inputs
EO W v
W_:  
:u


R?)Mi?Rc X?jB) ^Qh?BM4 4ih

Outputs
COMMIT

4BhM4c4?l6?9h)B6)iX?j86M")??49ij^+?

NOTICE: COMMIT: no transaction in progress

jBvB)h)c)XX?jBr48""6

Description
")??)? )B6)XX? )X) M j^?j8iR&?^"4??))j8jv?  )&(
6)Xi?j 6jC???428?)2h)2h)B6)XX?B46J 68))Bh?)^6XB6) 6 K6
"X$B9iR?MM?)?B
\ O$

Notes

)KJ)?))KX?)E W v W_:  : F


  6 Q&)6?)2?Bj&R?)64[4
6Hj&?h?)
l6\
]X^ M Q_hR)RHBh)B6)Xi?j


C

Usage
)B)XKjj
?jrX)&?jr4&)B4B4J
COMMIT WORK;

Compatibilidad
SQL92

k pR 6?844i?X?)j
&)6
&BhX&R??

COMMIT

COMMIT WORK

H H?&)6)jh)Y(

COPY
Nombre
COPY

j?9)hj4B"XB"jrQ)?)

Synopsis
COPY [ BINARY ] table [ WITH OIDS ]
FROM { filename | stdin }
[ [USING] DELIMITERS delimiter ]
[ WITH NULL AS null string ]
COPY [ BINARY ] table [ WITH OIDS ]
TO { filename | stdout }
[ [USING] DELIMITERS delimiter ]
[ WITH NULL AS null string ]

Inputs


 :W
 R&?24BX&j)&?4B^&)h82X)&j6gjR)B[jj ? )hj
)?&)XB)6 v?6MX&v4\hr?BR?j6)^?)KXj&hh
table
 jB&"MB9h)?M4?6hB


*[

EO
m


j?9j?Bh?X)Kj4h4?BhBoB?X 
* c)X)?

filename
 "9)6j?4Lj)lB?2giB4"Q4B)Q6)??
stdin

JX?X?9B)c?4BM^XBXhQh&?B)

stdout

JX?X?9R??^ijBXQQh&?c)

delimiter
 X)Xh??&?h?riR&4B)Q6)??

null print
lB
X)iB
)""4iBh)J)?j")  r  cR?Bc4 4ihU
r)966?)6&(
 RK))jBB?h?X) 9 "i?H\&?j)B9iRB\N
^
)C#?
Nota: En una copia de entrada, cualquier dato que coincida con esta cadena ser
almacenado como un valor NULL, por lo que debera asegurarse de usar la misma
cadena que us para la copia de salida-

Outputs
COPY

X?96MXj&?hQ6)?6)Xh?)&Bh


ERROR: reason

X?9)??lj?9)4L?B?X)48j&B66\M"

Descripcin

\
& )hBh" h)?) 6"vXB"jg6?h& )"XB?6h)&(
) \
?B?X$)R4?j 6h"-
?$26i?
r2$QXB"  RiB4B
r6-?'4X4&B$???$)$+6?h[+Bj&" Xj&?hlB 
6X?X)6

6l4JBl?hJ6?  J6v6X?i
?R??iRi?j^X??B)g6?jKJvc?X6)
Notes

stdin

?j9RjM)

stdout

MR?)X?)c
 : W j??2MMjjr?jr)jr6 )?&)XB8v?)^X&vM(
h4jH?B)?4Q?)
ij&[4h  624H?l&RHR?9$+Xj&jh)&?Bh
B&)  ""6?RB8rcR?&B9j)?)^?j$XB"r4B<(
R6^)v&)r)B)BM4hM^)ihjHMB ?j
)hj4L9#
-4ihX)B[6 XJ?M84h[$6M8R?R %+ %wXj&v??&?R  


C)

??&?h)j$4lX)&?)6[j X)??4$j"diR4X
&?4)B#?v)?)vX?(


 A *)
r
&W+  $X))X4"$B"8?j X)&
)j$9"6?4
X?BX??Hij^j??&?h)jH6)84Bi4)jB" ij&???)
m 8QB)XQ?&"U$ ?C ?'?"M4 X)?? )?8Xj2)?"496)??j
j \
lX)Ri\C ?H?? )?$Q?$6$))Q ?B6)?j)?"4
[B?[)4i4j
6"X)??4XB"QM)
 g6c?jHBX6?9?jr4&?6j
?6Q4X??6 ij^6MXj&)B
?vR?)li?RcV

!A * 
r
U)W 6X?XQ&X)Rihi$v6l6)vR[?Y (
&?R$Bh"vX?&B)  v46X?X)&)?jX))Xi"M ?QX)BQ??&?R)
6?vM6)j?&KX))ihi
Sugerencia: No confunda COPY con la instruccin \copy de psql.

\
B^?BXl"4?[Bc)XX?jB jX84#?)$Xj?&B) ?#&Rjg
?BX)K"X&?Bj?J)R
\
4?4B?R9j)X?B4?& 4"j < hBJjXv"?4&)44
X)6d \
M\ J"L4J6?Bjj$66h6vRX?4?&Bhv&?X)
 X)d \
X F d6)6d)??&?)2)BXj?
)???
* ?8[24B?"iih?^9)6\84?j 6h" B^
B&)?&Bh[4
&?6&Q4g?"Xj?l )hvg6)?4g"6?)[ ij?)-gXB"
%
%
?  B)?M?Bj&Ri?j8?d")rJ4^RM?)L"6?h)Bl?B64)[foo
)
B)X)[X
K6)?&?B)? ;  C4h8X)6jJ4 ?)M

H?QB)?R4' #M6)6M?"9X&J?9h)gXfoo
c4' #M6 $PGDATA/foo
j4?jhR)
6X?X)-?rXB"jrMij?)
 jMXB"j6)jMXj&#)"&BhM) \
4&4??$L6
)iX4??lJ
)?[&)?B[4?j9)692Rj+d? ?Xj ?X)?4$8##?6h&
XB""4
 )B#&LB8XB4?j F 
J 64i?X8 iB4"&4\h?cj?XB
iB4Q96X??2d?[&R?BvjB624D 9\X)B846?hB8#?2& (
?B9g6)?

File Formats
Text Format

)Bl6M6 \
tX 6?^?jX?
 :W RjiB4v4B)lBX)?
?Bh)BX?)K BQ6j???B)X X)QBQv?)Xj?&B)M R?jK4))vj
gX))XK?&?)j H jrX))X4??&?h)j4?BhBj
?X))ih"ir?BhB
LXj?Bi?)ij??&?Rr6L"Xi)KiR)XhM)L))[ %+%w   j
)?"ir)h?hv6LX)B4hhQB4)jH?BX?jL6)??)6ji?R
X&X)lB#2?M?jMl)h?h .  vBi?j 2)??Q)v&h?#Bd$ #
)hHB)KjX)4X4))h)9 8;4h6B)lH^X&RB \

 g&)hQ)i)?B6)BX?9


~ attr1 \~ separator \~ attr2 \~ separator  ... ~ separator \~ attrn \~ newline 

g?Bh?iRH66?9^j?BX??Q ?9??B)RX)Bv 6X?i{EO


m 
*[
\
4B, #C6)??8^?86)??86h)B)4?)Q^XB"jJB?)B
)8?B?L %+ %wrBh6?jv8CX))X^6)?h^??BdCB
??B#6R)-X)B4&?B6 R?? g ?&??)&Bh6 F
6h#?B 
B2)??96)B)hR6)9B2)?B?28dB6?j$j#d
??B)XXj&2?Hh"KJ?&"jKX))6h"-B??B4 R
?B?X)BRvRiB4" w ?
&)"gj \
4&?BRQ#ijBh?B)i?j4&?B)Q?)J??iRi?j 4?jH6
BXBh  3 RBMM BXB" 69X)BM?B?X9gLXB"
 Ri)4ihJR
?B?$h?B
h"K6?B?KX)jK44i?R? lliR)XhJR
?B (
???4)+$""i4BXj&v)4ijB6X?) %+) % '  giR4X-h)?)j-
"B"44B[X&B[)[?Bc4h?[dh)?)j +  X))Xir#[??B[6["J+ (
6BXj&&B^R?B? v??B   )B6QX)"4Rj9Qh+
B^4BR
 jh4 BX6?R[XB?4BX)4X4)2?Bh?[J)
)))6)KM6X)"8)4i)B)&4B  4i4Bi?
%+ %-6?&"
6v?B"h)QX&&B)?Bc4h?&iR)F
% %wjX&R????) < 
6?X?L&)B)jX
%+)  %


Binary Format

BX)6^ \
X$ 
?jMJ?&4j X)"84 BXB"^4[BB&4
Q?B6)BX?)24 -iB4 ) -B"&2X"jB4KX&RB \
O_$
?
B)6l[6l4Bi4B"9J&BXB"  j"LX)jjhR[[rX)B^2?)
6B&"v?B6RBi?R 9  jr"4h)Bh)j^jic"Q6?B))
 cj&R^)[i)[?B6h)BX?v#BXB"L4$X&L6? ^j62[4h[j&R
#6l6?$ 5)C ? C [ @  RX)Bh?)QB4RiR" 486?6?B 6
Bj&?B)^?B R ^?9RRgM6?
 

\)Br


?B )

4! QX 

^j?BX??Q4XB"

?B )
?B )
?B )
?B ) ?B R
(

Alineacin de datos binarios

B&"Q ?)

)X)?
 jB?hj)j ??9)h
?Bh?X)j6g6M6X?X)
B&"lM)h?hB?
B&4"M)h?h6RXBh)Bv6
X"
I
h?)h0
L

j"9?j &( 6g?j)?j  462)??B)#"J2i)h"8h


 j9)h?hQiR4X"6R??B)"j2v 6j?&h ; ?^&Rj'#
?) j)&)?B)6hj?M)h?h&)"4[&l6lR??B)4&"jM
XR"^h ^j6vv?jM)?jMl?jB?hK#))?l?B "64?j[?
?B?h&)h?hM 8+?)$&R?X
6j#6?&?&4B2i)B)
ijBh?B)$?&4B
?v?&R?

C -

Usage
J6??4BQ\&?dX?QBh)?QQ?6)??v6)B)hj6)B#BQRQ?X)
X&v??&?h)jX)&U



COPY country TO stdout USING DELIMITERS |;

)X?R)h dXB"[B?[?M)?%ijBM%+
COPY country FROM /usr1/proj/bray/sql/country_data;

lR) #B&h4&?d[)h RXj)l6rXj?)j vBvh)?l6


vMh?B^?96XBX?h&?B)X?L^??h?&9??B)H
m

AF
AL
DZ
...
ZM
ZW
\.

stdin

AFGHANISTAN
ALBANIA
ALGERIA
ZAMBIA
ZIMBABWE

j
&?6& Rj+Xj&8R??[4dj&R8?B)?LB[&)?B  ?B)Y qcC j
)h268&6)ChR24?h)9ij-ij&)B|[B?   Lh)?Lh?B8"
X)&jl 8cJ?&484
^B6B^
l  j) ?)$?) h?Bd)?
B?4d4c4"iiX)& char(2)
^j6X&84X)& text 62"??4BXLB?$BRh
)?X)B4)H?j
X)h"v4r4gX)&Q 4hQchar(2)
"Xi?Qj6d?c?h



355
006
A
\0
L
\0
G
...
\0
\0

\0 \0 \0 027
\0 \0 \0
A
N
I
S
T
\0 \0 006 \0
B
A
N
I
\0 006 \0 \0
E
R
I
A
\n
\0 001 \0 \0
\0 \f \0 \0

\0 \0 \0 001
F \0 \0 017
A
N 023 \0
\0 \0
A
L
A 023 \0 \0
\0
D
Z \0

\0 \0 \0 002
\0 \0 \0
A
\0 \0 001 \0
\0 \0 \v \0
\0 001 \0 \0
\0 \v \0 \0

\0 \0 \0
F
G
H
\0 \0 002
\0 \0
A
\0 002 \0
\0
A
L

\0 \0
\0 002
\0
Z

A
M
\0 006
B
A

A 024
\0
Z
E

\0
\0
I

Z
\0
M

B
\0
B

I
\0
W

\0
W

Compatibility
SQL92

^Q4?6h?96B4Bi? \

4 k 7p)B

C f

CREATE AGGREGATE
Nombre
CREATE AGGREGATE

BMB9BBX?^M)")

Synopsis
CREATE AGGREGATE name [ AS ] ( BASETYPE = data_type
[ , SFUNC1 = sfunc1, STYPE1 = sfunc1_return_type ]
[ , SFUNC2 = sfunc2, STYPE2 = sfunc2_return_type ]
[ , FINALFUNC = ffunc ]
[ , INITCOND1 = initial_condition1 ]
[ , INITCOND2 = initial_condition2 ] )

Entradas
name


jB&"M?M BX?jd)44Q9X"i)

data_type
 j?v)hQB)&4B)g6j jMj6M BX?jd)44

sfunc1
 MBX?8 6h)[ h)BX??j8$B ??R&)6$)X) X)&[BvB?
6^?LX?&BBh  &Bdc)?4?Lh?
ij&QJ?&H)"&Bl4X)&JvXj&6Bv)"sfunc1_return_type
&4B
sfunc1_return_type
 j?v?v?J?&4BX?jd )BX??j

sfunc2
 MBX?8 6h)[ h)BX??j8$B ??R&)6$)X) X)&[BvB?
X
M?9X?&B2j? l j&9B2cR?)? M?
)"&BhlB?iQ? B9)?)?$j&?6sfunc2_return_type
&?
sfunc2_return_type
 ?v?hvj?M4B9BX?^Mh)BX??j

ffunc
 vBX?

B)J??)&)v)XBh?$hM?X)&j2BhR  6hv&(
i?j["4i??cj-)"&Bh?j-h?j

sfunc1_return_type sfunc2_return_type

initial_condition1
 jc)?jK?B?i)j)Mj)"&4Bl?9?&BX?^MhRBi?6?j

y

initial_condition2
 jc)?jK?B?i)jj)"&4BlM?6B9Bi?j^hRBi?6?j

Outputs
CREATE

4BhM4c4?l64Xj&)BvMXj&?h6)?)Xh?)&4B

Description

4&?h9[#6)?8^")&4hB?lBX?B;(
??)  6h"49B?B&B4cRBX?B42Q)44 : ?BR2BX?jB9
)i)R8h?2RQXj&

4h)^?6jB??2
min(int4)
avg(float8)
?l?h?X?j)6 X 2Bd
B h?
86[B4X6?[BvBX?2)"<(
B&6Q"j"X?B)cQ6)6Q-Xj&)B \
_
 ) u )
"J"6?jB)?RrX))6h$ #?6?X)6)B)
lB
BX?l)"KJ"4?BB)6
h4-BX?B46jKBX?B4Krh),
(
X??j^M6h)


\u  u

sfunc1

sfunc2

sfunc1( internal-state1, next-data_item ) --> next-internal-state1 sfunc2( internalstate2 ) --> next-internal-state2

QB9BX?LB)gMX)?X?j

ffunc

ffunc(internal-state1, internal-state2) --> aggregate-value

6h"X"vB)6hQjM)?)? h&j)?4?))) #Bij&

)
&)BhB"6?RJj?B4&)?H6)jKXj&[)"&BhjHJtemp1
?)HBX?temp2
BK
)BX?6?

 6)BX?B4rMh)BX??j^B)^hBH?)??Bh
Jj?)J4J
d4
?

j )"&Bj 
?sfunc1

)?jJ?hMsfunc1_return_type
6B4?J
 temp1
column_value
sfunc1_return_type
v
6MRQX&Q?&data_type
4HR&BhQ4L?M"+?&??)&)M

sfunc1
2  )"&4BM)?jJ4c4? sfunc2 B
6 temp2 4?J sfunc2_return_type
2  -)"&Bh9R
?$Bi?jlriR?i?BR)B$r6 temp1 temp2 26Qc)?j
4c4?2
6-h?[R
 6"B[BX6)?)&Bh
$B
data_type
6?Q46X?X)vj  :[  
2 3
 :  3   24r6X?X)L6Lj?#6J)&R BX?jBM[hRBi?6?j&
6h)lj^6X?X))
2

lB8BX?Q)"4)B&Q"? j? BL&2XjB?X?B9?B?i?R?6JB
)X)Bi?j^ h)BX??j 9 6)664i?X)Q)?&)XB)Q8?)6$)h

X&viR&h?Qh+
Notes

l6 \  u

 )6XB)-BX?B4
R"4
 6??v64i?X)
BX?jBMv)")dv4B) ?6)ijB?B)X?B4
Bi?jB26)^dBi?jBMB)? j$h??l BX?j&l)")
"?" 3    B BX?j?BX4&BhM4"B 3  $ 3
 : 3 count
 
&?Bh)l#?#BX?j ^)"44
"?" 3   B#BX? L)?+ (
X?BJ"B 3   B 3
 :  3   sum
^?[Bi?j9)")
"?")Bh
?)BX?B426RdXj&#B 3
 : 3   BQBi avg
2?c?6?jBJ)
"X?6C4?h)   CX)??MX)6jJ)-&BjlB^?)2BX?B4[Q6)
$4B?RRX)?? 3    hBKjX"6jB?Bh\

!
  *[B

Usage

)64RX)0#???)BX?B4KR"[?A2?r4
`"
C[
 
U)c)\&J?M6Q&)X&?4j

"j)&)c`i"w$@

Compatibilidad
SQL92

\u!  u
\
u
7 
) u

4HB 4hB6?j)?Bh

4 k p)B

6h"^2+?h
? j"

CREATE DATABASE
Nombre
CREATE DATABASE

"B9B4cM) M)h

Synopsis
CREATE DATABASE name [ WITH LOCATION = dbpath ]

Inputs
name


MB&"M?)6)jrMi"4)

dbpath
lc[?X)X?#)?4BR?2)[)&)i4B?[B[R9)hj$6?h&
)"6B?j  K&))?4BMJ6??
Jj?&)

Outputs
CREATE DATABASE

4BhM4c4?l6?9j"86MX&J?MR?6)Xj?R&B

ERROR: user username is not allowed to create/drop databases

#4Bl4
c??4?4JX?) W_:*[ )i"4v)6Q#)j 
m 
_]Xc oO
] wo]_a^

ERROR: createdb: database "name" already exists

hQjX"6jB9)6 )j??)&)

name

+?6

ERROR: Single quotes are not allowed in database names.


ERROR: Single quotes are not allowed in database paths.

BL&XjB4BrX&???)6?&? .  6hd
 v)69[)j
?&"6i?B??$)name
?jdbpath
rX)B$6B?gX"48g?"Xh?[ ?MR
)h4)8\XR6M&jv4"

ERROR: The path xxx is invalid.

Bv)??)8&) )h^ci1(
 [J)B?j4BX)&?B^6X?iR
& ' &"4 ?M"M?Bhj\vldbpath
)6"6$$?)?4? 4BjB
?MB9BXBv""BX?4?6h

ERROR: createdb: May not be called in a transaction block.

h?BLBh)c)XX?jd?4Q4??X?h# \XX? B J L??)&R2


H ?&4vBMh&?B) ?9)B6)Xi?j

\u7 u,X

ERROR: Unable to create database directory xxx.


ERROR: Could not initialize database directory.

 hj&B66\v6h)&&)M?&"?)X?jB)jMXj ?BX?Bh94&?6j6j"[
?"6h?[r)j6i?BX?Bh 6)X?94Q)?6ij4Qj"jH"?4&)Kv+6?6h<(
&M
iB4j '  6)?lh[+6hMX?B[6?-$)6$ )hj
 hBH)XX6v9??jX)??))X?j^6X?iR

Description

X4QBQBQ)6ll)j 6" k 
. X4j J)l
6H4j"?4)w?Q?B9)6 )j
96X?iR69Bv?jiR??))X?#)?B)h?l)4jjr\&?jj)?&)XBR?v(
68QRj2 ?6i&?44B   8"^QB)4M?&"4)8XjC?8"4
C ?XX
\u" u, _

 ?"h^XjB?4BBR)?)hv?)BhQ6Q?B"hQX&&B)?)?l
BhB)96XjBX?9jHJjX6v6?j 9* M4h9&)&?B?6h(
jHM?MR)h \"X-ijBhjj"?)?X)??R)i?jBM486
Xi)R  lB4?Xi?j Q6)?&Q6hcj\&?j0 B A * :1:[ B 6cY (
j6 ij&??)lXj
X6  Bl6$BRi$jXj
ALLOW_ABSOLUTE_DBPATHS
684&?h)&Y  ?[
Bj&"2"^)6?h6?B?X)j[MB^)8)
?Bi?Q B
B
/usr/local/pgsql/data

Notas

B9+B6?j^j?B6h 6h"
l6"j)e)B)R) )M??&?BR?)6M )j
 c"j)&[X"hL4 6i?6B?BXjBh"?dR?4r262ij&)BjjL
6?BX?MjXjh9 #?
 +?h )6XhMj"v6?)v?B?) v?j9)hj?&??X)j944-6#
?X)??R)X?BR?B)h?cR)M?))6$)j6X?X)Xj^B&"$"h
)6?h6dJ4 4ih6j?LB[)?R?92cjB^XBjX?[4B"X66Y (
j$4l6 4JX?X)v)vB?ji)??R)X? )?hB)? -4Q?
A2?)&Y (
B?6)jHR&R?Bj&)X?
\u7 u, _

Uso
)X4)-B9B)6M)hjJ
olly=> create database lusiadas;

)MX"4B9B)6 )h^^)"9)?hB)h?c

~/private_db

$ mkdir private_db
$ initlocation ~/private_db
Creating Postgres database system directory /home/olly/private_db/base
$ psql olly
Welcome to psql, the PostgreSQL interactive terminal.
(Please type \copyright to see the distribution terms of PostgreSQL.)
Type \h
\?
\q
\g
olly=>

for help with SQL commands,


for help on internal slash commands,
to quit,
or terminate with semicolon to execute query.

CREATE DATABASE elsewhere WITH LOCATION = /home/olly/private_db;

CREATE DATABASE

Compatibilidad
SQL92

^#4?6hlX&RB \u" u, _
 k  4h)B)-4 \
_ ^)O

 k p)B. JXj&)Bd?)?Bhv

CREATE FUNCTION
Nombre
CREATE FUNCTION

Br9B./ BXh?

Synopsis
CREATE FUNCTION name ( [ ftype [, ...] ] )
RETURNS rtype
[ WITH ( attribute [, ...] ) ]
AS definition
LANGUAGE langname

CREATE FUNCTION name ( [ ftype [, ...] ] )


RETURNS rtype
[ WITH ( attribute [, ...] ) ]
AS obj_file , link_symbol
LANGUAGE C

Inputs
name


BMB)&MjB9BX?j^vX4)

ftype
 B[)2h9j- BXh?R"&Bh + 

B2?B-h$&)L9)62jrij&?
 6gjrX)4
?B?X)h$hB)B2cih?&RiXJ$)"&Bh$-R?&(
c)?d6Xd)opaque
XB)

rtype
 BM48)hMh H 

BMhBh &) 4i?L)rMR RXj&?



Xj
&?J?B?iR-BRB
BX?j/^??
 B
48setof
6Bjtype
c?4&)opaque
)hBKB)^9setof
6?B?M?

attribute
: 8jh?B)gJ?X jB?Bj&)?j8)jchBBih?jBR4LKj?&?R)?j H 

B
B?l)h?rX"4B?26j8?
?B?X)4HB)jhB

iscachable
BXh?l)Y /^)K"hB-Br6)&r"6iscachable
?/^Bv?v
Br6)&r?Bg)?- X?
4rBj)h)4?jM 6$jjB4' /^?6?Bj&R?j#Bj?"6h?^"6B
?d?hrR)&44H??6h l  BMj?&?R6

6B1 //^BhB?J?r6)
iscachable
v. (\)?)hX)?jjBhBMBX?j

definition
: 6h?BvB?BvB BXh?&8RhB&4)B?BQBj8B$?)B)
c&)l
)&?B4B)BX?j B)&hBv) h#) j4h4iH?4cR k  ij h+H?

"XBR?RB)

obj_file link_symbol
 B?Hj hB Qi?R
?H68 jB)&?X)??M(??&6  ?)B)$BX?jB
/ B hB8BXh?CBR&8?B  ?)BRQ6"XijQ?[BjB6)&8R2B
^
B)&jghB k  BX?j  B6?B
?BB)&B?XjB)?B?B
B9B)&?X)??^?R)?2j4\X)B obj_file
?$hB[j4h4iDB ??&L
6 6&j
/ B?i^?BM6)&MRhBMB)&MjJhBlink_symbol
^
BX?jL?LhB  ?)B)6"XXj
langname

&)C7
B B
B
B
B
BjB
B/^B"B
B?hBBR&#
plname
i"i)hd"Cji4sql
R?)internal
BR  _]X
c c oboo\plname
cLj4)??

Outputs
CREATE

B?
?r"4BL?BcMij&&)B#Xj&?4r6XX6??

Description

)??1 /^ jh4 4r^"?hr[ BXh?/^?hvR)46


6B?XRB?r4H?r"44#)BM1/^BHBBMBX?j
\u|M \X$ 

Notes

4 4h8B9XB)4?dB
`X B" @ `w BC [  X
U)dhB?B j6"
?
Bih?BHhBK?B&)h?L /^??BhB)gBX?jB
l6 \ M F_$  hQ"jL4 ( BdBX?jB
6h")??1 /^HBXh?
%wjc4?j)?BM %8XB)?ihB
6)&B)&riRlr6Qj6R
?h\"4Bj BXh?B6[?Bv)HhBlB)
?h?BXR"&BjhJ $  B?)X???[&6
47
/^?LX)?j^
RB  (?)B)Bih?c)B1 /^
internal
BXh?BX)BBjBRc
hB$6)&  B)&
/L?hBjcX)6?B["K)j??& 6
 /^
?&  internal
 [4R"BBRi?
B4 ?h"iB  BR&HJ+)&?i6
hB
)"&4B
))BjJhB  B)&6)B4d6X?hB6B)&4r?LB :[ X?)6Mj \ 
u
W


-hB :[ X?)2? ?&h#hB \uGM \X$  )66&hB
B)&MjBB BXh?L?rhBM6)&M)hB k  B)&
E B#?j)?B k  BX?jB\
/^?  (?)B)9BXh?B6?[Ri  (?)BR
?B6)BX
jB
Bih?v?h?BXjB)&)B6
B
)?hB)h?crj hB QX?)6
?dhB \ u
M  \_$  6Bh)lhB6"MBRJ?j) k  BX?jB$B)&4
)" "6j?dvBMXj"4iB)&?X)??Q??, 6#j4\X
: BXh?LX)BBjB"h86cB)?
@  \X$ 

Usage
vi"4hM6?&? k  BX?jX


CREATE FUNCTION one() RETURNS int4


AS SELECT 1 AS RESULT
LANGUAGE sql;
SELECT one() AS answer;
answer
---1

B?Q4)&J?^X")h[  BX?j CX)???BCdjBLj #6(6")h 6B)"


??R ' B?rJ)h?X?)-jh?BX)?X?)4MiB4+6v??B)Bd"4B W   ?JhBXBC6
???[BBX?jl))&hw-?-X"X
?-?B4BvB6?v Fm  vXBh)?B


CREATE FUNCTION ean_checkdigit(bpchar, bpchar) RETURNS bool


AS /usr1/proj/bray/sql/funcs.so LANGUAGE c;
CREATE TABLE product (
id
char(8) PRIMARY KEY,
eanprefix char(8) CHECK (eanprefix ~ [0-9]{2}-[0-9]{5})
REFERENCES brandname(ean_prefix),
eancode
char(6) CHECK (eancode ~ [0-9]{6}),
CONSTRAINT ean
CHECK (ean_checkdigit(eanprefix, eancode))
);

B?$+)&?X")h$[BX?jBRJj$9XB6?4/^4#hB26B
lXj&?+)BhBl?BhBRJlj?B < B[ BXh? ?M?&?&Bh dQB(
&?X)???j)4\XHhB)w
/^)X&J?? j  6jX 3 j 6h"hB Q
XB6?^BX?j8)j&)h?iR??iRhB6jBih?^B)hvBRc B6)& B)&)hB
"Ch4)B j?j)?B?vc)cj?)?   BdBih?j BR&L?Qj?) 
?cB4ijB# BhB LX?)6?^hB k  4B?h?


CREATE FUNCTION point(complex) RETURNS point


AS /home/bernie/pgsql/lib/complex.so, complex_to_point
LANGUAGE c;

B  4iR?)h?^jJhBMBih?^?
Point * complex_to_point (Complex *z)
{

Point *p;
p = (Point *) palloc(sizeof(Point));
p->x = z->x;
p->y = z->y;
return p;
}

Compatibility
SQL92

?

\u7@  \X$ 

jh4r?)B)+4B?j

SQL/PSM
Nota: PSM stands for Persistent Stored Modules. It is a procedural language and it was
originally hoped that PSM would be ratified as an official standard by late 1996. As of
mid-1998, this has not yet happened, but it is hoped that PSM will eventually become a
standard.

k   r \u7M \X$  B)rhBM??1/^?B86B)0


CREATE FUNCTION name
( [ [ IN | OUT | INOUT ] type [, ...] ] )
RETURNS rtype
LANGUAGE langname
ESPECIFIC routine
SQL-statement

CREATE GROUP
Nombre
CREATE GROUP

"L"QB4c

Synopsis
CREATE GROUP name
[ WITH
[ SYSID gid ]
[ USER username [, ...] ] ]

-

Entradas
name

gid

jB&"Mg"

L696)d)d4??9B&4? 4" j6(


 dX?)6?
" k  j"SYSID
QB 9 gQ6hX?)?94jX?jB)
 #X)6^2B^44iX)4cB&"^? 4c"g2)6?BR[B&4"L&Rj
R?B)v&)B+&4)B B

username
[BQ??68[?6)?j9Q?BX??

)B4 ?BX??j
^4"

4" ; j6)??4B Q+?h?

Salidas
CREATE GROUP

4BhM44?l6?&"M?9j"8h&?B9X^+?

Descripcion

&?
X4-"[Bl4Q? )

)h '  B6?h ? ?
j)&?B?6hRJ)9?Bj&)X?B
j"68M"
)9"4[9R&(
?X?) '  6j"^6?R&BhM6K\XRj^6R?v)&?B?6)h?c
l6
^[ aMa0 ]G\]`)^ J) X)&?)?MJB4Bi? $"l
[]X^` \]_^7`
)Mj)K^"
FWX:F A W 

Uso
"i)^"JQ)X?


CREATE GROUP staff

"i)^"JQX^&?"j
CREATE GROUP marketing WITH USER jonathan, david

;f

Compatibilidad
SQL92

?) 44X?X)X?jB k p) Bd+?62?v?B6"XX?c \)u" \  + Jij&(


Xl ? W j?
6?&??)H)jijBXhQ "j


CREATE INDEX
Nombre
CREATE INDEX

jB6"? #?c?iM64iBR?

Synopsis
CREATE [ UNIQUE ] INDEX nombre_indice ON tabla
[ USING nombre_acceso ] ( columna [ nombre_operador] [, ...] )
CREATE [ UNIQUE ] INDEX nombre_indice ON tabla
[ USING nombre_acceso ] ( nombre_funcion( r">columnale> [, ... ]) nombre_operador )

Entradas
!
k 

"jXr4R6?64&$ij&"6+?h[)?"4-??X)jl?rR?
i)&(
 ^i"^#B?XL6Hd?6h)h6rX)LLd6^;B)CRj  
?BBhj
?B6h)Hv)X)??R)-)j??X)jB))8^"
nombre_indice
 jB&"M #B?X64 i"4)

tabla
 jB&"M?M)?J)M?M6M?"X")- #?B?i

nombre_acceso
 -Bj&"j&vRiX6dQQh???)))Q#?B?X < h
)Xi4^2XhL4 )UWX

 j6""j"X?BQh"  hlRiX6^)


?# B?X6XB)?

W_
B9?&&Bh)X?L?jrh"R?XjBi"BX?  4B&)&(c)
WW_

&?&4B9"i6)B)-h???))BQg)?j?h&Q )?X?jLX)4?X
\A2h&)

y

m :lm

[B9?&?&4B)X?j^?)?6?jB??B)?4r  ?/^?

columna
 jB&"MB9Xj?&B9?9h)?

nombre_operador
lBX?)6M 4)j"ir)6ji?R 
&)rRhv)MjB4&)h)??

nombre_funcin
lBvBX?jB?Qj$4J)?jl4c?l&)?j
v24$?&(

+

Salidas
CREATE

j&B66h?v64 #?B?XM6B9X")BQXj7+?h

ERROR: Cannot create index: index_name already exists.

"6BM6M4"jK6j?&j??X"4 #B?X

Description

\u7$ ^

ijB6"B  #B?X

nombre_indice

^?

tabla

4JX?X)

Sugerencia: Los ndices se utilizan principalmente para incrementar el rendimiento de


una base de datos. Sin embargo, un uso inapropiado de los ndices dar lugar a una
base de datos ms lenta.

??&4 6?B)+?&6h))Bh6?jiR&X?)R$#B?X 6 46X?X)


X&Bj&"MvX?&B8B8X?&B4v4B h)&Y BX?)6vvj(
j4vRjX?) lB#X?)6L^4)"l6Lh???))d64i?X)9?vJ)"4
 6$???)))v)!
#B?X$Rh?X?R  -h?R
#B?X h"
j"$4B"j
[X)h"M e)4 $ #?[???R)$?lX?)6
86hQi?R2lj)j"?BX?
Bi?jBvX&R)X?j )84B4jMint4_ops
vX)"1 e)h .  X?)6vvj)j"
iihQ4r?9)Jj?4)6h?vM)h
#?G
#?B?ivXj&"6?)#vB
 ?6B86?Bh)?&6h))B46Q&
Bi?j4B? j-+6)?
)??X)$B[[&))h?hH
B
B?XvX?)6 C  6jMURg ?" >Xnombre_funcion
?XiU$#h???))2)lXjB6?
)XX6
M
R?&dRj2)6)j[Cj)j"l8B&)?&BhL"4?$ #?4)?M Ch?
)B6&)X?j8))??X)??9)6)h


6h""jjX?jBMhj$)Xi42h"h"
QBR8R ?X#B?X6XB(
?j < jv)Xi4d"[9B?&?4&BRi?jv?"4Mv)?XjBX(
"iBX?Q  4B&)&(c)  J4j#2)XX6d"9?&?4&B4B)??#lR$(
?X?j#X)h?X[4h)BR
A2h&) +  
4j8)XX6B)6#rBl?&?4&& (
Ri?j8$?)?46?jB??B)?  ? /^? H r BX?jB)&jr?jr)?j?h&jrh???))j
6?)&4B)?B?X)Hjj
6hr
jj
M)XX6Q6j#Xj&?h)&Bh9?B (
&?X6)QBvBX6?h)^4Hj??))jJ?j?X)&BhX&vgX)6RJH\&?j
?jr
4jj
)XX6lB)6L6)h?X
Notas

Rh?&?))jrXB6?h)H 6h"KijB6?) $6h$6)BV


#?B?X-h"r
d)??4&"M#)h?hQ?B4)Q6?Bj?i)Q^B[Xj&))X?
M???XMBv?j
6??4B JI
& IK K& LK0 L
 6D (
#B?X
^4h?MRj
: &)X?)6MX6h9jc6JR7
(box)
"4 ;  ^?"BX?^Bh"8??R22
6i)^Xj"4caja
B)[
8X6\LBRi?
)\jJ)?&?H+i4X?B4r bigbox_ops
B
Nh)BhMM6M?6^"ji?K^&Y (
???X)X?jB66&)l "4h)28Xj"B)Rl^Bh"
Nh)BhL& )B H4
X)&)X)QB62"X4B?j[9R?"4   PB P;PP B?)49X)< (
)2 &)jJ$ #?^6???R)
 ^X?)6^8JR"i

bigbox_ops
poly_ops
6j
#B?Xrh4 ^Rj

poligonales
 Kjh?&?))jM^XjB6?h)[ 6h"[XjB6?)886^???R)B C?B?X
h"^6?&"^8)h?h?B4)&6 L?Bj?i) BLX&R)X?j
???XMBQ?r6??Bh JII
; QRI
. QRL
& LL
; S; T)K Q Q
#?B?X
 Kjh?&?))jM^XjB6?h)[ 6h"[XjB6?)886L???)RB&
B)66?&JQQ)?#
#?B?XQ6 Q?Bj?i)4B^X&R)X?j
???XMgj)j
=
j #)XX6 
#?B?X48&?Y (X?&B B
: Xh)?&BhKj? 
W_ 6J|
486X?X)KB)6h
ZX?)
lh???X\
[]X^`ja b [cd )??&?B)Hj
#B?X
6h???))J)9XjB6"?_
#?B?X4
6" (
 9X?)64)j"i
j9?B &")??RXj&int24_ops
))X?B49XBh)j9?Bh8 X)??X)X?jB9vijB6?)
6jF
#?B?X-j"$)jK?Bh$44v6Jij&))j
&??)&4B4
X^)h?B int42_ops
^?)ijB6?)
 6??4BM??6h94?Xc4c4?c jr?Bj&"4r 4). 


SELECT am.amname AS acc_name,


opc.opcname AS ops_name,
opr.oprname AS ops_comp
FROM pg_am am, pg_amop amop,
pg_opclass opc, pg_operator opr
WHERE amop.amopid = am.oid AND
amop.amopclaid = opc.oid AND
amop.amopopr = opr.oid
ORDER BY acc_name, ops_name, ops_comp

Usage
)X4)- #?B?XM^gX)&

ttulo

^?h)?

pelculas

CREATE UNIQUE INDEX ndice_ttulo


ON pelculas (ttulo);

Compatibilidad.
SQL92

 B94hB6?jL4j?BhM
^QBRQ^X&RB \u7$ ^  k p)c
FWX:F
 *  

6"

CREATE LANGUAGE
Nombre
CREATE LANGUAGE

BMLB4cv?B6\M)BX?jB

Synopsis
CREATE [ TRUSTED ] PROCEDURAL LANGUAGE langname
HANDLER call_handler
LANCOMPILER comment

Entradas
W 

*
6X?X##&)B?J?)2)#?B6\dv6"1 8vX?h
TRUSTED
B"X2LR?BQ????)QB)rBX?BR??)6"RR&(
^?)$"6?Xi?jB 9)XX6 c6l)?)2 j&??lBjBX)c"4?6h)4
?Bh4j6?L6R?jij&????L24")? 6h"j)???R)
6?4B6\MRX"i)KB4cRrBX?B4rX&Qg?B6\{
B  BU

langname
 Bj&"#4B4c?4B6\#"ji4?&Bh) ^C6#?"BX?) &)MX?)
&?& X?) dB&"9c?4Bh l
 d?B6\["ji4?&Bh)B^4
4J4B?HB?j
?4B6\?BXj) jh"4 9 jh4

m :  * W

call_handler

4BBj&[[Bl BX?j "?&Bhl"?6)[l6


? ?call_handler
)&))M\X)K?jr"ji4?&?Bh )

comment
 g)"&B

?X)4B 4?B4h)jM)h?h
LANCOMPILER
 Q?8
BL4B)
???)
;: Xh)?&Bh j6"2B&hLANCOMPILER
pg_language
6R?v)MB?BML

Salidas
CREATE

hM&B6)M?hQ6jj?B6\MX4)JQij +?

ERROR: PL handler function funcname() doesnt exist

hM"K4c?hQ6j?BX?

cBBXjB)

funcname

Descripcin

lh???))B \u  ^  6)?


6h"vd"4?6)9 B4c
?B6\[ jh4 : XjB?B)X?jB?) Bi?jBM#JjXB?&?Bj{%w?$%<(
d4B?j #4h2c4c^?4B6\ C c6)?^4B?c??4?j.(

")?

j6")"?h)-LBQ?4B6\

Escritura de manipuladores PL

B&)B?J?Rr2??)&)R$)l&?c6\[JjX?&Bh)B26
6X?^&
?B6\8Xj&??)&X&|B  B"4?6)B  j64[ij& BLBX?j 6?C)")(
&Bh2 ??B&4Kh?&RJXBhBjM)h?[B&4B?2&4l(
X?iR <  6h&?8K&RB??)jQ??)&)R968??)&)#?"X)&4B
X&vB9 BX?jL6XB6?h)
v&Rj?j)"&4BjK4Q6J&?B?X)jKv?$??)&)$X)B2B$ & (
X? ) L"X?&?BL?4$4&J?B6\l"?#jrJ&)B??)
6vh. (
Xh)


 )B2-??)&)4)6jrh?46 B?X[)"&BH;
* R4\h
h &R9?9B)99JjXB?&?B
' j2?[4&)
?Bj&Ri?jL
6j?4BXBh)^jBpg_proc
h"l?j)  "B  ? * R
2  RB4v??R&)6^46h98 BX?jB6-?l)"&Bjl6 
* 
j4h4^2?vBhR
4c"ji4?&?BhgB& &"^2)"&Bhj4B"< (
)jM?BX? ) pg_proc
4?)"&4BjB4h"ih 3 &$ KR?Q8Bh"
Lj?4)BQjB2BX?jL?Bj&64gcR?K"hBlg)?
   
k 

^RB(

"6jB6)???)&)B??)j??)&R)
j4B?2Bh)
??))Kj)"BQ?JrM"jBj"ji4?&?BhQ??)&R 9 9Xpg_proc
?)6? :l 
v?
\
ut
@  \_  4-"jXJ?&?4B&4h))6)Q )h?h
R?
4&?&2X1(
 66J+h9B4v4)?B6\r"X?&BRprosrc
pg_proc

&8   X? +B["h2ldXB"QLX)??4hlXj22??B?[RB)B?
MB)XK84)??

Notas

lh???X \u7M \X$ 

 )Mi"i)KB9BX?j
lh???X \    ^ )??&?BR?B6\"ji4?&?Bh
)M)r?Bj&Ri?jX

W 4#?R ?9R?
pg_language

Table
= pg_language
+-----------------+-----------------+-----+
|
Field
|
Type
+-----------------+-----------------+-----+
| lanname
| name
| lancompiler
| text
+-----------------+-----------------+-----+

| Length|
|
|

32 |
var |

lanname |lancompiler
-----+--------internal|n/a
lisp
|/usr/ucb/liszt
C
|/bin/cc
sql
|postgres

 "
 !# $%$'&)(*+-,/.0# &/1 24365879&/& :-+-1 &/$;3=<>. 3?%# +@&/$'+-A4# CBD$"1 $E. 3?27$'1 ,/(*,/$;+-F82GH1 $'I4$EGC$'3
3J$'A4,/GKF3=;1 2L$'+%M 2GCF8A43J$'G>$'+%$;&N&/$'+-A4# CBD$6OPQORS:-$'3J$'1 QF821 G>&/G>7.0'7,/1 1 $;GUTV3?$;GKF3?,/797,/2+-$'G
1 $&/G W8# +-7,/24+-$;GX1 $OYP6O[Z
\V7F# &/(*$'+-F$'R&/G)1 $;] +-,/7,/2+-$'GU. ^3=X# +_&/$'+-A# `B$X1 $a. 3J27$'1 ,/(*,/$'+-F24G)+-2b. # $'1 $'+VGC$'3 (*2c
1 ,/] 79^1 'Ga# +-Hd$'ef!# $g:-+hGC,/1 2_793J$';1 GZ

Uso

i GCF8f$;Ga# +-H. &/^+-F8,/&/&/H. ^3=# +j(*^+-,/. # &/1 23>$'+hOPQO[k


#include
#include
#include
#include
#include
#include
#include
#include

"executor/spi.h"
"commands/trigger.h"
"utils/elog.h"
"fmgr.h"
/* for FmgrValues struct */
"access/heapam.h"
"utils/syscache.h"
"catalog/pg_proc.h"
"catalog/pg_type.h"

Datum
plsample_call_handler(
Oid
prooid,
int
pronargs,
FmgrValues
*proargs,
bool
*isNull)
{
Datum
retval;
TriggerData
*trigdata;

lm^n

if (CurrentTriggerData == NULL) {
/*
* Llamado como una funcin
*/
retval = ...
} else {
/*
* Llamado como un procedimiento "trigger"
*/
trigdata = CurrentTriggerData;
CurrentTriggerData = NULL;
retval = ...
}
*isNull = false;
return retval;
}


2 &/(*$;+-F8$V# +-2GH. 2724Gf(*,/&/$'Gg1 $_&//+-$;G1 $_741 ,/A42F,/$'+-$'+!# $_GC$'3Q-1 ,/1 ;Gf$;+d $;eE1 $
&/24Gw. # +-F82GX. ^3=H72(*. &/$'F3>$;&OM 7&/&:-+-1 &/$'3SO $'H w LhaJh. ^3=H,/+-W823Jc
(*7,/4+hGC2I3J$6792(*2%72(*. ,/&/3?&/2E$'+h# +h(*41 # &/2%73JA I4&/$Z
2GGC,/A# ,/$;+-F8$'G724(*+-1 24G $'+-F24+-7$'G3?$;A,/GCF3=+b$;&'&/$'+-A#NBD$a1 $a. 3J27$'1 ,/(*,/$'+-F2G1 $>(*# $'GCF83?-k
CREATE FUNCTION plsample_call_handler () RETURNS opaque
AS /usr/local/pgsql/lib/plsample.so
LANGUAGE C;
CREATE PROCEDURAL LANGUAGE plsample
HANDLER plsample_call_handler
LANCOMPILER PL/Sample;

Compatibilidad
SQL92
 w " VhhLVhE$'GU# +-6$'F8$'+-GC,/+%1 $wM 24GCFA3J$'GZJh2b$',/GCF8$X# +-GC$'+-F$'+-7,/ V
a VhhLVhj$;+ N 4Z

CREATE OPERATOR
Nombre
CREATE OPERATOR

lm

$'] +-$g# +j+-# $;d 2_24.0$'3=^1 243)1 $g# GC# 3?,/2

Synopsis
CREATE OPERATOR name ( PROCEDURE = func_name
[, LEFTARG = type1 ] [, RIGHTARG = type2 ]
[, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
[, RESTRICT = res_proc ] [, JOIN = join_proc ]
[, HASHES ] [, SORT1 = left_sort_op ] [, SORT2 = right_sort_op ] )

Entradas
name

i &24. $;3=1 243)f1 $'] +-,/3=Z`'^+-GK$g(*^GwI4?BD2%&/24Ga73?7F8$'3J$9Gw.0$'3=(*,/F,/1 2GZ

func_name

fW8# +-79,/+j# F8,/&/,/e^1 g. 3?f,/(*. &/$;(*$'+-F8^3>$'GCF$2. $'3?1 23`Z

type1

i &F,/. 2*1 $_&/". 3?F8$L,/e!# ,/$'3J1 %1 $;&2. $'3?1 23R4GK, . 3J279$;1 $Z i GCF8%2. 7,/4+1 $'I4$'3?EGK$;3
24(*,/F,/1 H. 3?g# +h2. $'3?1 23U# +-3?,/2E.0243U&/f1 $'3J$'7:-4Z

type2

i & F8,/. 2.03=V&/%. 3?F8$L1 $'3J$S7:-%1 $;&024. $;3=1 243R4GC, . 3J247$'1 $4Z i GCF8E2. 7,/+1 $;I$;3=_GC$'3
24(*,/F,/1 H. 3?g# +h2. $'3?1 23U# +-3?,/2E.0243U&/f,/e!# ,/$'3J1  Z

com_op

i &792(*(*# F8^1 243U. 3?g$'GCF$g24. $;3=^1 243=Z

neg_op

i &+-$'A^1 243). 3?f$'GCF$2. $'3?1 23`Z

res_proc

fW8# +-79,/+j$'GCF8,/(*1 243?f1 $3J$;GKF3=,797,/+jGC$;&/$'7F8,/df. 3?g$;GKF$g2. $'3?1 23`Z

join_proc

?J??`?J???? : $BD24,/+GC$'&/$;7F8,/d,/F8T$;GKF,/(*F243gW8# +-7F8,/2+@W823F:-,/GL24. $;3=F23`Z ?J?`??J??? 


W# +-7,/+h$'GCF8,/(*1 23U1 $9

\ h
i
+-1 ,/7f!# $g$;GKF$g2. $'3?1 23)GC2. 23=FH# +j^&/A23=,/F(*2%:-GC:-cBD24,/+-9Z
left_sort_op

. $;3=^1 243)!# $g23J1 $'+-f$'&F,/. 2E1 $61 F2_1 $g&/g. 3?F8$,/e^!# ,/$'3J1 g1 $$'GCF8$2. $'3?1 23=Z

right_sort_op

. $;3=^1 243)!# $g23J1 $'+-f$'&F,/. 2E1 $61 F2_1 $g&/g. 3?F8$1 $;3J$S7:-H1 $$;GCF8$g2. $'3?1 23=Z

lm^

Salidas
CREATE

$;+-GK`B$g1 $;d # $;&/F82VGC,4$;&42. $'3?1 23)$'Ga793J$91 2_792+h',/F82Z

Description

 w Eh w h1 $;] +-$w# +V+-# $'d2b24. $;3=1 243R



Z i &# GC# 3?,/2b!# $w1 $'] +-$w$'&^24.0$'c
name
3=^1 243GC$g724+-d,/$'3?F$g$'+hGC#. 3J2. ,/$'F3,/2Z
$;Gb# +-jGC$'7# $'+-7,/h1 $%:-GCF8hF83J$',/+-F"T1 24Gb58^< 73?7CF8$;3J$'Gb724+@79# ^&/c
i &)2. $'3?1 23
!# ,/$'3?f724(*I4,/name
+-^79,/+j1 $&/2EGC,/A4# ,/$'+-F$k
c 9H w"k

Nota: No se permite ningn caracter alfabtico en un nombre de operador. Esto permite a Postgres analizar la entrada SQL en elementos sin requerir espacion entre cada
elemento.

& 24. $;3=1 243a U$'GQ724+-d$'3?F,/1 2"V V $'+&/L$;+-F83?1 R. 23a&/2"!# $bGK2+$'+724+-GC$'7# $'+-7,/
i 4
$'!# ,/d&/$'+-F$'GZ
M 243a&/2"(*$;+-24G6# +-2"1 $H i 4 \V 2h h \La1 $'I4$'+GK$;3 1 $'] +-,/1 2GZ9M 3?b24. $;3=1 243J$'G
I4,/+-3?,/24GCR(*I42G1 $'I4$'3?+*GC$'3w1 $'] +-,/1 2GZSM 3=L2. $'3?1 23?$;GQ# +-3?,/24G. 23w&/_1 $'3J$;79:-^R GC24c
&/(*$'+-F$V i 4 \La1 $'I4$;3=EGC$'3X1 $'] +-,/1 2R4(*,/$'+-F3=^Gf!# $L$'+24. $;3=^1 243J$9G# + 3=,/2Gg. 243X&/
1 $'3J$97:-HGK2&/(*$'+-F$g h \La1 $'I4$'3?/gGK$;3U1 $;] +-,/1 2)Z
1 $'I4$H:-I4$'3wGC,/1 2h. 3J$'d,/'(*$;+-F8$V1 $'] +-,/1 2j# F,/&/,/c
^(*I,/;+-R $;&-. 3J247$'1 ,/(,/$'+-F82
func_name
e+-1 2% waLhaJh
Tj1 $'I4$fGC$L1 $;] +-,/1 2".03=L7$'. F;3X$;& +- (*$'3J2h7243?3J$'7F82E1 $
3JA # (*$'+-F24Gw5I4,/$;+j# +-2_2E1 2GC<CZ
i &>2. $'3?1 23H72(*(*# F81 243b1 $'I4$'3?/hGC$'3H,/1 $'+-F8,/] 71 2GK,>$;N,/GCF$j# +-24R. ^3=j!# $M 24GCFA3J$'G
. # 1 ,/$'GC$*,/+-d $;3=F,/3h$'&623J1 $'+1 $&/24G24.0$'3?+-1 24GjGC,&/21 $;GK$;-Z-M 23h$=BD$'(*. &/2Ra$'&2. $'3?1 23
3J$9c8(*$'+-243Jc8!# $;R VV R1 $'I4$;3=H. 3J24I4I4&/$'(*$;+-F8$HF8$;+-$'3a# +2. $'3?1 23a724+-(*# F1 23a3J$';c
(*T4243Jc8!# $ VV Z $_$'GCF8%W823=(*^R4$'& 24.0F8,/(*,/e1 243X1 $_724+-GC# &/FGf.0241 3?/_792+-d$'3?F8,/3Q&/,/I3J$;c

(*$'+-F$k
"0,0,1,1"::box



MYBOXES.description


MYBOXES.description



"0,0,1,1"::box

i CG F82.0$'3=(*,F8$E&/%$=BD$'7# 7,/4+1 $_741 ,/A42*. 3?%# F8,/&/,/^3GC,/$'(*. 3J$_&/" &/F8,/(*"3J$'. 3J$9GC$'+-F8^79,/+@T


GC,/(*. &/,/] 7H&/A42E$;& 24. F,/(*,/e1 243=Z

lm

$hW823=(*jGK,/(*,/&/^3R GC,>$'N,/GCF$h# +2. $'3?1 23f+-$'A41 23H$;+-F82+-7$'GV1 $'I4$'3?GC$'3f,/1 $'+-F,/] 79^1 2)Z

# .024+-A4(*2Gg!4# $b# +*2. $'3?1 243RN3J$';c8,/A# &/R R$'N,/GCF$'RTF8^(*I4,/'+# +*2. $'3?1 23a3J$';c
+-24c8,/A4# &/R Z i & +-$;A^1 243U. $'3?(*,/F8$6&24. F,/(*,/e1 23)GK,/(*.0,/] 73
NOT MYBOXES.description === "0,0,1,1"::box


MYBOXES.description !== "0,0,1,1"::box


, $;& +-2(*I43J$E1 $_# +2. $'3?1 23X792(*(*# F1 2436$'GHGC# (*,/+-,/GCF83?1 2R M 2GCF8A43J$'Gg&/2I4# GK7%$'+$'&
7F8;&/24A42Z , $'G6$'+-72+-F83?1 2h$L+-2hF,/$'+-$b +# +*724(*(*# F1 23X;&-(*,/GC(*24R4$;+-F82+-7$'G&/V$;+-c
F83?1 L1 $'&072(*(*# F81 23X$'G7F8# &/,/e^10E.03=VF8$;+-$'3X$'&03J$'7,/$'+73J$';1 22. $'3?1 23w792(*2GC#
724(*(*# F1 23`Z i GKF2EGC$g.0&/,/79f^& +-$'A41 243R^F(*I4,/'+ Z
i GCF82h$'GQ.03=L. $'3?(*,/F,/3a&/_1 $'] +-,/7,/+1 $L1 24G62. $'3?1 23J$SG6!# $bGC24+*72(*(*# F81 23J$'GQ1 $H&/2G
+-$'A41 23?$9G"1 $71 *# +-21 $&/2Gh24F3J24GZ i &X. 3?,/(*$'3L24. $;3=1 243V1 $'I4$'3?/1 $'3L1 $'] +-,/1 2GC,/+
# +72(*(*# F81 243g2*+-$'A41 2358724(*2GC$'". 3J2.-,/^1 24<`Z^P6# +-1 2*$;&GC$'A4# +-1 2*2. $'3?1 23$'G
1 $'] +-,/1 2R GC$h1 $;I4$"+-2(*I43=^3H$;&U. 3?,/(*$'3J2792(*2$'&U72(*(*# F81 23H2+-$;A^1 243=Z i &U. 3?,/(*$'3J2
GC$'3=g7F8# &/,/e;1 2_792(*2%# +h$'W8$'7F2_&/F$'3?&Z`5 i +"M 2GKFA3J$;GX-Z ;R$'GCF82_F8(*I4,/;+jW8# +-7,/2+-H. 3?
GC,/(*. &/$'(*$'+-F$g!# $g(*I42Gw2. $'3?1 23J$9GwGC$g3J$'] $'3?+"& 2F83J2<`Z
2G_GC,/A4# ,/$'+-F8$;GEF3J$'GL$'GC. $'7,/] 71 243J$9G_$'GCF8+. 3J$;GK$;+-F8$'GL.03=j# N,/&/,/^3f&>24. F,/(*,/e1 243f1 $
724+-GC# &/F8^Gh&X3J$';&/,/e3_# +-,/2+-$'Gj58/B2,/+-GC<`Z M 2GKFA43?$;GhGK,/$;(*. 3J$*. # $;1 $$'d&/# 3V# +-# +-,4+
58,Z $Z R9. 3J247$'GC+-1 2b# +-67&/# GC# &/72+%1 2G d3?,/I4&/$'G1 $XF8# . &/G>GC$'. ^3=;1 GU. 23# +%2. $'3?1 23
!# $g3J$'F243?+-2V# +jI4224&/$'^+-24<-. 23>GC# I4GKF,/F8# 7,/+,/F$'3?F,/d " "b`Z=\L1 $'(*GCRM 24GCFA3J$'G $;G
7. 'eH1 $H# F,/&/,/e3U# +&/A423=,/F(*2%:-GC:-cBD24,/+-UGK,/A4# ,/$'+-1 2E&/GX&/+-$'GX1 $% \LM '8GC,/+j$'(*c
I43JA 24R1 $;I4$hGCI4$'3HGC,>$'GCF8$;GKF3?F8$;A,/j$'GV. &/,/7I4&/$Z i GV&/A423=,/F(*2@:-GC:-cBD24,/+ g7F# ^&U$'G
GC24&/(*$;+-F8$7243?3J$'7F2@. 3?24.0$'3?1 243J$;GE!# $3J$'. 3J$9GC$'+-F8^+F$'GCF8G%1 $,/A# &/1 1 1 $'(*^GE&/
,/A# ^&/1 1@1 $'& F8,/. 2*1 $%1 F821 $'I4$_GC,/A+-,/] 73g,/A4# &/1 1@"+-,/d$'&)1 $EI4,/FGH1 $E&/"3J$'. 3J$9GK$;+-F8c
7,/4+1 $'&)F,/. 2Z58M 2436$=BD$'(*. &/2R # +@F,/. 2*1 $%1 F2!# $%792+-F,/$'+-$hI4,/FGb+-2*# F8,/&/,/e^1 2Gb!# $%+-2
F8,/$;+-$'+3J$'. $93J79# GC,/+. 3?VF8$'GCFGf1 $_,/A4# &/1 1. 241 3?/V+-2GC$'3Q# GC1 2$'+$;& :-^GK:-cBD24,/+ <CZ i &
,/+-1 ,/71 23 \ "i ,/+-1 ,/7%& 24.0F8,/(*,/e^1 2431 $_792+-GC# &/F8GH!# $E# +:-GC:"B2,/+. 24# 1 $EGC$'3
# F8,/&/,/e^1 2_1 $W8243?(*HGC$'A4# 3?f. 23>$;GCF8$2. $'3?1 23=Z
$W8243?(*f. ^3?$97,/1 R^&/2Gw1 24G 2. $'3?1 23?$;G>1 $23?1 $'+",/+-1 ,/7+"& 2. F8,/(,/e1 23U1 $6792+-GC# &/F8G
GC,&/Q$'GCF83?F$'A4,/6(*$;e7&/3JcD243J1 $;+-3 $'G)# F8,/&/,/eI4&/$wTL!4# $X2. $'3?1 23J$'G)1 $;I$;3='+_GC$'3 # F8,/&/,/e^1 24G
. 3?f23?1 $'+-3)&/GX7&/GC$'Ga1 $g&/2GQ1 24Ga2. $'3?1 23?$;GZK 24Ga24. $;3=^1 243J$'Ga1 $g23J1 $'+h1 $'I4$'3?/;+jGK$;3
GC# (,/+-,/GKF3=^1 24GGC2&/(*$'+-F$V. 3?_# +*2. $'3?1 23w1 $L,/A4# &/1 1 R T1 $;I4$'3=+*3J$;W$;3,/3=GC$VV24.0$'c
3=^1 243J$9Gw(*$;+-243Jc8!# $g. ^3=&/24GwF8,/. 2Gw1 $&/H. 3?F8$Q,/e!# ,/$'3J1 gT%1 $'3J$97:-H3J$'GC. $'7F8,/d;(*$'+-F8$4Z
, 2F83?Gf$'GCF83?F$'A,/^GH1 $_# +-,/+GC24+724+-GC,/1 $'3?1 Gg. 3?7F8,/7GCRM 24GCFA3J$'Gf79^(*I4,/3=%$;&2. F,/c
(*,/e1 23 $'+%F,/$'(*. 2L1 $Q$=BD$'7# 7,/4+%.03=6# F8,/&/,/e^3=&/^GUTV3?$;!# $'3?,/3=^+E$'GC. $'7,/] 77,/4+E1 ,/7,/24+-&
7# ^+-1 2# +2. $'3?1 23VGC$'*1 $'] +-,/1 2Z \LW8243?F8# +-1 (*$'+-F$'R)&/72(*# +-,/1 1,/+-d $;GKF,/A^1 243?
,/+-d$'+-F8_+-# $;d ^Gg$;GKF3?F8$;A,/G61 $V# +-,/4+,/+-W83J$'7# $'+-F$'(*$'+-F$'RT&/EA4$'+-$'3?&/,/1 ^1-1 ,/1 L1 $
$'GCF83?F$'A4,/G>1 $'] +-,/1 Ga. 23>$'& # GC# 3?,/2E+-2%(*$;3?$;7$6&/H724(*.0&/$=BD,/1 13J$'GC# &/F8+ F8$Z
G61 2G &/F,/(*G. ,/$'e^G61 $L&/_$'GC. $'7,/] 77,/+$'GCF+*. 3J$'GC$'+-F$'G6. 3?V!4# $V$'&02. F8,/(*,/e^1 23
. # $'1 $'GCF8,/(*3U&/24GaF(*-2Gw1 $6&/24Gw3?$;GK# &/F1 2GZ , # +-H7&/# GC# &/f1 $&/HW823?(*-k
MYBOXES.description



"0,0,1,1"::box

$'GCF8Q. 3J$'GC$'+-F$w,/+E&/6 7# &/,/] 77,/+-R;$;+-F82+-7$'GCM 2GCF8A43J$'GU. # $;1 $wF8$'+-$;3 !# $Q$;GCF8,/(*3 &/QW83?779,/+
1 $%,/+-GKF+-7,/GL$'+
 V i !4# $hGCF,/GKW87$'+&/j7&/# GC# &/-Z jW8# +-7,/4+
1 $'I4$
GC$'3># +-LW8# +-79,/+j3?$;A,/GCF3=1 H5&/2E!# $bGC,/A4+-,/] 79b!# $HT4L$;GKFH1 $'] +-,/1 b# F8,/&/,/res_proc
e^+-1 2" w
Lh ?h"<8R7$'. Fb3JA# (*$'+-F2G61 $'&-F,/. 2h7923?3J$'7F82hTj1 $'d# $'&/d$b# ++-# ($'3J2j$;+. # +-F2

lm^


2 F8^+-F8$Z i & 2. F8,/(*,/e^1 2436GK,/(*.0&/$'(*$'+-F$"&/&/^(*%h$;GKF%W8# +-79,/+-R . GC+-1 2&/$E$'& . 3?(*$'F3J2
R;RRTb(*# &/F,/. &/,/7Q$'&3J$;GK# &/F1 2H. 23 $;&F(*-2H1 $w&/X3J$'&/^79,/+V. 3?X24I4F$'+-$'3 $;&1 $;GK$;1 2
+-# (*$'3J2V1 $g,/+-GKF+-7,/Ga$'GCF8,/(*^1 2)Z
P6# +-1 2h(*I42G24. $;3=^+-1 24G1 $'& 24. $;3=^1 243w724+-F,/$'+-$;+*d ^3=,/I4&/$;G61 $L,/+-GCF8^+-79,/^R4$'&-2. F8,/(*,/c
e1-243a1 $;I4$f$'GCF8,/(*3a$;&F(*-2"1 $f&/L# +-,/4+3?$;GK# &/F+-F$ZC bW8# + 79,/+_BD24,/+-^. 3J2473J$'F23=+-3[
24F3J2h+-# (*$'3J21 $;79,/(*^&0!# $VGC$'3?_(*# &/F,/. &/,/71 2. 23X&/G673J1 ,/+-&/,/1 ;1 $'G1 $L&/^Gg1 24G7&/GC$'G
$'+-d# $'&/FGa$;+h$'&79(*. # F2E1 $'&F(*-2V$'GC. $'3?1 2Z
f1 ,/W8$'3J$9+-7,/f$'+-F3J$&/HW8# +-79,/+
my_procedure_1 (MYBOXES.description, "0,0,1,1"::box)

TE$;&42. $;3=1 23


MYBOXES.description === "0,0,1,1"::box

$'GH!4# $'M 24GCFA3J$'Gf,/+-F8$'+-F"24.0F8,/(*,/e3624. $;3=^1 243J$9GbT*. # $;1 $_1 $'7,/1 ,/3Q# F,/&/,/e36# ++-1 ,/79$E. ^c
3=%3J$;GKF3=,/+ A,/3$;&$;GK. ^79,/21 $EI4 GK!4# $'1 "79# ^+-1 2. 3$'7$'+24. $;3=1 243J$9GZ ,/+$'(*I43JA2R+-2
GC$g,/+-F8$'+-FL24. F,/(*,/e3UW8# +-7,/2+-$'GCR T%GK2+$?B$;79# F1 Ga(*$'1 ,/^+-F8$gW8# $'3?eHI43J# F8-ZC\L1 $'(*GCR&/G
W8# +-79,/2+-$'Ga. # $'1 $;+"F8$'+-$;3>7# &/!# ,/$'3)+- (*$'3J2_1 $g3JA# (*$;+-F82G (*,/$'+-F83?Ga!# $g&/2GX2. $'3?1 2c
3J$'G $'GCF8+"3J$;GKF3?,/+-A,/1 2Gwg# +-2%2E1 2GZ

Notes
a$;] ;3=GC$&w7. /F# &/2GC24I43J$2. $'3?1 23?$9G"$'+&/G" v|?s-}?4VX|??} |_tYL. 3?(*G",/+-c
W8243?(*7,/4+ ZSa$'] '3?GC$LEhhh w h. 3?_I423=3?3w2. $'3?1 23?$9G1 $'] +-,/1 2Gf. 23X$'&
# GK# ^3=,/2V1 $g# +-fI4GC$1 $1 F82GZ

Utilizacin Usage

i &GK,A# ,/$'+-F$H792(*+-1 2"1 $;] +-$# ++-# $'d2%2. $'3?1 238R3J$;'c8,/A4# &/1 1 R. 3?f$;&F,/. 2"1 $g1 F2
V Z
CREATE OPERATOR === (
LEFTARG = box,
RIGHTARG = box,
PROCEDURE = area_equal_procedure,
COMMUTATOR = ===,
NEGATOR = !==,
RESTRICT = area_restriction_procedure,
JOIN = area_join_procedure,
HASHES,
SORT1 = <,
SORT2 = <
);

lx

Compatibility
SQL92
 w h wah,/GhM 2GCF8A43J$'G"$'F8$;+-GC,/24+ Z :-$;3J$,/G%+-26 wah w h

GCF8F$'(*$'+-F,/+ 4Z

CREATE RULE
Nombre
CREATE RULE

$'] +-$g# +-H+-# $;d g3J$'A&/

Synopsis
CREATE RULE name AS ON event
TO object [ WHERE condition ]
DO [ INSTEAD ] [ action | NOTHING ]

Inputs
name

i &+-24(*I43J$g1 $&/g3?$;A&/gf73?$;3JZ

event

i d $;+-F8$g. # $;1 $GC$'3

object

I;BD$'7F-. # $;1 $GC$'3

select update delete

table

table column

insert

condition

PQ# &/!# ,/$'3?H7&/# GC# &/ N  h


2
. # $;1 $'+h. 3J$97$'3>$;+&/# A43>1 $
i i Z
new
# +-Ld3?,/I4&/$f1 $H,/+-GKF+-7,/ ?J CG ,/$'(*. 3J$f
!# $b# current
+-Vd3?,/'I4&/$H1 $H,/+-GKF+-7,/L$'GQ1 (*,/GC,/I4&/$
$'+ N XZ

action

P6# &/!# ,/$;3=L7&/# GC# &/ N XZ


2
. # $'1 $'+.03J$S7$'3w$'+&/# A3w1 $b# +-_dc
3=,/I4&/$1 $,/+-GKF+-7,/ ?J CG ,/$'(*new
. 3J$!# current
$# +-*d3=,/^I4&/$1 $,/+-GCF8+-7,/*GC$'*1 (*,/GC,/I4&/$$'+
XZ

lx^l

Salidas
CREATE

$;+-GK^A$1 $'d# &/F8$gGC,&/f3J$'A4&/f$'G 73?$;1 g72+h',/F82Z

Description

& M 2GCF8A43J$'Gb}?t4u|?|JsJV. $;3=(*,/F$E!# $E# +-j7F,/24+&/F8$;3=+-^F8,/d%GC$'"3?$;'&/,/e^1 %$'+# .01 F8$;GKR


i
,/+-GC$'3?F8GQ2"1 $;&/$'F8$;GQ$'+F8I4&/Gw2"79&/^GK$;GZ\V7F# &/(*$'+-F$fGK$H# F8,/&,/e+3J$'A4&/Gw. 3?L,/(*.0&/$'(*$'+-F3
d,/GKFG 1 $gF8^I4&/GZ
i &'GK,A+-,/] 71 2b1 $a# +-Q3J$'A4&/X$'G!4# $Q7# +-1 2g# +-6,/+-GCF+-7,/Q,/+-1 ,/d ,/1 # ^&$;G)77$'10,/1 R7F8# c
&/,/e1 ;R ,/+-GC$'3?F1 b2"I4243?3?1 R$',/GCF8$H# +-V,/+-GCF+-7,/V7F# &58. ^3=H72+-GK# &/FGCR7F8# ^&/,/e'7,/2c
+-$'G TEI423?3=1 24GC<T_# +-g+-# $'df,/+-GCF8^+-79,/g5. ^3=67F8# &/,/e^'7,/2+-$'GwT_-1 ,/1 24GC<`Z ,N$'&
$'GC. $'7,/] 7102$'+&/j79&/# GC# &/ T@&/
$'GC. $;79,/] 71 h$'+&/j79&/# GC# &/hevent
hi c
i GC24+d$'3J1 ;1 $'3?GQ. ^3=b&/L,/+-GKF+-7,/Lcondition
79F# &&/V. 3?F$
1 $b&/L3J$'A4&/L$;GQ$=BD$'7# F81 -Z
\V+-F$'GCR;GC,/+%$;(*I43JA2R;&/2G d ^&/243J$'G1 $6&/2G>7(*. 2G>1 $Q&/,/action
+-GCF8+-7,/67F8# &T 2_&/6+-# $'dg,/+-GCc
F8^+-79,/fGC2+hGK# GCF,/F8# ,/1 2GX. 23
T
Z
current.attribute-name new.attribute-name
. 3?F$
1 $&/3J$'A4&/GC$$=BD$'7# F8724+$'&a(*,/GC(*2,/1 $'+-F,/] 79^1 243L1 $724(*+-1 2T
F83?+-GC77,/4action
+"!# $g$;&792(*+-1 2_1 $# GC# 3?,/2E!# $g7# GCE&/f^79F,/d7,/4+ Z

Notas
G . $;3=F,/+-$'+-F$w&/6.03?$;79;# 7,/4+_792+E3J$;A&/G 1 $ N wZ ,^$'&(*,/GC(*2L+-2(*I43?$w1 $w7&/GC$w2Hd3?,/I4&/$
i )
1 $H,/+-GKF+-7,/E. ^3[$'7$L$;+$'&
RN&/
Tj&/_. 3?F8$
1 $L&/V3J$'A4&/R GC2+
724+-GC,/1 $'3?1 2GF821 2Gf1 ,/W8$'3J$'+-event
F$'GF# .0&/Gcondition
Z $_W23?(*E(*Gg. 3J$'7,/GK^action
R
T
GC2+&/G
+-,/7GbF8# . &/^Gb!# $hGC2+724(*.03=F,/1 Gb$;+- F83J$%79&/^# GK# &/GZM 243g$=BD$'(*new
.0&/24R &current
GbGC,/A# ,/$'+-F$'GV1 2G
3J$'A4&/'GaF8,/$'+ $'+&/g(*,/GK(*HGC$'(*^+-F8,/7-Z
ON UPDATE TO emp.salary WHERE emp.name = "Joe"
DO UPDATE emp ( ... ) WHERE ...

ON UPDATE TO emp-1.salary WHERE emp-2.name = "Joe"


DO UPDATE emp-3 ( ... ) WHERE ...

P61 V3J$'A4&/E. # $'1 $LF8$'+-$;3Q$;& FA2. 7,/2+-& i \


Z ,/+*$'GCF$_F8^AR4&/
GK$;3=E3J$;'c
&/,/e1 _$'+^1 ,/79,4+& 792(*+-1 21 $_# GK# 3?,/27# +-1 2$'&
$;+&/". action
3?F$
event
1 $&/H3J$'A4&/g^. 3J$Se^79+>Z`\V&/F$'3?+-F8,/d(*$;+-F8$'R^&/H.03=F$
GK$;3=H3J$;'&/,/e1 fcondition
$'+h&/# A^3U1 $;&
724(*+-1 21 $;&U# GC# 3=,/2Z i +@$'GCF8$" &/F8,/(*279^GK2&/,+-GKaction
F$'124WwF:-$h# GC$'3f724(*(*^+-1XZ +@F8:-,/G
&/F$'3U7GC$'R;F8:-$
. # $'1 $GC$'3)&/H. &/^I43=79&/^d $
Z
action
NOTHING
P6# +-1 2gGC$a$'&/,/A4$a$'+-F83J$>&/24GGK,/GCF$'(*G)1 $a3J$'$'GC73,/F8# 3?XTb3J$'A4&/G 1 $a,/+-GCF8+-7,/X. 3?w# +-X.0&/,/79c
7,/4+j. 3?F8,/7# &/3U1 $f# +-L3J$'A4&/R3J$'7# $'3J1-$'GC$f!# $f$'+$;&GC,/GCF8$'(L1 $f3J$'$;GK73,/F# 3=^R
GC$
current
3J$'] $'3[$gf&/H3J$;&/7,/4+"T"^&/A# +-2Gw7# &/,/] 71 23?$;Ga(,/$'+-F83?Ga!# $f$'+h$'&GC,/GKF$'(*H1 $g
,/+-GCF+-7,/G
GC$3J$'] $'3J$6f# +-H,/+-GCF+-7,/H58F8# . &/<`Z
i GH(*# T,/(*. 23?F8+-F$E+-24F3g!# $E$'&GC,/GKF$'(*"1 $E3J$'$'GC73?,/F8# 3?%+-# +-79"1 $;F8$'7F3?%+-,. 3J279$;GCc
3=%3J$;A&/Gf79,/3J7# &/3[$;GZM 23g$=BD$'(*. &/2R-^# +-!# $"71 %# +-"1 $E&/GfGK,/A4# ,/$'+-F$'Gb1 2Gb3J$'A4&/Gg792+
7$'. F'1 ^Ga. 23UM 2GCF8A43J$'GCR$'& 724(*+ 1 2%1 $3J$'72A,/1 7# GC3=g&/f79^/1 1 $M 24GCFA3J$'GHk

lx

8'* 8' 8* D


94         ?
CREATE RULE bad_rule_combination_1 AS
ON SELECT TO emp
DO INSTEAD SELECT TO toyemp;
CREATE RULE bad_rule_combination_2 AS
ON SELECT TO toyemp
DO INSTEAD SELECT TO emp;

i GCF8$,/+ F8$'+-F2%1 $2I4F8$;+-7,/4+j1 $1 ^F82Gw1 $;GK1 $ i

M.03?2d2473?g&/g79^/1 f1 $6M 2GCF8A43J$'GZ

SELECT * FROM emp;

G +-$'7$'GC3?,/2*F$'+-$'3g. $;3=(*,/GC21 $E1 $'] +-,/7,/4+1 $%3J$;A&/Gb$;+@# +-h79&/^GK$%. 3?". 21 $'3g1 $'] +-,/3
i b
# +-*3?$;A&/$;+$'&Z $1 $'I4$# F,/&/,/e3V$;&w72(*+-1 2hLh T!L#"V. 3?(*21 ,/] 793
$'GCF82Ga. $'3?(*,/GK2GZ
i & 2I'BD$'F2E$;+j# +-g3?$;A&/ +-2_. # $'1 $GC$'3)# +-+-H3J$'W8$93?$;+-7,/ff# +h3?3=;T%T_+-2%. # $'1 $QF8$;+-$'3
. 3?'(*$;F83J2GZ
\V. ^3F8$X1 $'&79^(*. 2b24,/1 R;&/2G>F83?,/I4# F82GU1 $;&GC,/GKF$'(*6+-2L. # $'1 $'+_GC$'3 3J$'W8$'3J$9+-7,/1 2GU$'+E+ ,/+-c
A +_&/# A30$'+V# +-3J$'A4&/-Z i +-F3?$ 24F3=^GU792GCG)$;GKF2bGC,/A+-,/] 7!4# $Q&/G)W# +-7,/2+-$'GU1 $w,/+-GCF8^+-79,/^G
58. 243a$?B$;(*. &/2hR
1 2+-1 $
$;GQ# +-_7&/GC$'< +-2j. # $'1 $'+GC$'3a&/&/^(*1 GQ$;++-,/+-A +
emp
&/# A^3U1 $;+-F83J2V1 foo(emp)
$# +-H3J$'A4&/-Z
i & GK,GKF$'(*%&/(*7$;+-%$'& F8$'F21 $_&/%3J$'A4&/ET&/2Gb. &/+-$;Gf1 $_72+-GC# &/F8"724(*2^F83?,/I4# F82Gf1 $
F8$;NF2)Z i GCF82*,/(*.0&/,/79h!# $%&/"793J$'^79,/+1 $E3J$'A&/^GH. # $'1 $EW8&/&/36GC,)&/"3J$'A&/"(*GHGK# Gbd3?,/G
,/+-F8$;3=+-G 3J$'. 3J$9GC$'+-F7,/24+-$'Gw$'79$;1 $9+j^&/A +hd&/243U!# $g$'Ga1 $'& 23J1 $'+"1 $g# +-g. A,/+- Z

Uso

7$'3!# $ (

2IF$'+-A4f$'&(*,/GC(*2%CBD# GCF8$g1 $6GK^&/3?,/2E!# $


$82$k

CREATE RULE example_1 AS


ON UPDATE emp.salary WHERE current.name = "Joe"
DO UPDATE emp (salary = new.salary)
WHERE emp.name = "Sam";

\V& (*,/GC(*2*F8,/$;(*. 2*!# $$824$E3J$'7,/d$_# +`B# GCF$%1 $_GK^&/3=,/2R $'& $'d$'+-F82GK$;3=%d$'3J1 ;1 $'3J2T*&/
,/+-GCF8+-7,/L7F8# &-1 %
$ $82$bT&/L+-# $'dV,/+-GCF8^+-79,/V. 3J24. # $;GKFL$'GCF8+1 ,/GK.024+-,/I4&/$'G. 3?b&/G63J# c
F8,/+-^Gw1 $g$?B$;79# 7,/+ ZM 23 &/2%F+-F82R$'GCF8$g+-# $;d 2EGK&/^3=,/2_$'GXGC# GCF8,/F# ,/1 2%$'+j&/H. 3?F$g1 $g77,/4+
1 $6&/g3?$;A&/!# $$'G GC# I4GC,/A# ,/$'+-F$'(*$'+ F8$g$=BD$'7# F1 -Z i GKF2E.03?2. A4$;& GC&/3?,/2_1 &
$ $2$6 ^(Z
$ $824$g7# +-1 2E$'G 77$'1 ,/1 2k
7$'3!# $g ,/&/&2I4F8$'+-A4H$'&GC&/3?,/2V1 '
CREATE RULE example_2 AS
ON SELECT TO EMP.salary
WHERE current.name = "Bill"
DO INSTEAD
SELECT (emp.salary) from emp
WHERE emp.name = "Joe";

lx^m

$'+-$'A43 (
 $824$a$;&;779$;GK2g&;GC&/3?,/2f1 $>$'(*. &/$'^1 24G $'+L$'&'1 $;. 3?F8;(*$'+-F2H1 $ 7&/e;1 2f5
1 $'d# $'&/d$6$;&4+-2(*I43J$g1 $'& # GC# 3?,/2E7F# &/<`k
current_user
CREATE RULE example_3 AS
ON SELECT TO emp.salary
WHERE current.dept = "shoe" AND current_user = "Joe"
DO INSTEAD NOTHING;

P63J$93># +-fd,/GCF8H1 $$'(*. &/$;1 24G F3=^I4CB^+-1 2_$;+j$;&1 $'. 3F(*$'+-F$g1 $UBD# A4# $;F8$;GZ
CREATE toyemp(name = char16, salary = int4);
CREATE RULE example_4 AS
ON SELECT TO toyemp
DO INSTEAD
SELECT (emp.name, emp.salary) FROM emp
WHERE emp.dept = "toy";

21 2Gw&/2GX+-# $'d2Gw$;(*. &/$'1 2G 1 $'I4$'+h:-7$'3)-Z ;f2_(*$'+-2GZ


CREATE RULE example_5 AS
ON INERT TO emp WHERE new.salary > 5000
DO UPDATE NEWSET salary = 5000;

Compatibility
SQL92
& 72(*+-1 26 waV $'Gj# +-@$'F8$;+-GK,/+1 $*M 2GCF8A43J$'Gjh2$'N,/GCF$&/GC$'+-F$'+-7,/
i Q
 w V j$'+ 4Z

CREATE SEQUENCE
Nombre
CREATE SEQUENCE

P63J$'# +-H+-# $;d gGK$;79# $;+-79,/g1 $gA$;+-$'3?1 23U1 $6+-# (*$'3J24G

Synopsis
CREATE SEQUENCE seqname [ INCREMENT increment ]
[ MINVALUE minvalue ] [ MAXVALUE maxvalue ]
[ START start ] [ CACHE cache ] [ CYCLE ]

lxx

Entradas
seqname

i &+-24(*I43J$g1 $# +-HGC$'7# $'+-7,/f!4# $GK$;3=f73J$';1 -Z

b7&/# GC# &/


$'GQ2. 7,/24+-&Z*)V+d ^&/243a. 2GC,/F8,/d2h:-3?L# +-LGC$'c
79# $;+-79,/bGC7$'+-INCREMENT
1 $;+-F8$'R# +-2hincrement
+-$'A4F,/d 2":-^3=b# +-bGK$;7# $;+-7,/L1 $;GK7$;+-1 $'+-F8$4Z i & d&/23 . 243
24(*,/GC,/2+$;Gw# +-2E58<`Z

increment

minvalue

_7&/# GC# &/E24.079,/2+-&


1 $'F$'3?(*,/+-E$'&0d&/23Q(*,/+-,/(*2!# $V# +-
GK$;79# $;+-79,/a. # $'1 $aA4$'+-$'3?MINVALUE
3=Z i &'d&/230minvalue
. 2302(*,/GC,2+_$;GXTfc^+'+;+w. 3?wGC$'7# $'+-7,/G
GC79$;+-1 $'+-F$'G T%1 $'GC7$'+-1 $;+-F8$'GCR^3J$'GC. $;79F,/d'(*$;+-F8$Z

maxvalue

)VF,/&/,/7$6&/g7&/# GC# &/g2. 7,/2+-&


. 3?1 $;F8$'3?(*,/+-3$'&d &/23(*,/c
(*2%. 3?f# +-bGK$;7# $;+-7,/-Z`M 243 MAXVALUE
2(*,/GC,/2 +jGK2maxvalue
+j+;+,+HTEcH. ^3=gGK$;79# $;+-79,/^GXGC7$'+-c
1 $'+-F$'G T%1 $'GC7$'+-1 $;+-F8$'GCR^3J$'GC. $;79F,/d(*$'+-F$Z

start

H7&/# GC# &/b24. 7,/2+-&


:-^I4,/&/,/F8b&/HGC$'7# $'+-7,/L.03=H!4# $H72(*,/$'+-7$H$'+
79# &/!4# ,/$'3V&/# A43=Z i &wdSTART
&/23V1 $start
,/+-,/7,/2. 243L24(*,/GC,/2 +$'G
. 3?GK$;7# $;+-7,/G
minvalue
GC79$;+-1 $'+-F$'G T
. 3?g&/^Gw1 $;GK7$'+-1 $;+-F8$;GZ
maxvalue

cache

H24. 7,/2+
. $;3=(*,/F$f!# $f&/24Gw+-# (*$'3J24Gw1 $g&/HGC$'7# $'+-7,/HGC$'+j&/2;BD1 2G
cache
5.03?$9&/&/27F8$;CACHE
1 <)T*&/(*
7$'+-1 24Gg$'+(*$'(*23=,/%. ^3=%# +77$'GC2(*Gg3=.0,/1 2)Z i & d&/23
(*,/+-,/(*2V$;G)Q58GC24&/2bGC$X. # $'1 $aA4$'+-$'3?3 # +_d ^&/243 71 Xd $;eR,Z $ZGK,/+_77:-$'<TH$'GUF8^(*I4,/$'+
$'& d&/243U. 23U2(*,/GC,2+ Z

P6 P6 i
%. &/I43%7&/d$V5-4$'T.h23J1 <)P6 P6 i . # $;1 $VGC$'3Q# F# &/,/e1 _. 3?_. $'3?(*,/F,/36%&/EGC$'c
79# $;+-79,/a792+-F8,/+-# ^3 7# +-1 2f$;&^d&/2301 $
2H$'&'1 $
:-XGC,/1 2H&/7+-c
maxvalue
e1-2. 23Q# +-_GK$;79# $;+-79,/VGC7$'+-1 $'+-F$L2
1 $'GC7$'+-1 $'+-F$L3J$'GC. minvalue
$;79F,/d'(*$'+ F8$Z ,0$'& &/,/(*,/F8$
$'GU&/7+-e^102R'$'&NGC,/A4# ,/$'+-F$6+-# (*$'3J2LA4$'+-$'3?1 2bGC$'3?7# &/!4# ,/$;3=6!# $Q. 3?
minvalue
2
GC$'fF24(*^1 2E724(*2E. 3J24.0,/'1 2Z
maxvalue

Outputs

CREATE

$;+-GK`B$g1 $;d # $;&/F82VGC,4$;&472(*+-1 2_$'Gw$?B$;79# F1 2V724+h$',/F82Z

ERROR: Relation seqname already exists

,&/fGC$'7# $'+-7,/H$'GC. $;79,/] 71-bT4f$;N,/GCF8$4Z

ERROR: DefineSequence: MINVALUE (start) cant be >= MAXVALUE (max)

,$'& d&/23>1 $6,/+-,/7,/2%$'GC. $'7,/] 79^1 2_$;GKFfW8# $'3?f1 $3?+-A42)Z

lx^n

ERROR: DefineSequence: START value (start) cant be < MINVALUE (min)

,$'& d&/23>1 $6,/+-,/7,/2%$'GC. $'7,/] 79^1 2_$;GKFfW8# $'3?f1 $3?+-A42)Z

ERROR: DefineSequence: MINVALUE (min) cant be >= MAXVALUE (max)

,$'& d&/23>(*,/+-,/(*2ET%(*,/(*2EGC2+,/+-72+-GK,/GF8$;+-F8$'GZ

Descripcion

 w 0/ !1hV h_,/+-F3J241 # 7,/3?Q# +-+-# $'dQGC$'7# $'+-7,/6A4$'+-$;3=1 243?X1 $X+-# (*$'3J24G1 $'+-c

F83J2"1 $f&/L7F8# &I4GC$b1 $f1 ^F82GZ i GCF82h,/(*. &/,/7L&/V73J$'7,/2+$H,/+-,/7,/&/,/e7,/2+1 $H# +-V+-# $;d 
F8^I&/g1 $g# +-H&/,/+-$'H724+j$'&+-2(*I43J$
ZK fGC$'7# $'+-7,/HA4$'+-$'3?1 23?fGC$'3=H.03?2. ,/$'1 '1
1 $'& # GC# 3?,/2E!# $g$?B$;79# Ff$'&724(*^+-1 seqname
2)Z
$'. GC# $'GX1 $b!# $HGC$b73J$'H# +-bGC$'7# $'+-7,/RN. # $'1 $f# F8,/&/,/e^3 &/bW8# +-79,/2+
. 3Q24I4F$'+-$'36# +-j+-# $'d2*+-# (*$'3J2*1 $E&/"GC$'7# $'+-7,/-Z^ "W# +-7,/2+
nextval(seqname)
currval(seqname)
. # $'1 $GC$'3V# F,/&/,/e1 *. 3?*1 $'F$'3?(*,/+-3V$;&X+-# (*$'3?.1 $'d# $;&/F82. 23_&/*# &/F8,/(*&/&/(*1 
1 $'GC1 $&/fGC$'7# $'+-7,/H$'GC. $;79,/] 71 $'+"&/HGC$'GC,/24+h$'+h7# 3?GK2Z` fW8# +-7,/24+
nextval(seqname)
. # $;1 $bGC$'3a# F,/&/,/e1 L. 3?b724+-] A4# 3?3w$'&d&/243w7F# &
setval(seqname,
1 $'d24&/d$'3?g$;&
1
$6&/GC$'7# $'+-7,/f$'GC. $'7,/] newvalue)
79^1 Z` gGC,/A# ,/$;+-F8$&/&/^(*1 g
nextval(seqname)
d&/243)1 1 2V(*Ga&/fGC$'7# $'+-7,/f1 $g,/+-73J$'(*$'+-F2Z
)VF,/&/,/7$# +-H724+-GC# &/F8H58!# $;3=T4< 792(*2
SELECT * FROM sequence_name;

. 3?2I4F8$;+-$'3)&/24Ga. 3?(*$'F3J2NGw1 $Q# +-fGC$'7# $'+-7,/-Z=\L. 3?F8$Q1 $2I4F8$'+-$;3U&/2G . 3?(*$'F3?2G>23=,/c


A,/+-^&/$'GCR^. # $'1 $# F,/&/,/e3
SELECT last_value FROM sequence_name;

. 3?X24I4F$'+-$'30$'&# &/F,/(*2Ld&/2430GK,A+-1 2b.0243 7# &/!4# ,/$;3 . 3J279$;GK2b$;+_$;&GC$'3?d,/1 243 58I47-4$S+-1 <`Z
F82_24I4F,/+hF8:-$g&/^GKFd&/# $&/&/27F8$;1I4T%+-TEI4*7 -4$'+-1XZ=. 3?'(*$'F3J24Ga!# $g. # $;1 $'G # F8,/&/,/e^3
$j# F8&/,/eI4CBD2+-,/d$'&w1 $I4&/24!4# $. 3?:-I4,/&/,/F3L(*# &/F,/. &/$'G"&/&/^(*1 G_GC,/(*# &F8+-$;G%*# +
A$;+-$'3?1 23`Z

lx

Atencin
Se pueden obtener resultados inesperados si una configuracion de cache mayor que uno es utilizada por un objeto secuencia que sera usado concurrentemente por multiples procesos en el servidor (backends).
Cada proceso en el servidor (backend)asignara valores de secuencia
"cache" succesivas durante un acceso al objeto secuencia e incrementara el ultimo valor (last_value) del objeto secuencia en conformidad
con esto. De este modo, el siguiente uso de cache-1 de nextval dentro de ese proceso en el servidor (backend) devolvera simplemente los
valores asignados sin tocar el objeto compartido. Asi pues, los numeros asignados pero no utilizados en la sesion en curso se perderan.
Mas aun, aunque se garantice por multiples procesos en el servidor
(backends) la asignacion de distintos valores de secuencia, los valores
pueden ser generados fuera de secuencia cuando los procesos en el
servidor (backends) son tenidos en cuenta. (Por ejemplo, con una configuracion de cache de 10, el proceso A puede reservar valores 1..10
y devolver un nextval=1, entonces el proceso B puede reservar valores
11..20 y devolver un nextval=11 antes de que el proceso A ha generado
un nextval=2.) Asi, con una configuracion de cache de uno es seguro
asumir que los valores de nextval seran generados secuencialmente;
conuna cache configurada mayor que uno solo podrias asumir que los
valores de nextvalue seran todos distintos, no que seran todos generados de un modo puramente secuencial. Tambien, last_value reflejara el
ultimo valor reservado por cualquier proceso en el servidor (backend),
tanto si ya ha sido devuelto por nextval como si no.

Notas
a$;(*,/F8GC$gf$;GKF1 2_hh/ !1hL hh. 3?f$;&/,/(*,/+-3># +-fGC$'7# $'+-7,/-Z
P61 6. 3J279$;GK2V$'+"$;& GK$;3=d,/1 23U58I427 -$'+-1 <-# F,/&/,/efGC#j. 3J24.0,/g77:-$6. ^3=&/(*7$'+-3+-# (*$'c
3J24GQ^GK,/A4+-1 2GZ9 2GQ+-# (*$'3J2G6!# $H$'GCF8+$'+&/L77:-$H.0$'3J2"+-2jGC2+# F,/&/,/e1 2"$'+&/VGC$'GC,/2+
$'+"7# 3=GC2_GK$g.0$'3J1 $'3+-R1 ^+-1 2_72(*2%3J$'GC# &/F81-2Ed7,/2GK$;+j&/gGK$;79# $;+-79,/ Z

Uso

P63J$9H# +-fGC$'7# $'+-7,/HGC79$;+-1 $'+-F$&/&/(*1 

R^724(*$;+-e+-1 2_$'+" k

serial

CREATE SEQUENCE serial START 101;

$;&/$'77,/24+-$6$'&GK,/A4# ,/$'+-F$g+-# (*$'3J2E1 $6$'GCF8fGC$'7# $'+-7,/


SELECT NEXTVAL (serial);
nextval
----114

)VF,/&/,/7$$'GCF8gGK$;79# $;+-79,/H$;+"# +-

i k

INSERT INTO distributors VALUES (NEXTVAL(serial),nothing);

lx^

P62+-] A# 3?3)$'&d ^&/243)1 $g&/fGC$'7# $'+-7,/f1 $;GK. # $;Gw1 $6# +jP M 

CREATE FUNCTION distributors_id_max() RETURNS INT4


AS SELECT max(id) FROM distributors
LANGUAGE sql;
BEGIN;
COPY distributors FROM input_file;
SELECT setval(serial, distributors_id_max());
END;

Compatibilidad
SQL92
 w / !1hV h$'Gw# +-b$'F8$;+-GC,/24+1 $g&/$'+-A4# CBD$HM 2GCF8A43J$'GZh2E:-T"$'GCF1 2%6 V
a3
/ !
1hV hh$'+ 4Z

CREATE TABLE
Nombre
CREATE TABLE

P63J$'# +-f+-# $'dHF8I4&/

Synopsis
CREATE [ TEMPORARY | TEMP ] TABLE table (
column type
[ NULL | NOT NULL ] [ UNIQUE ] [ DEFAULT value ]
[column_constraint_clause | PRIMARY KEY } [ ... ] ]
[, ... ]
[, PRIMARY KEY ( column [, ...] ) ]
[, CHECK ( condition ) ]
[, table_constraint_clause ]
) [ INHERITS ( inherited_table [, ...] ) ]

Entradas

i M \V)
$"73J$'j&/F8I4&/jGK&/2. 3?$'GCFGC$'GC,/4+-RT$'GV$'&/,/(*,/+-^1 # F24(*^F8,/7(*$'+-F$j72+$'&
] +j1 $f&/bGC$'GC,/4+ Z GXFI4&/Ga. $'3?(*+-$'+-F$'GX$;N,/GCF$'+-F8$;GQ724+j$'&4(*,/GC(*2j+-2(*I43J$f+-2"GK2+
d ,/GC,/I4&/$'Ga(*,/$'+-F3=^Gw&/fFI4&/$F$'(*. 23=^&4$;N,/GCF$Z

lx

table

i &+-24(*I43J$g1 $# +-H+-# $;d f7&/GC$2_F8^I&ff73?$;3=Z

column

i &+-24(*I43J$g1 $# +h7(*. 2Z

type

i &'F8,/. 2H1 $'&;7(*. 2ZM # $'1 $ ,/+-7&/# ,/3 $'GC. $'7,/] 71 243J$9G 1 $ 3?3=^T ZP62+-GC# &/F8$a&/X v9|Js }J?4V
Q|?J} | t4^). 3?f(*Ga,/+-W8243?(*7,/4+hGC2I3J$6F8,/. 2GXTE3=3?;TGZ

i \4)L
value
)V+d&/243X. 2361 $;W$;7CF82. 3?E$'&07(*. 2Z'P62+-GC# &/F8$_&/E7&/# GC# &/ i \4)L . ^3=V(*G
,/+-W23?(*7,/4+ Z

column_constraint_clause

b7&/# GC# &/V2. 7,/24+-^& 1 $f3J$'GCF83?,/77,/24+-$;GQ572+-GCF83?,/+-F< $'GC. $'7,/] 7L# +-L&/,/GCF8L1 $f3J$'GCF83?,/7c
79,/2+-$'G1 $b,/+-F8$'A43?,/1 12j724(*.03?# $;IV!# $V&/G+-# $'dG6,/+-GC$'3J7,/2+-$'G27F# &/,/e;79,/2+-$'G
1 $'I4$'+GCF8,/GCW87$'3Q. 3?"!4# $"&/h,/+-GC$'3J7,/4+2*&/h^79F# &/,/e;7,/4+F$'+-A4"'N,/F2ZP6^1 %3J$'GCc
F83?,/779,/+1 $'I4$$'d&/# 3?GC$j*# +-$'. 3?$;GC,/4+I4242&/$'+- Z4\L# +-!# $ N ^3?$;!# ,/$'3J$j&/
. 3?f3J$'W8$'3?,/3=GC$6b$;GC$g79^(*. 2EGC4&/^(*$'+-F$'RM 2GCF8A43J$'G
column_constraint_clause
.
$'3?(*,/F8$!# $*(* &/F8,/. &/$;G"7(*. 24G%GK$;+3J$'W8$;3?$9+-7,/1 2G"1 $'+-F3J21 $# + +-,/7279^(*. 2
792+-GCF83?,/+-F=ZCP62+-GK# &/F$g&/H7&/# GK# &/g792+-GCF83?,/+-F-.03=g(*Gw,/+-W823=(*^79,/+ Z

table_constraint_clause

_7&/# GC# &/_2. 7,/24+-^& P \ $'GC. $'7,/] 7_# +-_&/,/GCFE1 $b3?$;GKF3?,/797,/2+-$'G1 $L,/+-c
F8$'A43?,/1 1"!# $6&/G>+-# $'dG>,/+-GC$'3J7,/2+-$'G 2L&/G>7F8# &/,/e^7C,/24+-$;Ga1 $'I4$'3?+EGCF,/GCW^79$;3 . 3?
!# $# +-*GK$;+-F8$'+-7,/,/+-GC$'3?F62@# . 1 F8$F$'+-A4',/F82ZP61 3?$;GKF3?,/797,/+1 $'I4$GC$'3L$;d ^c
&/# 1 # +-$;N. 3J$'GC,/+I4242&/$'+--Z $h. # $'1 $'+3J$'W8$93J$'+-7,/3b(* &/F,/. &/$'G_7 (*. 2GE72+
# +-_ +-,/7E3J$'GCF8 3?,/779,/+ Z 4&/2jGC$V. # $'1 $L1 $'] +-,/3X# +-E +-,/7E7&/# GC# &/VM \L)6
 5 i 
58# +-3J$'GCF3=,/77,/4+E1 $XF8I4&/< +-1hM \V)7
 5 i 
. 243 FI4&/SM \L)7
 5 i 
5# +-h3J$'GCF83?,/77,/4+1 $"7(*. 2column
<wGC24+@(*# F# (*$'+-F$j$;N7&/# T$;+-F8$;GZP62+-GK# &/F$j&/h7&/# GK# &/
1 $3J$'GCF83?,/77,/4+"1 $gFI4&/f. ^3=(*Gw,/+-W823=(79,/+ Z

"i 8
inherited_table
Q7&/# GC# &/2. 7,/24+-^& hi 8 $'GC. $'7,/] 79Q# +-Q724&/$;797,/+%1 $w+-2(*I43?$;GU1 $wF8^I4&/61 $
&/Gw7# &/$;Ga$;GKFHF8^I&/H:-$;3J$'10HF21 24Gw&/24Gw79^(*. 24GZ ,4^&/A +j7(*. 2E:-$;3?$;1 '1 2E. 3J$97$
(*G>1 $X# +-gd$'eRSM 2GCF8A43J$'G ,/+-W8243?(*g1 $X# +"$'3?3J243=ZM 24GCFA3J$'G . $;3=(*,/F$6# F2(*F8,/7(*$;+-c
F8$aX&/XFI4&/w73J$''1 X:-$'3J$'1 ;3 W8# +-7,/24+-$'G1 $ &/GF8I4&/^G GC# . $'3?,/23J$'GX$;&/&/X$'+L&/ B$;3=^3?!4# 
1 $:-$'3J$'+-7,/-Z
Aside: La herencia de funciones se realiza siguiendo las convenciones del Common Lisp
Object System (CLOS).

Salidas

CREATE

$;+-GK`B$g1 $;d # $;&/F82VGC,4&/HFI4&/$GC$g:-f73J$'1-2E72+;N,/F2)Z

lx^


ERROR

$'+-GCCB$X1 $;d # $'&/F2LGC,N&/g73J$'7C,/+"1 $Q&/FI4&/gW8&/&/-Z i GCF$6(*$'+-GCCBD$d,/$'+-$X+-23=(*&(*$'+-c


F8$_72(*. -1 2. 236&/A4 +F$'F82$'. &/,/79^F8,/d24R72(*2)k
!4# $H27# 3=3J$g$;+jF,/$'(*. 2"1 $g$=BD$'7# 79,/ERROR:
+-RGK,4&/HF8^Relation
I4&/H$'GC. $'7,/] table
791 fT
already
exists
$'N,/GCF$$'+h&/fI4GC$g1 $61 F24GZ

ERROR: DEFAULT: type mismatched

, $'&0F8,/. 21 $V1 ^F82G62$'&0d&/23X. 243X1 $'W8$'7`F82+ 27243?3J$'GC. 2+-1 $L&0F,/. 2j1 $V1 F24G1 $b&/
1 $'] +-,/7,/4+h1 $'&7(*. 2Z

Description

 w 48 ,/+-F3?21 # 7,/3?E# +-%+-# $'d%79&/^GK$L2F8^I&/_$'+&/EI4GC$_1 $V1 ^F82Gf7F# &Z; 



F8^I&/GC$'3=g. 24GC$'1 f. 23>$;&4# GC# 3?,/2E!4# $,/+-F83J21 # 79$6&/HGK$;+-F8$'+-7,/-Z
P61 
. # $'1 $EGC$'3g# +F8,/. 2GC,/(*. &/$'R-# +@F,/. 272(*. &/$=BD258GK$;F8<a2*# +F8,/. 23?3?T Z'PQ1 
F3=,/I4# type
F2_. # $'1 $6GC$'3)$'GC. $'7,/] 79^1 2L. 3?gGC$'3)+-2E+-# &/2R^TE. # $;1 $F$'+-$'3)# +"d ^&/243). 23U1 $;W$;7F82R
$'GC. $'7,/] 7102%.0243)&/Hoa:u 99t4|?t4u<
p ;4=!>@?*Q A6Z
Nota: Al igual que en la versin 6.0 de Postgres, consistant array dimensions within an
attribute are not enforced. Esto cambiar probablemente en las versiones futuras.

7&/# GC# &/24. 7,/2+-& hi  $'GC. $'7,/] 79# +-72&/$'779,/+1 $+-24(*I43J$;G%1 $7&/GC$'G_1 $
&/24Gw7# ^&/$'Gw$;GCF8H7&/GC$g:-$'3J$'1 H^# F2(*F8,/7(*$;+-F8$gF241 24GX&/2GQ7(*. 2GZ ,7# &/!# ,/$'3>+-24(*I43J$
1 $f7(*. 2%:-$'3J$;1 102"^. 3J$S7$H(*GX1 $b# +-bd$'eRM 24GCFA3J$'GQ,/+-W823?(*L1 $f# +$'3=3J23JZM 2GCF8A43J$'G
. $'3?(*,/F8$6# F82(*F,/79^(*$'+-F8$6f&/f7&/GC$673J$'1 :-$'3J$;1 3W8# +-7,/2+-$'Ga1 $7&/GC$'G GC# . $'3?,/243J$'G $'+
&/UBD$'3?3J!# 61 $6:-$'3J$'+-7,/-Z 6:-$'3J$'+-7,/61 $QW8# +-7,/2+-$'G GK$X:-7$6GC,/A4# ,/$'+-1 2L&/G>72+-d $;+-79,/2+-$'G
1 $'& PQ24(*(*2+ ,/GK. I;BD$'7F TGCF$'( 5PQ V <JZ
P61 h+-# $'dFI4&/27&/GC$
$;GL793J$'^10^# F2(*F8,/7(*$;+-F8$"792(*2@F,/. 2Z M 243HF8^+-F82R
# +-E2(*^Gf,/+-GCF8^+-79,/^Gf1 $L&/%table
79&/^GK$LGK2+# F82(*F,/79^(*$'+-F$_# +F,/. 2T. # $'1 $;+*GK$;36# GC1 G
$'+"2F83?C
G BED4;Lz >4z8C
o ?F7AG?H , ?GC$'+-F$'+-7,/Gw w 4
8 wZ
. .h,/F8:h+-2V,/+-,/F8,/&1 ^F842Z )V+-F8I4&/+-2_. # $;1 $6F$'+-$'3)(*G
:-$6+-,$ .FI4&/$,/G 73J$';F8$'1hG g:-$'^#
1 $g^H79^(*. 24Gw53J$;&/(*$'+-F$'R$'GCF82"d,/$'+-$f&/,/(*,/F1 2". 23a$'&4:-$'7:-2"!# $H$'&4(*N,/(*2"F(*-2
1 $# +-HF# . &/f1 $'I4$GC$;3>(*$'+-23>!4# $IT4F$'GC<R'. $'3J2_$;GKF$g&//(*,/F$g. # $'1 $GC$'3>72+-] A4# 3?1 2
"# +F8(*^-2*(*$'+-23H$;+@&/A4# +-2GVGC,/F,/24GNIZ )L+-"F8I4&/h+-2. # $'1 $EF8$;+-$'3g$'&(*,/GC(*2+-2(*I43J$
!# $g# +-fFI4&/f1 $7F&/2A2_1 $'& GC,/GCF8$'(* Z

Clusula DEFAULT
DEFAULT value

ln

Entradas
value

24Ga. 2GK,/I4&/$;GXd&/243J$;Ga. ^3=&/H$'. 3J$SGC,/+


i \J)V 58d&/23U.0243U1 $'W8$'7F82< GC24+ k

K # +j&/,/F$'3?&
K # +-HW# +-7,/+h1 $g# GK# ^3=,/2
K # +-HW# +-7,/+h+-,/&/1 ,/7

Salidas
h,/+-A4# +--Z

Descripcin
7&/# GC# &/
i \4)V GC,/A+-*# +-d&/23L. 23V1 $'W8$'7F2# +7(*. 258F3=^d ;GE1 $# +-
7(*. 2*$;+@&/hGC$'+-F8$;+-79,/jP6 i \ i \L i <?Z i &)F,/. 21 $"1 F82*1 $E# +d&/23
1 $'] +-,/7,/4+@1 $"
. 23U1 $;W$;79F2V1 $'I4$723=3J$'GC. 2+-1 $'3)& F,/. 2%1 $1 ^F82V1 $&/H1 $;] +-,/7,/+1 $;& 7(*. 2)Z
)V+-w2. $;3=7,/+_1 $>,/+-GC$'3J79,/+V5 i <!# $w,/+-7&/# T4Q# +_7(*.02fGC,/+_# +Vd&/243-$'GC. $'7,/] 71 2
. 23 1 $'W8$'7F2%GC,/A+-^3=b$'&d ^&/243 0
)V &79^(*. 2%GC, +-2hGC$b&/$f. 3J2. 23?7,/2+-b# +d&/243a$;N. &/c
7,/F82Z ,0$;& d &/23X. 243X1 $;W$;79F2j$'G# +
GC,/A+-,/] 7%!# $_!# $L$'Gf# +d&/23Q72+-GKF+-F$Z
literal
,$'& d&/23U. 23)1 $'W8$'7F82L$'G # +-
2V# +-
GC,/A+-,/])7
!# $g1 ,/7:-2Ed&/23U$;Gw$;&41 $&/fW8# +-niladic-function
7,/4+j$'GC. $'7,/] 79^1 g$'+h$;& (*24(*user-function
$;+ F2E1 $&/g,/+-GK$;3J79,/+ Z
T_1 24GaF,/. 24Ga1 $gW8# +-7,/24+-$'Ga+-,/&/1 ,/7Nk
+-,/&/1 ,/7() i
P&)V i ) i ) i
PQ24+-GC# &/F$g&/GwW8# +-7,/2+-$'GwPL)V i ) i
i ^ ") i
F21 d/g+-2EGK2. 23=F1 G

 i  ) i
F21 d/g+-2EGK2. 23=F1 G
+-,/&/1 ,/7w1 F$'F,/(*$
P&)V i \ i

PQ24+-GC# &/F$g&/GwW8# +-7,/2+-$'GwPL)V i \ i

P&)V i i

PQ24+-GC# &/F$g&/GwW8# +-7,/2+-$'GwL


P )V i i

ln^l

P&)V i i \
M

PQ24+-GC# &/F$g&/HW8# +-7,/+hP&)V i i \


M

+ &/wd$'3?GK,/+V7F8# &;58d-Z ;<RKM 2GCF8A43J$'G)$;d &/  F821 G &/G $'N.03?$;GK,/2+-$'G . 2301 $'W8$97F82H$;+L$'&'(*24c
i L
(*$'+-F2$'+!# $E&/EFI4&/E$'Gg1 $'] +-,/1 -ZSM 23F+-F24R&/GW8# +-79,/2+-$'Gf!# $_GC24++-2+-c77:-$'^I4&/$'
724(*2
. # $;1 $'++-2. 3J21 # 79,/3X$'& $'W8$;79F21 $;GK$;1 2Z;M 3=_$'& 79^GK2. 3Jc
F8,/7# &/3 CURRENT_TIMESTAMP
1 $aF,/. 24G 1 F$ F8,/(*$aRGC$a. # $'1 $>F83?I4CBD3 GK2I43J$a$'GCF8$>724(*. 23?F8(*,/$;+-F82b# GC+-1

2 M i c

\ )L E i OY+-
2 .h:O NX$'+L&/# A3 1 O
$ M i J
\ )H O+-P2 .hQO Nw
2 M i J
\ )V &
P )V i i \
M!N Z
4
i GCF82LW8# $'3?eM 2GCF8A43J$'G>g72+-GK,/1 $'3=^3)& g724+-GCF+-F8$6792(*2V# +% F8,/. 2VGCF83?,/+-AETVGC792+-d$'3?F8,/3?&/g&
d&/243)F8,/($'GCF8(*.$;+jF,/$'(*. 2_1 $$=BD$'7# 7,/4+ Z

Uso
M 3=jGC,/A+-^3L# +d&/243H724+-GCF+-F8$72(*2@d&/23L. 23b1 $'W8$'7F82. 3?&/2GE7(*. 2G
+-1
did
R'TE# +-H79^1 $S+-H^& 79^(*. 2
k
number

CREATE TABLE
did
number
total
);

did

video_sales (
VARCHAR(40) DEFAULT luso films,
INTEGER DEFAULT 0,
CASH DEFAULT $0.0

M 3=6GC,/A4+-3# +-fGC$'7# $'+-7,/g$',/GCF8$'+-F$672(*2_d&/23). 2431 $;W$;79F2L. 3?$;& 79^(*. 2


R'T_# +
did
&/,/F8$;3=& .03=$'&7(*. 2
k
name

CREATE TABLE distributors (


did
DECIMAL(3) DEFAULT NEXTVAL(serial),
name
VARCHAR(40) DEFAULT luso films
);

Column CONSTRAINT Clause


[ CONSTRAINT name ] { [
NULL | NOT NULL ] | UNIQUE | PRIMARY KEY | CHECK constraint } [, ...]

Entradas
name

)V+"+-2(*I43J$3?I4,/F83?3?,/2_1 1 2Vg&/f3J$'GCF83?,/779,/+"1 $,/+-F$'A43?,/1 1

, +-2EGC$$'GC. $;79,/] 7


RGC$bA4$'+-$;3=H1 $f&/2GQ+-2(*I43?$;GQ1 $f&FI4&/bT"7(*. 2GCRN&/2"!# $HGC$'A4# 3=H# +-,/7,/1 1. na^3=
me Z

name

ln

#)L

i &79(. 2E. # $'1 $724+-F$'+-$'3Ud ^&/243J$'G>0)V XZ2R GCFf$'Ga&/f2. 79,4+j. 243U1 $'W8$'7F2)Z

#
)V
i &>7(*. 2+-2. # $;1 $h72+-F8$'+-$;3bd&/23J$'GL#)L XZ i GCF2$'!4# ,/d ^&/$j&/3J$;GKF3=,/77,/+1 $
79^(*. 2_P hi &
P 55
#
)V <`Z

)V
M

column

i
i &47(*. 2"1 $'I4$g72+-F8$;+-$'3a# +d&/23 +-,/72)Z i +jM 2GCF8A43J$'GQ$;GKF2"$'GXW823?e102".0243a(*$;1 ,/2
1 $&/f73J$'7,/+",/(*. &//7,/FH1 $# +h/+-1 ,/7$g +-,/72EGC2I3J$6&/HF8I4&/-Z
\L)S5 i 
i GCF8$X7(*. 2L$'G># +-g7&/d$X. 3=,(*3=,/^R;&/2V!# $6,/(*. &/,/7!# $&/6# +-,/79,/1 ^1j$'G>W823=e^10. 243
$'& GK,/GCF$'(*"T*!# $E2F83?GgF8I4&/Gg. # $'1 $;+ 72+-] 3$'+$'GCF$_79^(*. 2724(*2,1 $'+-F8,/] 71 23
+-,/792_. 3?f&/24Ga3J$'A4,/GCF83J2GZ`PQ24+-GC# &/F$gM \L)T
 5 i @. 3?g(*^Gw,/+-W823=(*7,/+ Z

constraint

f1 $'] +-,/7,/4+j1 $&/H3J$;GKF3?,/797,/+ Z

Descripcin
Q79&/^# GK# &/624.079,/2+-&N1 $Q3J$'GCF3=,/77,/4+_58P a\ <$;GC. $'7,/] 763J$'GCF83?,/779,/2+-$'GU2Ld$'3?,/] 79
!# H1 $'I4$'+79# (*. &/,/3w&/^G+ # $;d ^GQ,/+-GC$'3J79,/2+-$'G62h&/GQ^79F# &/,/e;7,/24+-$;G.03=L!# $b# +-V2. $'3?c
7,/4+1 $",/+-GC$'3J7,/4+@21 $"^79F# &/,/e7,/+@F$'+-A4',/F82ZPQ1 h3J$'GCF83?,/779,/+@1 $;I4$"$;d &/# ^3=GC$E
# +-%$'. 3J$'GC,/4+I4242&/$'+- ZPQ24+# +-" +-,/79"3J$'GCF3=,/77,/4+GC$_. # $'1 $;+3J$'W8$93J$'+-7,/36(* &/F,/. &/$'G
F3=,/I4# F24GZ i & # GC2V1 $M \L)7
 5 i 724(*2_3J$'GCF83?,/779,/+%1 $6F8I4&/$'G>(*# F8# (*$;+-F8$6,/+-792(*c
. F,/I4&/$724+h$'&# GC2E1 $6M \L)T
 5 i @724(*2_3J$'GCF83?,/779,/+h1 $7(*. 2Z
)V+-H3J$'GCF3=,/77,/+$'Gw# +-L3J$;A&/H72++-2(*I43J$kK# +2I;B$;F82 N *!# $fT4# 1 Hb1 $'] +-,/3 72+B# +-c
F82G1 $bd&/23J$'G6d&/,/1 2G6. 24+-,/$;+-1 2&/(*,/F8$;GgL&/24Gg3J$'GC# &/F8^102Gg1 $L&/G62. $'3?7,/24+-$;G i R
)VM \ i 23 i i i GC2I43?$6# +-HF8I4&/-Z
i ,/GKF$'+_1 24G>(*+-$;3=^G)1 $X1 $'] +-,/33J$'GCF83?,/779,/2+-$'GU1 $Q,/+-F$'A43=,/1 ^1XkJ3J$;GKF3=,/77,/2+-$'GU1 $XF8^I4&/R;!# $
d$'3J$S(*2GX(*^Gw1 $;&/'+-F$'RT%3J$;GKF3=,/77,/2+-$'G 1 $g7(*. 2R^!# $g. GC(*2Gwgd $;3`Z
)V+-H3J$'GCF3=,/77,/+1 $f7(*. 2%$;GX# +-b3J$'GCF83?,/779,/+j1 $f,/+-F8$'A43?,/1 11 $'] +-,/1 H724(*2".03=F$f1 $g&/
1 $'] +-,/7,/4+E1 $Q7(*. 2RST_&/A4,/79^(*$'+-F8$QGC$Q72+-d ,/$;3=F$6$;+%# +-3J$;GKF3=,/77,/+E1 $QF8I4&/Q+-1 6(*G
GC$'3U73J$';1 -Z` Ga3J$;GKF3?,/797,/2+-$'Ga1 $7(*. 2E1 ,/GK. 2+-,/I4&/$'GaGC24+ k

M \L)S5 i 
i 4i i hP i
)V ) i
P hi PL5
#
)V
Nota: Postgres todava no soporta (en su versin 6.5) restricciones de integridad especificadas por REFERENCES. Se acepta la sintaxis pero se ignora la clusula (disponible,
en cambio, a partir de la versin 7.0)

ln^m

Restriccin NOT NULL


[ CONSTRAINT name ] NOT NULL

"3J$'GCF83?,/779,/+@ #)V $'GC. $'7,/] 7h# +-h3J$'A4&/h!4# $h2I4&/,/Ah!# $h# +7(*. 2792+-F$'+-A4
+-,/7(*$'+-F$Vd&/243J$'G6+-2j+-# &/2GZR GCFE$'G6 +-,/7(*$'+-F$_# +-_3J$'GCF3=,/77,/4+*1 $V7(*. 2RT+-2GC$
. $'3?(*,/F8$6792(*2%3J$'GCF3=,/77,/+"1 $F8^I4&/-ZZ
Salidas
status

ERROR: ExecAppend: Fail to add null value in not null attribute "column".

i GCF8$X$'3?3J2430247# 3?3J$X$;+EF,/$'(*. 2b1 $X$=BD$'7# 7,/4+_79# +-1 2bGK$w,/+-F$'+-Fg,/+-GC$'3?F830# +Ed&/23


+-# &/2_$'+h# +h79^(*. 2E!# $g72+-F8,/$;+-$g&/H3?$;GKF3?,/797,/+" 0)V XZ

Descripcin

Uso

$'] +-,/3U1 2G 3J$'GCF83?,/779,/2+-$'G 1 $Q79^(*. 2_ #)L j$;+"&/fF8^I4&/


R^# +-f1 $Q&/G
distributors
7 # ^&/$'G GK$+-24(*I43?-k
CREATE TABLE distributors (
did
DECIMAL(3) CONSTRAINT no_null NOT NULL,
name
VARCHAR(40) NOT NULL
);

Restriccin UNIQUE
[ CONSTRAINT name ] UNIQUE

Entradas

P a\
name
)V+-f$;F8,/!# $;F8H3?I4,/F83?3?,/g1 1 gH# +-f3J$'GCF3=,/77,/4+ Z

lnx

Salidas
status

ERROR: Cannot insert a duplicate key into a unique index.

i GCF8$H$'3?3J243U279# 3?3J$f$'+F,/$'(*. 2"1 $f$?B$;79# 7,/+GC, GC$H,/+-F8$'+-FL,/+-GK$;3=F3 # +d &/23a1 # c


.0&/,/791 2_$;+j# +h7(*. 2Z

Descripcin

3J$'GCF3=,/77,/4+U)L ) i $;GK.0$'7,/] 7# +-3J$'A4&/!# $2I4&/,/A*# +A3J# . 2@1 $# +-22(*G


7(*. 2Ga1 $g# +-gF8I4&/fg792+-F$'+-$'3Ud &/23J$'G +-,/724GZ
GL1 $'] +-,/7,/2+-$'GE1 $h7(*. 21 $h&/^G_72&/# (*+-GV$'GC. $'7,/] 79^1 GL+-2F,/$'+-$;+. 23J!# ",/+-79&/# ,/3
# +-Q3?$;GKF3?,/797,/+E 0
)V E72+-GKF3=^,/+-F.03=XGC$'3 ,/+-7&/# 1 24GU$;+E# +-Q3J$'GCF83?,/779,/V
+ )V ) i Z
)V R4+-2d,/2&/%&/
$;+-$'3X(*Gf1 $V# +d&/236+-# &/2$;+# +7(*. 2GC,/+&/%3J$'GCF3=,/77,/4+ #
3J$'GCF83?,/779,/
+ )L ) i Z?5 :-,/G>1 $'d,/F$'G>W83J24(F:-$ N 61 $'] +-,/F8,/2+-R^I4# F,/Ga6(*23?$QGC$'+-GC,/I4&/$
724+-d$'+-F,/24+ Z $'$F:-$gGC$'7F8,/2+j24+h724(*.0F8,/I4,/&/,/FT"W8243)(*23J$g1 $'F,/&/GZ <CZ
P61 3J$'GCF83?,/797,/+1 $79(*.0T
2 )V ) i 1 $'I4$+-2(*I43?3V# +7(*.02!# $$'G%1 ,/GKF,/F8 +-21 $;&
724+BD# +-F82_1 $7(*. 2Gw+-2(*I43?1 2Ga. 23)79# ^&/!# ,/$'3>2F3=3?$;GKF3?,/797,/#
+ )V ) i 2VM \L)
5 i @1 $'] +-,/W8G . 23>&/fFI4&/-Z
Nota: Postgres crea automticamente un ndice nico por cada restriccin UNIQUE, para
asegurar la integridad de los datos. Vea CREATE INDEX para ms informacin.

Uso

$'] +-$Q# +-63J$'GCF83?,/77,/4+_1 $w79^(*. 2%)V ) i . 3?6&/QFI4&/1 ,/GKF3?,/I# F243?GZ? G)3J$'GCF83?,/77,/24+-$;G


$7(*. 24)V ) i GC2&/2%GC24+j1 $'] +-,/1 G GC2I3J$6# +h7(*. 2_1 $&/HFI4&/-k
1
CREATE TABLE distributors (
did
DECIMAL(3),
name
VARCHAR(40) UNIQUE
);

&/2E!# $g$;!# ,/d&/$H&/fGC,/A4# ,/$'+-F8$f3J$'GCF3=,/77,/4+"1 $F8^I&/ k


CREATE TABLE distributors (
did
DECIMAL(3),
name
VARCHAR(40),
UNIQUE(name)
);

ln^n

La restriccin CHECK
[ CONSTRAINT name ] CHECK
( condition [, ...] )

Entradas

)V+h+-2(*I3J$g^3=I4,/F3=;3?,/2E1 1 2VH&/f3J$'GCF3=,/77,/4+ Z

name

condition

P6# &/!4# ,/$'3 $'. 3J$SGC,/+"724+-1 ,/7,/2+-&d&/,/1 6!# $XGC$Q$;d &/# $XQ# +%3J$'GC# &/F8^1 2HI4242&/$'+-+-2Z

Outputs
status

ERROR: ExecAppend: rejected due to CHECK constraint "table_column".

i GKF$X$'3?3?23 279# 3?3J$X$'+%F,/$'(*. 2V1 $Q$?B$;79# 7,/+"GC,N&/A4# ,/$;+%,/+-F$'+-F8,/+-GC$'3=F3# +%d&/23


,/&/$;A&N$'+h# +j7(*. 2_GC#NB$;F82%f# +-g3?$;GKF3?,/797,/+hP hi PL5%Z

Descripcin

E3J$'GCF3=,/77,/4+*P hi P&5$'GC. $'7,/] 79_# +-%3?$;GKF3?,/797,/+GK2I43J$V&/2GHd&/23?$;Gg.0$'3=(*,/F,/1 2GH$'+# +


7(*. 2Z` f3J$'GCF83?,/77,/4+"P hi P&5F8(*I4,/;+jGC$g. $;3=(*,/F$724(*2E3J$'GCF83?,/779,/+"1 $FI4&/-Z
G%3J$;GKF,/779,/2+-$'G"1 $7(*.02P hi PL5 1 $ N GC&/2. # $;1 $'+GC$;3V1 $'] +-,/1 G"GC2I43J$*# +
7(*. 2h1 $V&/VF8I4&/R TGC2&/(*$'+-F$V. # $'1 $;+*3J$'WD$'3?,/3?GK$L_# +*7(*. 2Z;M 24GCF8A43J$'G+-2jF8,/$'+-$L$'GCF8
3J$'GCF83?,/779,/+ Z

Restriccin PRIMARY KEY


[ CONSTRAINT name ] PRIMARY KEY

Entradas

P a\
name
)V+h+-2(*I3J$g^3=I4,/F3=;3?,/2E. 3?f&/f3J$'GCF3=,/77,/+ Z

ln

Salidas
ERROR: No se puede insertar un valor duplicado en un ndice nico.

i GKF2H279# 3?3J$a$'+LF,/$'(*. 2H1 $w$=BD$'7# 7,/4+VGC,^&/A# ,/$'+L


,/+-F$'+-F6,/+-GC$;3=F30# +Vd&/24301 # . &/,/71 2
$'+"# +-H724&/# (*+-HGC#NBD$'F8Hg# +-H3J$;GKF3=,797,/+jM \V)W5 i UZ

Descripcin
b3J$'GCF83?,/779,/+1 $H7(*. 2"M \V)U5 i $;GK.0$'7,/] 7L!# $L# +7(*.02"1 $b# +-LF8^I&/LGC24&/^c
(*$'+-F$6. # $'1 $6724+-F$'+-$;3)d&/23J$'G> +-,/724G 58+-2L1 # . &/,/71 2GK<TV+-2V+-# &/24GHZ= 61 $'] +-,/7,/4+"1 $6&/
724&/# (*+-L$'GC. $'7,/] 79^1 b+-2jF,/$'+-$H!# $L ,+-79&/# ,/3a# +-L3J$'GCF83?,/779,/+$;N. &/7,/F8L #
)L . 3=
GC$'3U,/+ 79&/# 1 f$'+h# +-H3J$'GCF83?,/77,/4+"M \V)T
 5 i UZ

&/2_GK$6. # $'1 $$;GK. $;79,] 73)# +-H +-,/79g79&/^d $6. 3=,/(*^3=,/f58M \V)W
 5 i  <-. 243UF8I4&/ Z

Notas

M 24GCFA3J$'GV73J$'# F2(*F8,/7(*$;+-F8$j# ++-1 ,/7$j +-,/72. 3?GC$'A4# 3?3f&/,/+-F8$;A3?,/1 11 $j&/2G


1 F24GZ`58 $'g&/HGC$'+ F8$'+-7,/fPQ i \ i i <

Q3J$'GCF83?,/779,/+%1 $X7&/d$Q. 3?,/(*3?,/Q58M \L)7


 5 i  <1 $'I4$X+-24(*I43?3 # +%72+B# +-F2L1 $X7(*c
. 2Gf!# $E+-2*GC$'+72+-F8$'+-,/1 24GH.0243+-,/+-A4# +-"24F3?h3J$;GKF3=,/77,/7
+ )L ) i 1 $'] +-,/1 2GH. 236&/
(*,/GC(*FI4&/R0T4!4# $h. 3J241 # 7,/3?/h# +-1 # . &/,/77,/+1 $h+-1 ,/7$'GL$'!4# ,/d&/$;+-F8$'GLT# +-GC2c
I43J$S73JA4%1 ,/7,/24+-^&$'+F8,/$;(*. 2*1 $E$=BD$'7# 7,/4+ Z ,/+$'(*I43JA424R M 2GKFA3J$;GH+-2&/21 $'GC:-I4,/&/,/F
$'GC. $'7/] 7'($'+-F8$4Z

Clusula CONSTRAINT para tablas


[ CONSTRAINT name ] { PRIMARY KEY | UNIQUE } ( column [, ...] )
[ CONSTRAINT name ] CHECK ( constraint )

Entradas
P a\
name
)V+h+-2(*I3J$g^3=I4,/F3=;3?,/2E1 1 2VH# +-f3J$'GCF3=,/77,/4+h1 $6,/+-F8$'A43?,/1 1XZ
 R ZZZ
i &w +-24(*I43J$1 $&/24Gh7(*. 2G". 3?*&/24Gh!4# $*1 $;] +-,/(*2Gj# ++-1 ,/79$ +-,/72T9R). 3?&/
M \L)S
 5 i R^# +-H3J$'GCF3=,/77,/4+h #
)V XZ

column

P hi PL55
<
constraint
)V+-f$;N. 3J$'GC,/+hI4242&/$'+-fHGC$'3)$'d&/# 1 2_724(2%&/f3J$'GCF83?,/77,/4+ Z

ln^

Salidas
G>. 2GC,/I&/$;GwGC&/,/1 ^G>. 3?g&/f7&/# GC# &/f1 $63J$;GKF3?,/797,/+"1 $FI4&/G>GC24+h&/G (*,/GC(*Ga!# $. 3?
&/G . 3?F8$;Ga723=3J$'GC. 2+-1 ,/$'+-F$'Ga1 $&/f7&/# GC# &/H3J$'GCF83?,/779,/+"1 $679(. 2)Z

Descripcin

)V+-L3J$'GCF83?,/779,4+1 $bF8^I4&/_$'G6# +-V3?$;GKF3?,/797,/+1 $b,/+-F8$'A43?,/1 11 $;] +-,/1 1GC2I43?$b# +-22j(*G


7(*. 2Ga1 $g# +-gF8I4&/fI4^GK$4Z` G 79# ^F83J2Vd 3?,/7,/2+-$'G 1 $g3J$'GCF83?,/77,/24+-$'G 1 $6F8I4&/fGC2+ k

)V

) i
P h
P 5
i L
M L
\ )S5 i 
i bX5 i 
Nota: Postgres todava no soporta (en su versin 6.5) las restricciones de integridad
FOREIGN KEY. El compilador entiende la sintaxis de FOREIGN KEY, pero solo imprime
un aviso e ignora la clusula. Las claves ajenas pueden ser parcialmente emuladas por
medio de triggers (Consulte la sentencia CREATE TRIGGER).

Restriccin UNIQUE
[ CONSTRAINT name ] UNIQUE ( column [, ...] )

Entradas

P a\
name
)V+h+-2(*I3J$g^3=I4,/F3=;3?,/2E1 1 2VH# +-f3J$'GCF3=,/77,/4+ Z
column

)V+h+-2(*I3J$g1 $# +h79(. 2E$'+h# +-fFI4&/-Z

Salidas
status

kCP6+-+-2F0,/+-GC$'3?F-f1 # . &/,/7F$'-4$'T%,/+-F2EH# +-,/!4# $,/+-1 $'0Z


i a f
i GCF8$H$'3?3J243U279# 3?3J$f$'+F,/$'(*. 2"1 $f$?B$;79# 7,/+GC, GC$H,/+-F8$'+-FL,/+-GK$;3=F3 # +d &/23a1 # c
.0&/,/791 2_$;+j# +h7(*. 2Z

ln

Descripcin

63?$;GKF3?,/797,/+)V ) i $'GC. $'7,/] 796# +-f3J$'A4&/6$'+%&/g!4# $6# +"A43?# . 2L1 $Q# +-2 :-$L)V ) i
724+-GCF83?,/+-F)GK.0$'7,/] $;Gf%3J# &/$_F:-FUEA43J24# .2W>2+-$E243Q2(*^Gf7(*. 2Gf1 ,/d $;3=GC2Gf1 $_# +-%Fc
I4&/H. # $'1 $g72+-F8$'+-$;3 GC24&/2Ed &/23J$'Ga +-,/792GZ i &72(*. 243?F(*,/$'+-F2"1 $g&/H3J$'GCF83?,/779,/+j1 $gF8^I&/
)V ) i $'GQ$;& (*,/GC(*2h!# $b.03=b&/L3J$'GCF83?,/779,/+1 $H7(*. 2RN792+&/b. 2GK,/I4,/&/,/1 11 ,/79,/2+-&
1 $.0&/,/793?&/2Vf(*Ga1 $# +h7(*. 2Z
P62+-GC# &/F$g&/fGC$'77,/4+jGC24I43J$&/g3J$'GCF83?,/797,/+h1 $7(*. V
2 )V ) i . 3?g(*^Gw1 $;F8&/&/$;GZ

Uso

$'] +-$g# +-f3J$'GCF83?,/77,/4+h1 $FI4&/)L

i $'+h&/fF8^I4&/f1 ,/GCF83?,/I4# F823=Gk

CREATE TABLE distributors (


did
DECIMAL(03),
name
VARCHAR(40),
UNIQUE(name)
);

Restriccin PRIMARY KEY


[ CONSTRAINT name ] PRIMARY KEY ( column [, ...] )

Entradas

P a\
name
)V+h+-2(*I3J$g^3=I4,/F3=;3?,/2E. 3?f&/f3J$'GCF3=,/77,/+ Z
 R ZZZ
24Ga+-2(*I3J$;Gw1 $6# +-2E2E(*Ga7(*. 2Gw$'+"&/HFI4&/-Z

column

Salidas
status

kCP6+-+-2F0,/+-GC$'3?F-f1 # . &/,/7F$'-4$'T%,/+-F2EH# +-,/!4# $,/+-1 $'0Z


i a f
i GCF82"27# 3=3J$f$'+F8,/$;(*. 2"1 $f$=BD$'7# 79,/+GC,&/A# ,/$;+,/+-F$'+-F8L,/+-GC$'3?F83># +d&/23a1 # c
.0&/,/791 2"$'+# +7(*.02jGC#NBD$'F2jL# +-V3J$;GKF3?,/797,/+1 $H79&/^d $f. 3?,/(*3?,/L5M \V)
5 i  <`Z

ln^


Descripcin
b3J$'GCF83?,/779,/+M \V)Y5 i $'GC. $'7,/] 7V# +-L3J$'A4&/H$'+&/L!# $H# +A3J# . 2"1 $H# +-2h2"(*G
7(*. 2Gb1 $"# +-hFI4&/j. # $;1 $"72+-F8$;+-$'3gGC4&/2d&/243J$;GH +-,/724GV58+-2*1 # . &/,/71 2GK< T+-2+-# c
&/24GZ^ Gf1 $'] +-,/79,/2+-$'GH1 $_7(*. 21 $E&/2Gb7(*. 2GH$'GC. $'7,/] 71 2GH+-2*
+-$'7$'GC,/F%,/+-79&/# ,/3g# +-
3J$'GCF83?,/779,/+" #
)V j. 3?gGC$'3>,/+-7&/# 1 f$'+h# +-H3J$'GCF83?,/77,/4+"M \V)S
 5 i )Z

_3J$'GCF3=,/77,/+1 $LF8I4&/VM \L)6


 5 i $;GgGC,/(*,/&/3QE&/E3J$'GC. $'7F,/d V3J$'GCF83?,/779,/+1 $V7(*c
. 2R 724+*&/L. 2GK,I,/&/,/1 11 $b$'F8$'+-1 $'3=&/%
 .h,/F:*F8:-$b1 1 ,/F,/24+-& 79^. 'I4,/&/,/FT2W$'+-72(*. GCGC,/+-A
(*# &/F8,/. &/$792&/# (*+-GZ

P62+-GC# &/F$L&/VGC$'779,/+*GC24I43J$b&/_3J$'GCF83?,/77,/4+1 $b7(*. 2jM \L)U


 5 i . 3?L(*G6,/+-W824(*^c
7,/4+ Z

Uso

P63J$9H&/G F8I4&/G ] &/(*GXTE1 ,/GCF83?,/I4# F823=Gk


CREATE TABLE films (
code
CHARACTER(5) CONSTRAINT firstkey PRIMARY KEY,
title
CHARACTER VARYING(40) NOT NULL,
did
DECIMAL(3) NOT NULL,
date_prod DATE,
kind
CHAR(10),
len
INTERVAL HOUR TO MINUTE
);

CREATE TABLE distributors (


did
DECIMAL(03) PRIMARY KEY DEFAULT NEXTVAL(serial),
name
VARCHAR(40) NOT NULL CHECK (name  )
);

P63J$9H# +-fF8^I&/g792+j# +j^3=3?'TE1 $H1 ,/(*$;+-GK,/2+-$'Gk


CREATE TABLE array (
vector INT[][]
);

$'] +-$Q# +-3J$'GCF83?,/779,/+E1 $XFI4&/')L ) i . ^3=Q&/6F8I4&/6] &/(GZ? GU3J$'GCF83?,/77,/24+-$;G>1 $QFI4&/


)V ) i .0# $;1 $'+hGC$'3)1 $'] +-,/1 GaGK2I43J$# +-2E2_(*Ga79^(*. 24Ga1 $&/HFI4&/-k
CREATE TABLE films (
code
CHAR(5),
title
VARCHAR(40),
did
DECIMAL(03),
date_prod DATE,
kind
CHAR(10),
len
INTERVAL HOUR TO MINUTE,
CONSTRAINT production UNIQUE(date_prod)
);

l

$'] +-$g# +-f3J$'GCF83?,/77,/4+h1 $7(*. 2_P hi PL5Ek

CREATE TABLE distributors (


did
DECIMAL(3) CHECK (did > 100),
name
VARCHAR(40)
);

$'] +-$g# +-f3J$'GCF83?,/77,/4+h1 $FI4&/fP hi P&5Ek

CREATE TABLE distributors (


did
DECIMAL(3),
name
VARCHAR(40)
CONSTRAINT con1 CHECK (did > 100 AND name > )
);

'$ ] +-$V# +-E3J $'GCF3=,/77,/4+*1 $LF8I4&/_M \L)Z5 i . ^3=V&/EF8^I&/V] &/(*GZ' ^Gg3J$'GCF3=,/77,/2+-$'G


1 $FI4&/fM \L)S5 i . # $'1 $'+"GC$'3U1 $'] +-,/1 G GC24I43J$# +-2E2E(*Ga79^(*. 24Ga1 $&/gF8I4&/-k
CREATE TABLE films (
code
CHAR(05),
title
VARCHAR(40),
did
DECIMAL(03),
date_prod DATE,
kind
CHAR(10),
len
INTERVAL HOUR TO MINUTE,
CONSTRAINT code_title PRIMARY KEY(code,title)
);

'$ ] +-$_# +-%3J$'GCF83?,/779,/+1 $V7(*. 2M \L)65 i . 3?E&/EFI4&/E1 ,/GCF3=,/I4# F243?GZ ^Gg3J$'GCc


F83?,/77,/24+-$'GX1 $f79^(*. 2"M \L)Y5 i GC2&/(*$'+-F$bGC$H. # $'1 $'+j1 $'] +-,/3a. ^3=H# +7(*. 2E1 $
&/fFI4&/f58&/24GaGC,/A# ,/$'+-F$'Gw1 24Ga$=BD$'(*. &/2GwGC$'3?+"$'!# ,/d&/$'+-F$'GC< k
CREATE TABLE distributors (
did
DECIMAL(03),
name
CHAR VARYING(40),
PRIMARY KEY(did)
);

CREATE TABLE distributors (


did
DECIMAL(03) PRIMARY KEY,
name
VARCHAR(40)
);

Notas
P6 i \ ih \V iX hi  $'G # +-H$'F8$'+-GC,/+^& &/$'+-A# `B$g1 $6M 24GCF8A43J$'GZ

l^l

Compatibilidad
SQL92
\V1 $;(*'G 1 $a&/w FI4&/wF$'(*. 23=&'d,/GC,/I4&/$a&/247&/(*$;+-F8$'R N w1 $;] +-$># +-XGK$;+-F8$'+-
7,/X
PQ i \ i
b \V i M a\L) \L i RT_24. 7,/2+-&/(*$'+-F$f# +-H79&/^# GK# &/ P
 k
CREATE GLOBAL TEMPORARY TABLE table ( column type [
DEFAULT value ] [ CONSTRAINT column_constraint ] [, ...] )
[ CONSTRAINT table_constraint ] [ ON COMMIT { DELETE | PRESERVE } ROWS ]

M 3=LFI4&/G6F8$;(*. 243?&/$;GKR &/_GC$'+-F$'+-7,/EP6 i \ i b \V i M a\L) \V i +-2(*c


I43=b# +-_+-# $;d LFI4&/Vd,/GC,/I4&/$LL24F3J24G67&/,/$'+-F$'GQTj1 $'] +-$b&/24G67(*. 2G61 $H&/VFI4&/LT&/^GQ3J$'GCc
F83?,/77,/24+-$'GZ

Q79&/^# GK# &/624.079,/2+-& P


8 1 $XP6 i \ i" i M \V) \L i $'GC.
$' 7,/] 79QGC,N&/
F8^I&/HF$'(*. 23?&1 $'I4$gd79,/^3=GC$g1
$f3J $'A4,/GCF83J2GX71 fd$'eb!# $fGC$f$=BD$'7# F8b# +P
 2" +-2Z
,4GC$H24(*,/F$b&/b7&/# GC# &/ P
8 RGK$fGC# (*$H&/b24. 7,/+. 23 1 $'W8$'7F24R P

i i i Z

M 3=73?$;3# +-HF8I4&/gF8$'(*. 23?&k


CREATE TEMPORARY TABLE actors (
id
DECIMAL(03),
name
VARCHAR(40),
CONSTRAINT actor_id CHECK (id
) ON COMMIT DELETE ROWS;

Clusula UNIQUE

150)


^g$'GC. $'7,/] 7f&/A4# +-Gw. 2GC,/I4,/&/,/1 1 $'G 1 ,/79,/2+-&/$'Ga. 3?
)L
$'] +-,/79,/+j1 $3J$'GCF3=,/77,/4+"1 $F8I4&/-k

[ CONSTRAINT name ] UNIQUE ( column [, ...] )


[ { INITIALLY DEFERRED | INITIALLY IMMEDIATE } ]
[ [ NOT ] DEFERRABLE ]

$'] +-,/79,/+j1 $3J$'GCF3=,/77,/4+"1 $79^(*. 2)k


[ CONSTRAINT name ] UNIQUE
[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

l

i k

clusula NULL

h3?$;GKF3?,/797,/+#)L 583J$'&/(*$;+-F8$%+-2$'GV# +-3J$'GCF83?,/77,/4+-<a$;G_# +-j$'F8$'+-GC,/+M 24GCFA3J$'GL


^w,/+-79&/# 1 X. 23 GC,/(*$'F3=X792+V&/X79&/^# GC# &/X #
)V wZP62(*2b$'G$;&d&/230. 23 1 $;W$;7F82
. 3?g7# &/!# ,/$'3U7(*. 2R^GK#. 3J$'GC$'+ 79,/f$;G 3?$;1 # +-1 +-F$Z
[ CONSTRAINT name ] NULL

clusula NOT NULL

^g$'GC. $'7,/] 7f&/A4# +-f. 24GC,/I4,/&/1 1^1 ,/79,/2+-& . ^3=f #)L Xk


[ CONSTRAINT name ] NOT NULL
[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

clusula CONSTRAINT

^j$'GC. $;79,/] 7&/A4# +-. 2GC,/I4,/&/,/1 11 ,/7,/2+-&U. 3?3J$;GKF3?,/797,/2+-$'GCR TF8(*I4,/;+1 $'] +-$
3J$'GCF83?,/779,/2+-$'G 1 $^GKGC$'3?F,/24+-GwT%1 $1 24(*,/+-,/2Z
Nota: Postgres todava no soporta ni dominios ni assertions.

)V+-E^GKGC$'3?F,/24+$'Gg# +F8,/. 2$'GC. $'7,/&01 $_3J$'GCF3=,/77,/4+*1 $V,/+-F8$'A43?,/1 1T792(*. 3?F8$_$;& (*,/GK(*2

$'GC. 7,/2V1 $+-2(*I3J$;Gw72+j2F83?Ga3J$'GCF83?,/779,/2+-$'GZ ,/+h$'(*I43JA424R^# +-HGCGC$'3?F8,/2+h+-2E$;Gw+-$'7$'GCc


3=,/^(*$'+-F8$X1 $;. $'+-1 ,/$'+-F$X1 $Q# +-. 3?F8,/7# &/3 FI4&/6I4GK$X72(*2_GC2+%&/G>3J$'GCF83?,/779,/2+-$'GCRSGCN!# $
c8;H. 3J24. 23J7,/24+-f&/HGC$'+ F8$'+-7,/HP6 i \ i \ N i 724(*2E# +(*;F821 2E&/F$'3?+-F,/d 2
. 3?g1 $;] +-,/3U# +-f3J$'GCF83?,/779,/+ k
CREATE ASSERTION name CHECK ( condition )

Ga3J$'GCF83? ,/779,/2+-$'Ga1 $g1 2(*,/+-,/2"GC$H1 $'] +-$'+72+&/^GwGC$'+-F$'+-7,/GXPQ i \ i

\ k
i

a$;GKF3=,/77,/+j1 $1 2(*,/+-,/2>k

\ 2%\L c

[ CONSTRAINT name ] CHECK constraint


[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

$'] +-,/79,/+j1 $3J$'GCF3=,/77,/24+-$;Ga1 $gF8I4&/-k


[ CONSTRAINT name ] { PRIMARY KEY ( column, ... ) | FOREIGN KEY constraint | UNIQUE constraint | CHECK constraint }
[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

l^m

$'] +-,/79,/+j1 $3J$'GCF3=,/77,/24+-$;Ga1 $g79^(*. 2)k

[ CONSTRAINT name ] { NOT NULL | PRIMARY KEY | FOREIGN KEY constraint | UNIQUE | CHECK constraint }
[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

)V+-f1 $'] +-,/79,/+h1 $3J$'GCF3=,/77,/4+h1 $6,/+-F8$;A3?,/1 158P

a\ < . # $;1 $724+-F$'+-$;3># +hF83?,/c


I4# F82h2h7&/# GK# &/ i i a\L i T 2h# +-_7&/# GC# &/_1 $'& (*241 2h,/+-,/7,/&01 $H3J$'GCF83?,/77,/4+-R $'+
7# ^&/!# ,/$'3)243J1 $;+ Z

i i a\L i

CG ,/A4+-,/] 76!# $Q&63J$'GCF3=,/77,/4+_1 $'I4$aGC$'3 72(*. 3J24I41 X1 $'GC. # 'G)1 $X&/Q$?B$'7# 7,/+E1 $w71 
GK$;+-F8$'+-7,/ N XZ

a\L i
i i a
GC,/A+-,/] 7E!# $V&/Ed$'3?,/] 77,/4+1 $'&-7# (*. &/,/(*,/$'+-F21 $b&/E3J$'GCF83?,/77,/4+.0# $;1 $LGC$'3w.0&/c
e1-2E:-GCF8H(*^GwF3J10$;R^. $'3J2_+-2E(*GwF3J1-$g!# $g$'&] +-& 1 $g&/f7F# & F83?+-GC77,/4+ Z

i N& (*21 2V1 $63J$'GCF3=,/77,/4+E. 3=671 63J$'GCF83?,/779,/+%F,/$'+-$GC,/$'(*. 3J$Q# +"d ^&/243,/+-7,/&N. 23)1 $'W8$'7F82
!# $gGC$$'GCFI4&/$'7$. 3?f&/f3J$;GKF3=,/77,/+j^& . 3=,/+-7,/. ,/2_1 $g&/fF3=+-GC77,/+ Z

\ ^
8 L
i \ i

GK,/A4+-,/] 79%!4# $'R1 $'GC1 $V$;& .03=,/+-7,/. ,/21 $V&/EF3=^+-GK77,/+-R&/E3J$'GCF83?,/779,/+1 $'I4$bGK$;36724(*c


. 3J24I41-f1 $'GC. # 'Ga1 $&/H$?B$;79# 7,/+h1 $71 gGC$'+ F8$'+-7,/ N wZ
\ ^
8 L
i 4i a i

GC,/A4+-,/])7h!4# $'R072(*2GK$%$'GCFh^&). 3?,/+-7,/. ,/2*1 $"&hF3=^+-GK^797,/+-R0&/"724(*.03?2I47,/+@1 $


&/E3J$'GCF83?,/779,/+. # $'1 $LGK$;3Q.0&/e;1 E:-GCF8%(*^GfF3J10$'R. $'3J2+-2(*GfF3J10$V!# $_$'+$'&
] +-^& 1 $&/f7F# & F83?+-GC77,/4+ Z GC$'R^!# $g&/g3?$;GKF3?,/797,/+". # $'1 $6GK$;3U,/+-7# (*. &/,/1 H. 23
&/A# +-gGK$;+-F8$'+-7,/ N $;+h# +j. # +-F2%,/+-F$'3?(*$'1 ,/2E1 $g&/fF83?+-GC77,/4+-R. $;3?2V+-2%&] +-&
1 $&/f(*,/GC(*-Z

Clusula CHECK

^E$'GC. $'7,/] 79%^&/A# +-%7. 7,/1-1@1 ,/7,/2+-&. ^3=EP hi P&5F8^+-F82$;+&/%3J$'GCF3=,/77,/24+-$;G


1 $FI4&/f724(*2_$'+h&/H1 $7(*. 2Z

1 $'] +-,/7,/4+h1 $63?$;GKF3?,/797,/+h1 $FI4&/-k
[ CONSTRAINT name ] CHECK ( VALUE condition )
[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

lx

1 $'] +-,/7,/4+h1 $63?$;GKF3?,/797,/+h1 $7(*. 2k


[ CONSTRAINT name ] CHECK ( VALUE condition )
[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

clusula PRIMARY KEY


^g$'GC. $'7,/] 7f&/A4# +-Gw. 2GC,/I4,/&/,/1 1 $'G 1 ,/79,/2+-&/$'Ga. 3?g&/HM
$'] +-,/79,/+j1 $3J$'GCF3=,/77,/24+-$;Ga1 $gF8I4&/-k

\V)W5 i ak

[ CONSTRAINT name ] PRIMARY KEY ( column [, ...] )


[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

$'] +-,/79,/+j1 $3J$'GCF3=,/77,/24+-$;Ga1 $g79^(*. 2)k


[ CONSTRAINT name ] PRIMARY KEY
[ {INITIALLY DEFERRED | INITIALLY IMMEDIATE} ]
[ [ NOT ] DEFERRABLE ]

CREATE TABLE AS
Nombre
CREATE TABLE AS

PQ3J$'g# +-H+-# $;d fFI4&/

Synopsis
CREATE TABLE table [ (column [, ...] ) ]
AS select_clause

Inputs
table

i &+-24(*I43J$g1 $# +-H+-# $;d fFI4&/ffGC$;3>73J$S1 -Z

l^n

( [&/F,/. &/$'G +-24(*I43J$'G 1 $6792&/# (*c


i & +-2(*I3J$61 $6# +-f72&/# (*+--Z $6. # $'1 $'+%$'GC. $;79,/] 73\
+-f# GK^+-1 2E# +-H&/,/GCF8H1 $+-24(I3J$;Gw1 $72&/# (*+-H1 $'&/,/(*,/F1 f. 23U792(*GZ

column

select_clause

)V+ VGC$'+-F$'+-7,/V1 $H72+-GK# &/F_d&/,/1 -ZK $'] '3=^GK$H i i P . 3?V:-&/&/^3a# +-V1 $;GK73?,/. c
79,/+h1 $&/HGC,/+-FN,/Ga. $'3?(*,/F8,/1 -Z

Salidas
$;] ;3=GC$f w 48 T%]/ . 3?g:-&/&/3U# +hGK# (*3?,/2_1 $. 2GK,/I4&/$;Gw(*$'+-GCc
a
B$;Gw1 $6GK^&/,/1 -Z

Descripcin

 w J8a 4/. $'3?(*,/F8$"# +-FI4&/GC$'3f73J$'1-j. 3?F8,/3f1 $'&)792+-F8$;+-,/1 21 $h# +-



F8^I&/h$',/GCF8$'+-F$Z i !# ,/d&/$h$;+W8# +-79,/2+-(*,/$;+-F82-k= = oOAz^JADHR .0$'3J2*!# ,/eGL72+# +-
GC,/+-F8,/Gw( Ga1 ,/3J$'7F84Z

CREATE TRIGGER
Nombre
CREATE TRIGGER

PQ3J$'g# +j+-# $'d2E1 ,/GC. 3?1-243

Synopsis
CREATE TRIGGER name
{ BEFORE | AFTER } { event
[OR ...] } ON table
FOR EACH { ROW | STATEMENT } EXECUTE PROCEDURE
ER">funcBLE>
( arguments )

Entradas
name

i &+-24(*I43J$g1 $# +h1 ,/GC. 3?1 23$',/GKF$'+-F$Z

table

i &+-24(*I43J$g1 $# +-HFI4&/-Z

l

)V+-2_$'+-F83J$

event

i R

i i i 2)VM

\ i Z

funcname

)V+-fW8# +-7,/4+jGC# (*,/+-,/GCF83?1 H. 23U$;&# GC# 3?,/2Z

Salidas
CREATE

$61 $'d# $'&/d$$'GCF8$(*$'+-GCCB$GK,$'&1 ,/GC. 3?;1 243UGC$g:-f73J$'1 2V792+h',/F82Z

Descripcin

 w aJhh ,/+-F83J21 # 7,/3# ++-# $'d21 ,/GC. 3?1-243Q$'+&/EI4GC$b1 $V1 F24Gg7F8# ^&Z i &

1 ,/GC. 3?'1 23HGK$hGC247,/3724+&/j3?$;&/7,/4+
T$=BD$'7# F8^3&/W# +-7,/+$'GC. $'7,/] 79^1 
relname
Z
funcname
$6. # $'1 $g$;GK. $;7,/] 73U!# $f$'&1 ,/GC. 3?1 23UGC$f1 ,/GC. 3J$1 $g7# &/!# ,/$;3=H1 $$'GCF8Gw1 24GaW8243?(*Gk
+-F$'GH58 i i <>1 $E!# $"&/"2. $'3?7,/4+GC$'",/+-F8$'+-F1 "$'+# +@3J$'A4,/GCF83J258+-F$'GH1 $%!4# $"&/G
3J$'GCF83?,/779,/2+-$'G>GC$72(*. 3J# $'I4$'+%TE?#
/ >RL hwa"2Eh a"GK$;+",/+-F8$;+-F81 24GC< 2_1 $;GKc
. # 'Ga58\ 4 i a< 1 $g!# $f&/H2. $'3?7,/4+h:-T4HGC,/1 2%,/+-F$'+-F8^1 H58. 243U$=BD$'(*. &/2%1 $'GC. # 'Gw1 $g!# $
&/Gb3J$'GCF3=,/77,/24+-$;GLGK$;+@72(*. 3J24I41 ^GbT1 $h!4# $j?#
/ R L hw 2h :-T^+
GC,/1 2j72(*. &/$'F1 2GC<CZ , $'&-1 ,/GC. 3?'1 243wGC$L. 2+-$V$;+(*3J7:-V+-F$'G61 $;&-$'d$'+-F24R 'GCF8$b. # $'1 $
GC&/F83-&/624. $;3=7,/+_. ^3=X$;&3J$'A4,/GKF3J2H7F# ^&^2b7(*I4,/^3 $'&^3J$'A,/GCF3J2H!# $X$'GCF8I4Q,/+-GC$'3?F+-1 24GC$
58GK&/2%. ^3=H&/Ga2. $'3?7,/24+-$'GX?#
/ ThV hw <`Z ,$'&1 ,/GC. 3?1 23>GC$f1 ,/GC. 3?f1 $;GK. # ;G
1 $'&4$'d$'+-F24RF821 2GQ&/2GQ79^(*I4,/24GCR,/+-79&/# T4$'+-1 2h&/b &/F8,/(L,/+-GC$'3J7,/+-R 7F# &/,/e'7,/+2"I423=3?c
1 2R^GK2+jd ,/GC,/I4&/$'GC. 3?g$;&41 ,/GC. ^3=;1 23`Z
a$;] ;3=GC$H_&/2G67(
. _ F# &/24G1 $ M T 3?,/AA4$'3?GQ$'+*&/LA4<
# _ _ v|?s-}?4Vh }v }?pVH?} |Qt4
. 3?g( Ga,/+-W23?(*7,/4+ Z

Notas
 w aJhh $'Ga# + b$;NF$'+-GC,/+j1 $;&&/$'+-A# `B$gM 2GCF8A43J$'GZ
&/2_$'& . 3J24.0,/$'F83?,/2V3J$'&/7,/24+-^1 2_.0# $;1 $73J$';3># +h1 ,/GC. 3?1 23U$;+"$'GCF8H3J$'&/;7,/4+ Z
GCF8X&/Qd$'3?GC,/4+_7F8# &^58d Z +'<8R9&/G)GC$'+-F$'+-7,/GU1 $w1 ,/GC. 3?1-243J$;G)+-2b$'GCF+V,/(*. &/$'(*$'+-F1 GZ
a$;] ;3=GC$HEhha?h" . 3?V2I4F8$;+-$'3w,/+-W8243?(*7,/4+*GC2I43J$b72(*2I423=3?3a1 ,/GC. 3?c
1 23?$;GZ

Uso

P62(*. 3J# $'I4GC,N$;&N741 ,/A42L1 $X1 ,/GCF83?,/I4# ,/1 243$'GC. $;79,/] 71 2b$',/GCF8$Q$'+_&/gF8^I4&/1 $X1 ,/GCF83?,/I4# ,/1 2c
3J$'G +-F8$;Ga1 $-1 ,/3)2E^79F# &/,/e3# +-H] &/f$'+h&/2GX] &/(*Ga1 $g&/fF8^I4&/-k
CREATE TRIGGER if_dist_exists
BEFORE INSERT OR UPDATE ON films FOR EACH ROW

l^

EXECUTE PROCEDURE check_primary_key (did, distributors, did);

\V+-F$'G 1 $g7+-7$'&/3# +h1 ,/GCF83?,/I4# ,/1 23>2E1 $g7F8# &/,/e;3>GC#741 ,/A42RI23?3=g791 f3J$'WD$'3J$;+-79,/g$'+
&/24Ga] &/(*GX1 $6&/fF8I4&/ k
CREATE TRIGGER if_film_exists
BEFORE DELETE OR UPDATE ON distributors FOR EACH ROW
EXECUTE PROCEDURE check_foreign_key (1, CASCADE, did, films, did);

Compatibilidad
SQL92
h2E:-^T% aa ?hh $'+ N -Z
i &)GC$'A4# +-1 2$=BD$'(*. &/2$'. &/,/71 2*F$'3?,/243?(*$'+-F$h.0# $;1 $E,/(*. &/$'(*$'+ F83?GC$hF(*I4,/'+# GC+-1 2
# +-f3J$'GCF83?,/77,/4+h1 $ i b`
5 i 57&/d$QW23>+-$;< 724(*2_$'+ k
CREATE TABLE distributors (
did
DECIMAL(3),
name
VARCHAR(40),
CONSTRAINT if_film_exists
FOREIGN KEY(did) REFERENCES films
ON UPDATE CASCADE ON DELETE CASCADE
);

+ 7# ^&/!# ,/$'3 7GC2RN&/^GX7&/d$'GwW823=^+-$'GaF821 d/H+-2%$;GKF+j,/(*. &/$'(*$;+-F81 ^GX58:-GCF8H&/Hd$'3Jc


i h
GC,/4+h-Z <$;+hM 2GCF8A43J$'GZ

CREATE TYPE
Nombre
CREATE TYPE

$'] +-$g# +j+-# $;d 2_F8,/. 2_1 $g1 F24G I4GC$

Synopsis
CREATE TYPE typename
( INPUT = input_function,
OUTPUT = output_function
, INTERNALLENGTH = { internallength
| VARIABLE }
[ , EXTERNALLENGTH = { externallength

l

[
[
[
[
[
[

|
,
,
,
,
,
,

VARIABLE } ]
DEFAULT = "default" ]
ELEMENT = element ]
DELIMITER = delimiter ]
SEND = send_function ]
RECEIVE = receive_function ]
PASSEDBYVALUE ] )

Entradas
typename

i &+-24(*I43J$g1 $'& F,/. 2EHGC$;3U73J$';1 2)Z

)V+hd&/243)&/,/F$'3?&/R$'& 7# &$'GC. $'7,/] 79f&f&/24+-A4,/F8# 1,/+-F$'3?+-f1 $'&+-# $'d2EF,/. 2Z

internallength

)V+hd&/243)&/,/F$'3?&/R$'& 7# &$'GC. $'7,/] 79f&f&/24+-A4,/F8# 1$'F$'3=+-g1 $'& +-# $'d2EF,/. 2Z

externallength

input_function

i &+-24(*I43J$g1 $# +-gW# +-7,/+-RN73J$';1 f(*$;1 ,/+-F8$ w Lha?h"R&/g79# &72+-c


d /, $;3=F$&/2Gw1 ^F82Gw1 $;GK1 $GC#W823=(*g$'NF$'3?+-ff&/HW823=(*g,/+-F8$'3?+-H1 $F,/. 2Z

output_function

i &+-24(*I43J$f1 $f# +-LW# +-7,/+-R 73J$';1 b(*$'1 ,/+-F$fP6 i \ i )VhP hR&/V7# &4792+-c
d /, $;3=F$L&/2G1 F82G1 $'GC1 $bGK#W823=(*V,/+-F8$;3=+-EV# +-EW8243?(*_72+-d$'+-,/$'+-F$V. 3?_GC$'3w(*2GCc
F83?1 2GZ

element

i &F8,/. 2_793J$'^102_$'Gw# +h3?3?T'$'GCF82_$'GC. $'7,/] 7f$;& F8,/. 2E1 $&/2Gw$'&/$;(*$'+-F24Gw1 $'& 3?3=^T Z

delimiter

i &793?7CF$'3U1 $'&/,/(*,/F1 23U. ^3=f$;& 3?3=TNZ

default

i &F8$'F82_. 23>1 $'W8$97F82_!# $fGK$6(*24GCF3=3. 3?g,/+-1 ,/73U1 F82G +-2E. 3J$;GK$;+-F8$'GC

send_function

i &+-24(*I43J$g1 $# +-gW# +-7,/+-RN73J$';1 f(*$;1 ,/+-F8$ w Lha?h"R&/g79# &72+-c


d /, $;3=F$L&/2G1 F82G1 $L$;GKF$VF,/. 2jE# +-_W8243?(*E^1 $'7# '1 V. 3?_GC$'3wF83?+-GC(*,/F,/1 24Gg_2F83?
(*!# ,/+--Z

receive_function

i &+-24(*I43J$g1 $# +-gW# +-7,/+-RN73J$';1 f(*$;1 ,/+-F8$ w Lha?h"R&/g79# &72+-c


d /, $;3=F$"&/2GL1 F24GH1 $"$;GKF$hF,/. 2h# +-hW8243?(*h1 $'7# 1 ". 3?"GC#F83?+-GC(*,/GC,/4+1 $;GK1 $
24F3=g(*!# ,/+-Hf&/HW823=(*f,/+-F$'3?+--Z

l^

Salidas
CREATE

$;+-GK`B$g!4# $GK$61 $'d# $'&/d$GC,$'&F8,/. 2_:-HGK,/1 2E73J$''1 2E724+h',/F2)Z

Descripcin

 w Oa . $'3?(*,/F$V& # GC# ^3=,/23J$'A,/GCF3=^3X# ++-# $'d2F8,/. 21 $V1 F24G1 $_# GC# 3?,/272+

M 24GCFA3J$'G6. ^3=VGK$;3X# GC1 2j$'+&/EI4GC$L1 $b1 F24G67F# ^&Z i &0# GC# 3?,/2j!4# $L1 $'] +-$V# +*F,/. 2GC$
724+-d,/$'3?F8$"$'+GC#. 3J2. ,/$'F3?,/2)Z
$'GL$'&>+-2(*I43J$h1 $%1 $'&)+-# $'d2F,/. 2T@1 $;I4$"GC$'3
+-,/72E1 $'+-F3J2_1 $&/24GaF8,/. 2Ga1 $'] typename
+-,/1 24Gw. 3?g$'GCFfI4GC$1 $g1 ^F82GZ
 w O
a +-$'7$'GC,/F%$'& 3J$'A,/GCF3J21 $_1 24GgW# +-7,/2+-$'GH58# GC+-1 2j73J$'F$VW8# +-79F,/24+-<U+-F$'G
1 $1 $'] +-,/3_$'&aF,/. 2)Z 3J$'. 3J$9GC$'+-F8^79,/+1 $# ++-# $'d2F8,/. 2I4^GK$$'GCF*1 $'F8$;3=(*,/+-^1 . 243
RN&/E7# &-724+ d ,/$;3=F$V&/_3J$'.03?$9GC$'+-F7,/4+$'F8$;3=+-V1 $'&-F,/. 2jE# +-_3J$'. 3J$9c
GCinput_function
$'+-F8^79,/+%,/+-F$'3?+-R^# F8,/&/,/e^I4&/$Q.0243)&/24G 2. $'3?1 23J$SG TVW8# +-79,/2+-$'G 1 $'] +-,/1 G>.0243)$'&NF,/. 2Z`hc
F8# 3?&/(*$'+-F$
$=BD$'7# F86&/F3?+-GCW23?(*7,/4+%,/+-d$'3?GC-ZJ\V(*I4G>W8# +-7,/24+-$;GKR
&/H1 $g$'+-F3=^1 output_function
fT"&/H1 $gGC&/,/1 H1 $'I4$'+hGC$'3>1 $;7&/3=;1 Ga. 3?fGC# (*,/3 # +-2%2%1 24Gw3JA# (*$'+-F2G
1 $F,/. 2E
9Z
opaque
2GX+-# $'d24GwF8,/. 2GQ1 $f1 ^F82GXI4GC$g. # $'1 $;+GC$'3U1 $f&/24+-A4,/F# 1*]NB^RN$;+7# T42%79^GK2
$'Gw# +$'+-F$'3J2". 2GC,/F8,/d24RN2"F8^(*I4,/'+. # $;1 $'+jGK$;3 1 $f&/2+-A,/F# 1d3?,/I4interna&/$SRN$'+7# T42
llength
7GC24RNM 2GCF8A43J$'G6GC# (*$L!4# $L$'&-+ # $;d 2hF,/. 2hF8,/$;+-$L$'&-(,/GK(*2jW8243?(*F2h!# $L$'& F8,/. 2h1 $H1 F24G
9ZKM 3?L,/+-1 ,/73>!# $b# +F8,/. 2"$;GQ1 $H&/24+-A4,/F8# 1*d ^3=,/I4&/$;R
GC# (,/+-,/GKF3=^1 2". 23aM 2GCF8A43J$'GCR
text
GC$g1 $'I4$g$'GC. $'7,/] 73
792(*2
Z` H3J$'. 3J$9GC$'+-F8^79,/+j$'F8$'3?+-HGC$
$'GC. $'7,/] 7f1 $W823=(*finternallength
GC,/(*,/&/3U# GC+-1 2E&/f.0&/I43?fVARIABLE
79&/^d $
Z
externallength
M 3=_,/+-1 ,/736!# $_# +F8,/.02$'Gg# +3?3?'T*T. 3?E,/+-1 ,/73Q!# $E# +F,/. 2F,/$'+-$_$'&/$;(*$'+-F24Gf1 $
3?3=;T9R0,/+-1 ,/!# $j$'&>F,/. 21 $'&)$'&/$'(*$'+-F21 $'&U3?3?T# GK+ 1 2&/j. &/I43?j7&/d$%$'&/$'(*$;+-F`Z M 23
$=BD$'(*. &/2R. 3?g1 $'] +-,/3U# +j^3=3?T_1 $$'+-F$'3J2Ga1 $g79# F3J2LI4TF$'Ga5,/+-bF +<8R^$'GC. $;79,/] !# $
ELEMENT = int4

M 3=H,/+-1 ,/79^3a$'& 1 $;&/,/(*,/F81 243 bGC$'3a# GC1 2"$;+3?3?'T4G61 $f$'GCF8$HF8,/.024R


GC$b. # $;1 $
]NB3)f# +j73=;7F8$;3>$'GC. $'7c_ ] 72Z i &1 $'&/,/(*,/F1 23U. 23>1 $;W8$'7F82V$'Ga&/f724delimiter
(*H58 <JZ
,
.079,/2+-&/(*$;+-F8$'R:-Tf# +_d&/230. 23-1 $'W8$'7F821 ,/GC. 2+-,/I&/$w$;+V7GC2g1 $a!# $a# +V# GC# 3?,/2f!4# ,/$'3=
&/A4 +_. F3?4+_1 $wI4,/F $'GC. $'c7 _ ] 72b. 3?X$'. 3?$;GC'3 1 ^F82G)+-2b. 3J$'GC$'+-F$'GZ i GC. $'7,/] !# $Q$;&d&/23
. 23U1 $;W$;79F2V792+h&/H. &/I43?g7&/d$
Z
DEFAULT

dePfhgQiWjck(lgQm<ink
oepqrtsLuOvxwzy{xy|t}x~uvx{x*v~ |(v{xQv|tQ}xrtJ*v2~wuO|t{xut@~|<@utJvxwz*v*u(*v2yv!wut{|tQut{uOvx{Qx
*}vx{xvxQvx{xPeiLSjck(lgQmLi!k
oecp

2G3JA4# (*$'+-F24G24. 7,/2+-&/$'G


T
GK2+# GC1 24G
7# ^+-1 2E$;&. 3J2A3?(*f1 $. &/,/7send_function
7,/4+j!# $f1 $'(*+-1 f&/24receive_function
GXGK$;3=d,/7,/24GwM 24GCF8A43J$'Gw3?$;GK,/1 $$'+j# +-
(*!# ,/+-1 ,/W8$'3J$S+-F$Z i +%$'GCF8$Q7GC24R'&/(*!# ,/+-$'+%&/g7# &GC$6$=BD$'7# F8M 24GCFA3J$'G>. # $;1 $Q# GC3
# +W823=(*^F82. ^3=%$;& F,/. 2*1 $_1 ^F82GH1 ,/W8$'3J$'+-F$_1 $'& # GC1 2$;+&/"(*!4# ,/+-h3J$'(*2F-Z i +$;GKc
F8$b7GC2$'G72+-d $;+-,/$'+-F8$L792+-d$'3?F8,/3X&/24Gg,/F$'(*G1 $L1 ^F82GgV# +-EW8243?(*E$;GKF+-1 3a7# +-1 2jGC$
$'+-d,/$'+1 $'GC1 $_$;& GC$'3?d,/1 236& 7&/,/$'+-F$_T*724+-d$'3?F8,/3?&/2GH1 $'& W823=(*^F82$;GKF+-1 ^3Q& $'GC. $;z7 _ ] 72
1 $&/H(*!4# ,/+-L7# +-1 2_$'&GC$'3?d ,/1 23>3J$;79,/I4$6&/24Gw1 F82Ga1 $'GC1 $$'&7&/,/$'+-F$Z ,4$;GCF8GaW8# +-79,/2+-$'G
+-2_$;GKF+"$'GC. $'7,/] 71 GCR;GC$6GK# (*$6!# $$'& W823=(*^F82V,/+-F8$;3=+-2V1 $'& F,/. 2V$'G 7$'. F8;I4&/$$;+"F821 G
&/Gg3J!# ,/F8$;79F# 3=^Gf1 $_(*^!# ,/+-"3?$;&/$'d$'+-F$'GZ'M 23$?B$'(. &/24R &/2GH73?79F$'3J$9GHGC,/(*. &/$'Gf+-2*GC$
F8,/$;+-$'+!# $L792+-d$'3?F8,/3wGC,0GK$b. GCL1 $'GC1 $L# + # +-c +_V# +
i P6GCFF8,/2+-R4. $'3J2"(*# 7:-2Gf2F83J2G

F8,/. 2GaIG _YZ

l

R ,/+-1 ,/7!# $&/24GE24.0$'3=^1 243J$9G%T@W# +-7,/2+-$'G%!4# $# GC+


i & A@24. 7,/2+-&/R
PASSEDBYVALUE
$'GCF8$"F8,/. 21 $"1 F24GV
1 $'I4$'+@. GC3g&/2GE3JA4# (*$'+-F24GL. 3J$'W8$;3?$9+-F$'(*$'+-F$j. 23bd&/23f!# $j. 23
3J$'WD$'3J$;+-79,/ Z $'GC$Q79# $;+-F861 $X!# $6+-2L. GC,3 _ Q. 23d &/23 F,/. 24G 7# T63J$'. 3J$9GC$'+-F8^79,/+%,/+-F$'3?+-
$'G 1 $(*Ga1 $g7# F3?2LI4T4F8$;GZ
M 3=H+-# $;d 2GQF,/. 24GXI^GK$;RN# +# GK# ^3=,/2". # $;1 $f1 $'] +-,/3 2. $'3?1 23?$;GKRW8# +-7,/24+-$;GQTh724+BD# +-F82G
# GK^+-1 2_&/^GwW87,/&/,/1 1 $9Ga. 3J24.0,/1 'Ga1 $'GC73?,/F8G $'+h$'GCFfGC$'779,/+ Z

Tipos de Array
i ,/GKF$'+%1 2GaW# +-7,/2+-$'G A$;+-$'3?&/,/e1 ;G ,/+-7923?. 243?1 ^GKR;3=3?T4,/+%T_3?3=^T;24# F . 3?&/f73J$';c
7,/4+3=.0,/1 H1 $gF8,/.024GQ1 $f^3=3?T%1 $H&/2+-A4,/F8# 1d3?,/;I&/$4Z i GKFGQW8# +-7,/24+-$;GQ24.0$'3=^+$;+3?3?TG
1 $7# &/!# ,/$;3UF,/. 2%M 24GCA43J$'G $',/GKF$'+-F$Z

Tipos de objetos grandes

)V+F8,/. 2M 2GKA43J$'GL3J$'A4# &/3GC&/2. # $;1 $"GC$;3H1 $%&/2+-A,/F# 1^"IT4F$'GZ ,)+-$'7$;GK,/F# +F8,/. 2


(*T4243b1 $'I4$73J$'3H# +F,/. 21 $2I;B$;F82A43?+-1 $Z i &a,/+-F8$;3=W87$j.03=$;GKF2G%F8,/.024GE$'GCF8(*c
. &/,/(*$'+-F$g$'. &/,/71 2_$'+#A! U v|?s-}?L% }v[-}?pHVJ} | t4SZK H&/24+-A4,/F8# 11 $gF241 2GX&/2G
F8,/. 2Ga1 $2I;B$;F82%A43=^+-1 $$'GaGC,/$'(*. 3J$ \L \L i Z

Ejemplos

i CG F8$E724(*^+-1 2*73?$;%$'& F8,/. 2*1 $E1 ^F82GHI42T*1 $'GC. # 'Gb# GC"$'& F8,/. 2*$;+@# +-"1 $'] +-,/7,/4+1 $
7&/GC$k
CREATE TYPE box (INTERNALLENGTH = 8,
INPUT = my_procedure_1, OUTPUT = my_procedure_2);
CREATE TABLE myboxes (id INT4, description box);

i GCF8$72(*+-1 2_793J$;g# +hF8,/. 2E3=3?;T%1 $&/2+-A4,F# 1d3=,/^I&/$6724+h$'&/$;(*$'+-F82Ga$'+-F8$;3?2Gk


CREATE TYPE int4array (INPUT = array_in, OUTPUT = array_out,
INTERNALLENGTH = VARIABLE, ELEMENT = int4);
CREATE TABLE myarrays (id int4, numbers int4array);

i GCF8$72(*+-1 2_793J$;g# +hF8,/. 2E1 $2I'BD$'F2%A43=^+-1 $T_&/2%# GKg$'+h# +-H1 $'] +-,/7,/4+h1 $g7&/GC$k
CREATE TYPE bigobj (INPUT = lo_filein, OUTPUT = lo_fileout,
INTERNALLENGTH = VARIABLE);
CREATE TABLE big_objs (id int4, obj bigobj);

Notas
2Ga+-2(*I43J$'Ga1 $F8,/.024Ga+-2E. # $;1 $'+"$'(*. $;e'3U. 23U$;& 793?7F$'3A# ,/+hI4CB2_58<T_GK&/2%. # $;c
1 $'+"F$'+-$'3)# +-H&/2+-A,/F# 11 $gg73?7F8$;3[$'GZ i GCF82_$'Ga1 $'I4,/1 2Vf!# $gM 2GKFA3J$;Gw73J$'gGC,/+j,/+-W8243Jc

l^l

(*3 # +F8,/. 2"3?3?T". 3?H71 bF8,/.02"I4GK$f72+# ++-2(*I43J$f!# $b72+-GC,/GKF$L$;+$