[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)