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

PostgreSQL tsrange :est-il correct que lower_inf('(-infinity,today)'::tsrange) soit faux ?

La confusion provient de deux significations différentes de "l'infini" ici.

  1. timestamp les types acceptent valeurs spéciales pour infinity et -infinity .
  2. Les types de plage ont un concept général pour les plages sans limite inférieure/supérieure. Les fonctions pour le tester sont appelées lower_inf() et upper_inf() , mais ils testent vraiment "sans limite" dans la gamme. Les plages sans limite supérieure/inférieure incluent la valeur infinity / -infinity pour timestamp respectivement.

Le manuel :

SQL Fiddle.

Peut-être que ces fonctions devraient vraiment s'appeler quelque chose comme lower_nobound() et upper_nobound() pour éviter les confusions...