Time Travel (Viaje en el tiempo)

Al momento de salir la versión 6.2 de Postgres v6.2, la característica de viaje en el tiempo (time travel) ya no es soportada. Existen varias razones para esto: impacto sobre la performance, el tamaño de almacenamiento, y un archivo pg_time que crece hasta el infinito en poco tiempo.

Nuevas características como los gatillos (triggers) le permiten a uno imitar el comportamiento del viaje en el tiempo cuando se desee, sin incurrir en una sobrecarga de trabajo (overhead) cuando no es necesario (para muchos usuarios, esto es así la mayor parte del tiempo). Vea los ejemplos en el directorio contrib para mayor información.

Time travel ha sido descartado:: : El texto restante en esta sección se conserva solamente hasta que pueda ser reescrito ajustándose al contexto de las nuevas técnicas que permiten obtener los mismos resultados. ¿Voluntarios? - thomas 12-01-1998.

Postgres soporta la idea del viaje en el tiempo. Esto permite a un usuario correr consultas históricas. Por ejemplo, para encontrar la población actual de la ciudad de Mariposa, usted debería realizar la siguiente consulta:

SELECT * FROM cities WHERE name = 'Mariposa';

+---------+------------+----------+
|name     | population | altitude |
+---------+------------+----------+
|Mariposa | 1320       | 1953     |
+---------+------------+----------+
    
Postgres automáticamente encontrará la versión del registro de Mariposa válida para este momento. Usted también podría especificar un intervalo de tiempo. Por ejemplo, para ver la población pasada y presente de la ciudad de Mariposa, usted correría la siguiente consulta:
SELECT name, population
    FROM cities['epoch', 'now']
    WHERE name = 'Mariposa';
donde "epoch" indica el comienzo del reloj del sistema.

Nota: En los sistemas Unix, esto siempre es la medianoche del 1 de enero de 1970, GMT.

Si ha realizado todos los ejemplos hasta ahora, la consulta anterior devolverá:

+---------+------------+
|name     | population |
+---------+------------+
|Mariposa | 1200       |
+---------+------------+
|Mariposa | 1320       |
+---------+------------+
    

El valor predeterminado para el comienzo del intervalo de tiempo es el menor valor que pueda representar el sistema, mientras que el valor predeterminado para el final del intervalo es la hora actual. Por lo tanto, el intervalo de tiempo utilizado en la consulta anterior podría haberse abreviado como ``[,].''