PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

NULL vs `infinity` dans les types de plage PostgreSQL

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 .