postgresql/src/backend
Dean Rasheed 519fc1bd9e Support +/- infinity in the interval data type.
This adds support for infinity to the interval data type, using the
same input/output representation as the other date/time data types
that support infinity. This allows various arithmetic operations on
infinite dates, timestamps and intervals.

The new values are represented by setting all fields of the interval
to INT32/64_MIN for -infinity, and INT32/64_MAX for +infinity. This
ensures that they compare as less/greater than all other interval
values, without the need for any special-case comparison code.

Note that, since those 2 values were formerly accepted as legal finite
intervals, pg_upgrade and dump/restore from an old database will turn
them from finite to infinite intervals. That seems OK, since those
exact values should be extremely rare in practice, and they are
outside the documented range supported by the interval type, which
gives us a certain amount of leeway.

Bump catalog version.

Joseph Koshakow, Jian He, and Ashutosh Bapat, reviewed by me.

Discussion: https://postgr.es/m/CAAvxfHea4%2BsPybKK7agDYOMo9N-Z3J6ZXf3BOM79pFsFNcRjwA%40mail.gmail.com
2023-11-14 10:58:49 +00:00
..
access Don't release index root page pin in ginFindParents(). 2023-11-13 11:44:35 -05:00
archive Redesign archive modules 2023-02-17 14:26:42 +09:00
backup Extend sendFileWithContent() to handle custom content length in basebackup.c 2023-11-13 08:26:44 +09:00
bootstrap Remove distprep 2023-11-06 15:18:04 +01:00
catalog Add support for pg_stat_reset_slru without argument 2023-11-14 09:50:52 +09:00
commands Add error about the use of FREEZE in COPY TO 2023-11-13 12:53:03 -05:00
executor Fix AFTER ROW trigger execution in MERGE cross-partition update. 2023-11-09 11:23:42 +00:00
foreign Expand some more uses of "deleg" to "delegation" or "delegated". 2023-05-21 10:55:18 -04:00
jit Make ResourceOwners more easily extensible. 2023-11-08 13:30:50 +02:00
lib Make binaryheap available to frontend code. 2023-09-18 12:18:33 -07:00
libpq Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
main Remove obsolete defense against strxfrm() bugs. 2023-04-20 13:20:14 +12:00
nodes Remove distprep 2023-11-06 15:18:04 +01:00
optimizer Fix how SJE checks against PHVs 2023-11-10 22:46:46 +02:00
parser Compute aggregate argument types correctly in transformAggregateCall(). 2023-11-06 10:38:00 -05:00
partitioning Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
po Translation updates 2023-08-07 12:39:30 +02:00
port Remove distprep 2023-11-06 15:18:04 +01:00
postmaster pgindent run to fix commits de64268561 and 5ae2087202 2023-10-30 14:52:35 -04:00
regex Add trailing commas to enum definitions 2023-10-26 09:20:54 +02:00
replication Prohibit max_slot_wal_keep_size to value other than -1 during upgrade. 2023-11-10 08:45:01 +05:30
rewrite Add TupleDescGetDefault() 2023-09-27 18:52:40 +01:00
snowball Remove distprep 2023-11-06 15:18:04 +01:00
statistics Take pg_attribute out of VacAttrStats 2023-07-03 07:18:57 +02:00
storage Remove incorrect file reference in comment. 2023-11-13 19:05:00 +09:00
tcop Introduce the concept of read-only StringInfos 2023-10-26 16:31:48 +13:00
tsearch Limit to_tsvector_byid's initial array allocation to something sane. 2023-09-25 11:50:28 -04:00
utils Support +/- infinity in the interval data type. 2023-11-14 10:58:49 +00:00
.gitignore
common.mk Blind attempt to fix LLVM dependency in the backend 2022-09-15 10:53:48 +07:00
Makefile Remove distprep 2023-11-06 15:18:04 +01:00
meson.build Add win32ver data to meson-built postgres.exe. 2023-06-12 07:40:38 -07:00
nls.mk Remove distprep 2023-11-06 15:18:04 +01:00