[Pgsql-ayuda] Usuarios

Alvaro Herrera alvherre@dcc.uchile.cl
Wed, 3 Sep 2003 14:51:29 -0400


On Wed, Sep 03, 2003 at 06:49:49PM +0200, Terry Yapt wrote:

> Hasta donde yo se o he leido, template0 es el corazon de PostgreSQL.
> Lo que seria el esquema SYS/SYSTEM de Oracle.  Template1 es una
> replica exacta (al menos en el inicio) de lo que es template0.  Su
> utilidad, pues puede ser variopinta, como por ejemplo:  Si creas una
> funcion en template1, esta funcion se heredara/creara en todas las
> bases de datos que crees a posteriori, pues todas parten de template1
> y son una replica de esta.  Es decir, si prentendes modificar el
> corazon del sistema utiliza template1.  Nunca toques template0.

En realidad, hasta donde recuerdo durante el bootstraping (initdb) se
crea template1 primero, y luego se hace una copia identica que se llama
template0.  A template0 se le aplica VACUUM FREEZE.

Luego, template0 se usa para encontrar las cosas que son diferentes de
template1.  Por ejemplo pg_dump hace un volcado de los tipos que existen
en template1 pero no en template0 (idem tablas, etc); de lo contrario
todos los volcados llevarian pg_class, pg_attribute, etc etc (en este
caso se podria distinguir mirando el nombre de la tabla, pero con los
operadores, los tipos de dato, etc no puedes hacer eso).

-- 
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
"Endurecerse, pero jamas perder la ternura" (E. Guevara)