Deterministische Funktionen
In einer Umgebung ohne Replikation werden die Systemfunktionen in diesem Bereich als nicht-deterministisch und wertorientiert behandelt. In einer Replikationsumgebung sind sie jedoch aufgrund der Logik der Replikationssoftware deterministisch und werden folglich von SQL verarbeitet. Dies ist notwendig, um die Knoten in einem Replikationssatz synchron zu halten.
Wenn beispielsweise eine Anweisung die Funktion CURRENT_TIMESTAMP auf dem Primärsystem aufruft, würde das Replikat die Anweisung erst nach dem Commit des Primärsystems erkennen und daher einen anderen Zeitstempel erhalten. Der zusätzliche Code für die Funktion CURRENT_TIMESTAMP in der Replikationsumgebung ermöglicht es dem Replikat, denselben Zeitstempel wie das Primärsystem zu verwenden. Die Verwendung des Zeitstempels der Primärdatei macht die Funktion CURRENT_TIMESTAMP innerhalb der Anweisung deterministisch.
| Funktionsname | Rückgabetyp | Argumente |
|---|---|---|
| ADD_MONTHS | DATUM | DATUM INT4 |
| ADD_MONTHS | TIMESTAMP (Zeitmarke) | ZEITSTEMPEL- INT4 |
| AGE | INTERVALL | DATE Datum |
| AGE | INTERVALL | TIMESTAMP Zeitmarke |
| date_part | INT8 | VARCHAR DATE |
| date_part | INT8 | VARCHAR TIME |
| date_part | INT8 | VARCHAR ZEITSTEMPEL |
| date_part | INT8 | VARCHAR-INTERVALL |
| date_trunc | TIMESTAMP (Zeitmarke) | VARCHAR ZEITSTEMPEL |
| date_trunc | INTERVALL | VARCHAR-INTERVALL |
| LAST_DAY | DATUM | DATUM |
| MONATE_ ZWISCHEN | NUMERIC | TIMESTAMP Zeitmarke |
| NEXT_DAY | DATUM | DATE VARCHAR |
| NEXT_DAY | TIMESTAMP (Zeitmarke) | ZEITSTEMPEL VARCHAR |
| JETZT | TIMESTAMP (Zeitmarke) | |
| JETZT | TIMESTAMP (Zeitmarke) | INT4 |
| OVERLAPS | BOOL | ZEIT ZEIT ZEIT ZEIT |
| OVERLAPS | BOOL | ZEIT ZEIT ZEITINTERVALL |
| OVERLAPS | BOOL | ZEITINTERVALL ZEIT ZEIT |
| OVERLAPS | BOOL | ZEITINTERVALL ZEITINTERVALL |
| OVERLAPS | BOOL | ZEITSTEMPEL ZEITSTEMPEL ZEITSTEMPEL ZEITSTEMPEL |
| OVERLAPS | BOOL | ZEITSTEMPEL ZEITSTEMPEL ZEITSTEMPEL INTERVALL |
| OVERLAPS | BOOL | ZEITSTEMPEL INTERVALL ZEITSTEMPEL ZEITSTEMPEL |
| OVERLAPS | BOOL | ZEITSTEMPELINTERVALL ZEITSTEMPELINTERVALL |
| OVERLAPS | BOOL | TIMETZ TIMETZ TIMETZ TIMETZ |
| TIMESTAMP (Zeitmarke) | TIMESTAMP (Zeitmarke) | VARCHAR |
| TIMESTAMP (Zeitmarke) | TIMESTAMP (Zeitmarke) | DATUM |
| TIMESTAMP (Zeitmarke) | TIMESTAMP (Zeitmarke) | Datum/Zeit |
| TIMESTAMP (Zeitmarke) | TIMESTAMP (Zeitmarke) | DATUM ZEIT |
| TIMETZ | TIMETZ | VARCHAR |
| TIMETZ | TIMETZ | TIMESTAMP (Zeitmarke) |
| TIMETZ | TIMETZ | TIMETZ |
| TIMEZONE | VARCHAR | VARCHAR ZEITSTEMPEL |
| TIMEZONE | VARCHAR | INTERVALL-ZEITSTEMPEL |
| to_char | VARCHAR | ZEITSTEMPEL VARCHAR |
| to_char | NVARCHAR | ZEITSTEMPEL NVARCHAR |
| TO_DATE | DATUM | VARCHAR VARCHAR |
| TO_DATE | DATUM | NVARCHAR NVARCHAR |
| to_timestamp | TIMESTAMP (Zeitmarke) | VARCHAR VARCHAR |
| to_timestamp | TIMESTAMP (Zeitmarke) | NVARCHAR NVARCHAR |