PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

NULL vs. „infinity“ in PostgreSQL-Bereichstypen

Aktualisieren :Siehe später, bessere Erklärung:

  • Warum betrachtet PostgreSQL NULL-Grenzen in Bereichstypen als verschieden von unendlichen Grenzen, wenn sie funktional gleichwertig sind?

NULL macht dasselbe für den Überlappungsoperator && als -infinity oder infinity , bzw. Ich zitiere das Handbuch hier:

Die Verwendung von NULL für eine der Grenzen bewirkt, dass der Bereich auf dieser Seite unbegrenzt ist.

Aber als Wert , NULL unterscheidet sich immer noch von 'infinity' !

SELECT tstzrange('-infinity','infinity') = tstzrange(NULL, NULL);

Gibt FALSE zurück (nicht NULL , wohlgemerkt!).

Mehr dazu in diesem SQLfiddle .