TEMPORAL JOIN: Better absorbing WHERE clause for range types
Temporal JOIN example:
WITH p_ext AS (SELECT *, t u FROM p),
q_ext AS (SELECT *, t v FROM q)
SELECT *
FROM (p_ext ALIGN q_ext ON q_ext.a = p_ext.a WITH (t,t)) p_adjusted
FULL OUTER JOIN
(q_ext ALIGN p_ext ON q_ext.a = p_ext.a WITH (t,t)) q_adjusted
USING (a, t)
WHERE <absorb>;
New absorb clause for range types
t = u * v OR v IS NULL OR u IS NULL;
instead of
(lower(tts) = lower(Us) OR lower(tts) = lower(Vs))
AND (upper(tts) = upper(Us) OR upper(tts) = upper(Vs))
OR Us IS NULL
OR Vs IS NULL
This issue belongs to #55