Funciones deterministas

En un entorno sin replicación, las funciones del sistema en este tema se manejan como no deterministas y por valor. Sin embargo, en un entorno de replicación, la lógica del software de replicación los hace deterministas y, como resultado, son gestionados por SQL. Esto es necesario para mantener sincronizados los nodos de un conjunto de replicación.

Por ejemplo, sin la modificación, si una sentencia llamara a la función CURRENT_TIMESTAMP en el primario, la réplica no sería consciente de la sentencia hasta después de que el primario la confirmara y, por lo tanto, tendría una marca de tiempo diferente. El código adicional para la función CURRENT_TIMESTAMP en el entorno de replicación permite a la réplica utilizar la misma marca de tiempo que el primario. El uso de la marca de tiempo de la primaria hace que la función CURRENT_TIMESTAMP dentro de la sentencia sea determinista.

La siguiente tabla enumera las funciones del sistema que se gestionan de forma determinista en un entorno de replicación:
Tabla 1. Funciones deterministas
Nombre de función Tipo de retorno Argumentos
ADD_MONTHS FECHA FECHA INT4
ADD_MONTHS TIMESTAMP TIMESTAMP INT4
ANTIGÜEDAD INTERVALO FECHA FECHA
ANTIGÜEDAD INTERVALO TIMESTAMP TIMESTAMP
DATE_PART INT8 VARCHAR FECHA
DATE_PART INT8 VARCHAR TIEMPO
DATE_PART INT8 VARCHAR TIMESTAMP
DATE_PART INT8 INTERVALO VARCHAR
DATE_TRUNC TIMESTAMP VARCHAR TIMESTAMP
DATE_TRUNC INTERVALO INTERVALO VARCHAR
LAST_DAY FECHA FECHA
MESES_ ENTRE NUMÉRICO TIMESTAMP TIMESTAMP
NEXT_DAY FECHA FECHA VARCHAR
NEXT_DAY TIMESTAMP TIMESTAMP VARCHAR
AHORA TIMESTAMP  
AHORA TIMESTAMP INT4
OVERLAPS BOOL TIEMPO TIEMPO TIEMPO TIEMPO
OVERLAPS BOOL INTERVALO DE TIEMPO
OVERLAPS BOOL INTERVALO DE TIEMPO TIEMPO
OVERLAPS BOOL INTERVALO DE TIEMPO INTERVALO DE TIEMPO
OVERLAPS BOOL TIMESTAMP TIMESTAMP TIMESTAMP TIMESTAMP
OVERLAPS BOOL TIMESTAMP TIMESTAMP TIMESTAMP INTERVALO
OVERLAPS BOOL TIMESTAMP INTERVALO TIMESTAMP TIMESTAMP
OVERLAPS BOOL INTERVALO TIMESTAMP INTERVALO TIMESTAMP
OVERLAPS BOOL TIMETZ TIMETZ TIMETZ TIMETZ
TIMESTAMP TIMESTAMP VARCHAR
TIMESTAMP TIMESTAMP FECHA
TIMESTAMP TIMESTAMP Fecha y hora
TIMESTAMP TIMESTAMP FECHA TIMETZ
TIMETZ TIMETZ VARCHAR
TIMETZ TIMETZ TIMESTAMP
TIMETZ TIMETZ TIMETZ
TIMEZONE VARCHAR VARCHAR TIMESTAMP
TIMEZONE VARCHAR INTERVALO TIMESTAMP
TO_CHAR VARCHAR TIMESTAMP VARCHAR
TO_CHAR NVARCHAR TIMESTAMP NVARCHAR
TO_DATE FECHA VARCHAR VARCHAR
TO_DATE FECHA NVARCHAR NVARCHAR
TO_TIMESTAMP TIMESTAMP VARCHAR VARCHAR
TO_TIMESTAMP TIMESTAMP NVARCHAR NVARCHAR