PostgreSQL范围类型中的NULL与`infinity`

Coc*_*sin 4 postgresql null range infinity postgresql-9.2

PostgreSQL范围类型中'infinity'的含义是什么?指定infinity-infinity作为绑定有什么区别,或NULL?即,是infinity指定范围界限是无限的显式形式,而NULL隐式指定无限界限范围?

请参阅以下示例:

SELECT tstzrange('-infinity','infinity') && tstzrange(NULL, NULL);
 ?column?
----------
 t

SELECT tstzrange('2013-01-01 00:00:00+01', '2013-02-01 00:00:00+01')
    && tstzrange(NULL, '2013-03-01 00:00:00+01');
 ?column?
----------
 t

SELECT tstzrange('2013-01-01 00:00:00+01', '2013-02-01 00:00:00+01')
    && tstzrange('-infinity', '2013-03-01 00:00:00+01');
 ?column?
----------
 t
Run Code Online (Sandbox Code Playgroud)

Erw*_*ter 8

NULL对于重叠运算符&&和/ -infinityinfinity分别执行相同的操作.我在这里引用手册:

对任一边界使用NULL会导致范围在该边无限制.

但作为价值,NULL仍然是不同的'infinity'!

SELECT tstzrange('-infinity','infinity') = tstzrange(NULL, NULL);
Run Code Online (Sandbox Code Playgroud)

退货FALSE(不NULL,请注意!).

更多在这个SQLfiddle中.