Context
dbkit currently supports timestamp/timestamptz + and - interval expressions. PostgreSQL exposes additional date, time, and interval arithmetic that dbkit rejects at compile time.
Candidate matrix
INTERVAL ± INTERVAL → INTERVAL
INTERVAL * DOUBLE PRECISION and the commutative multiplication form → INTERVAL
INTERVAL / DOUBLE PRECISION → INTERVAL
TIMESTAMP - TIMESTAMP → INTERVAL
TIMESTAMPTZ - TIMESTAMPTZ → INTERVAL
DATE ± INTEGER → DATE
DATE ± INTERVAL → TIMESTAMP
DATE - DATE → INTEGER
DATE + TIME → TIMESTAMP
TIME ± INTERVAL → TIME
TIME - TIME → INTERVAL
Requirements
- Implement only PostgreSQL-defined operand directions and result types.
- Propagate nullable operands to
Option<Output>.
- Add compile-fail coverage for invalid temporal pairs.
- Test calendar boundaries, negative intervals, and NULL operands where relevant.
- Keep implicit cross-type temporal comparisons and session-timezone-dependent comparison behavior out of scope.
PostgreSQL date/time operators
Context
dbkit currently supports timestamp/timestamptz
+and-interval expressions. PostgreSQL exposes additional date, time, and interval arithmetic that dbkit rejects at compile time.Candidate matrix
INTERVAL ± INTERVAL→INTERVALINTERVAL * DOUBLE PRECISIONand the commutative multiplication form →INTERVALINTERVAL / DOUBLE PRECISION→INTERVALTIMESTAMP - TIMESTAMP→INTERVALTIMESTAMPTZ - TIMESTAMPTZ→INTERVALDATE ± INTEGER→DATEDATE ± INTERVAL→TIMESTAMPDATE - DATE→INTEGERDATE + TIME→TIMESTAMPTIME ± INTERVAL→TIMETIME - TIME→INTERVALRequirements
Option<Output>.PostgreSQL date/time operators