PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL tsrange:è corretto che lower_inf('(-infinity,today)'::tsrange) sia falso?

La confusione deriva da due diversi significati di "infinito" qui.

  1. timestamp tipi accettano valori speciali per infinity e -infinity .
  2. I tipi di intervallo hanno un concetto generale per gli intervalli senza limite inferiore/superiore. Le funzioni per verificarlo sono chiamate lower_inf() e upper_inf() , ma stanno davvero testando "nessun limite" nell'intervallo. Intervalli senza limite superiore/inferiore include il valore infinity / -infinity per timestamp rispettivamente.

Il manuale:

SQL Fiddle.

Forse quelle funzioni dovrebbero davvero essere chiamate qualcosa come lower_nobound() e upper_nobound() per evitare confusione...