Mettre à jour :Voir plus tard, meilleure explication :
- Pourquoi PostgreSQL considère-t-il que les limites NULL dans les types de plage sont distinctes des limites infinies alors qu'elles sont fonctionnellement équivalentes ?
NULL fait la même chose pour l'opérateur de chevauchement && comme -infinity ou infinity , respectivement. Je cite le manuel ici :
L'utilisation de NULL pour l'une ou l'autre limite rend la plage illimitée de ce côté.
Mais comme valeur , NULL est toujours distinct de 'infinity' !
SELECT tstzrange('-infinity','infinity') = tstzrange(NULL, NULL);
Renvoie FALSE (pas NULL , attention !).
Plus dans ce SQLfiddle .