sql >> Base de Datos >  >> RDS >> PostgreSQL

PostgreSQL tsrange:¿es correcto que lower_inf('(-infinity,today)'::tsrange) sea falso?

La confusión surge de dos significados diferentes de "infinito" aquí.

  1. timestamp tipos aceptan valores especiales para infinity y -infinity .
  2. Los tipos de rango tienen un concepto general para rangos sin límite inferior/superior. Las funciones para probarlo se llaman lower_inf() y upper_inf() , pero realmente están probando "sin límite" en el rango. Rangos sin límite superior/inferior include el valor infinity / -infinity para timestamp respectivamente.

El manual:

SQL Fiddle.

Tal vez esas funciones realmente deberían llamarse algo así como lower_nobound() y upper_nobound() para evitar confusiones...