postgresql/src/include/utils
Tom Lane 0059bbe1ec Break out xxx2yyy_opt_overflow APIs for more datetime conversions.
Previous commits invented timestamp2timestamptz_opt_overflow,
date2timestamp_opt_overflow, and date2timestamptz_opt_overflow
functions to perform non-error-throwing conversions between
datetime types.  This patch completes the set by adding
timestamp2date_opt_overflow, timestamptz2date_opt_overflow,
and timestamptz2timestamp_opt_overflow.

In addition, adjust timestamp2timestamptz_opt_overflow so that it
doesn't throw error if timestamp2tm fails, but treats that as an
overflow case.  The situation probably can't arise except with an
invalid timestamp value, and I can't think of a way that that would
happen except data corruption.  However, it's pretty silly to have a
function whose entire reason for existence is to not throw errors for
out-of-range inputs nonetheless throw an error for out-of-range input.

The new APIs are not used in this patch, but will be needed in
upcoming btree_gin changes.

Author: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Arseniy Mukhin <arseniy.mukhin.dev@gmail.com>
Discussion: https://postgr.es/m/262624.1738460652@sss.pgh.pa.us
2025-07-03 16:17:08 -04:00
..
.gitignore Generate automatically code and documentation related to wait events 2023-07-05 10:53:11 +09:00
acl.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
aclchk_internal.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
array.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
arrayaccess.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
ascii.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
attoptcache.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
backend_progress.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
backend_status.h Change internal plan ID type from uint64 to int64 2025-05-31 09:40:45 +09:00
builtins.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
bytea.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
cash.h Convert *GetDatum() and DatumGet*() macros to inline functions 2022-09-27 20:50:21 +02:00
catcache.h Fix catcache invalidation of a list entry that's being built 2025-01-14 14:28:49 +02:00
combocid.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
conffiles.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
date.h Break out xxx2yyy_opt_overflow APIs for more datetime conversions. 2025-07-03 16:17:08 -04:00
datetime.h Seek zone abbreviations in the IANA data before timezone_abbreviations. 2025-01-16 14:11:19 -05:00
datum.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
dsa.h Add GetNamedDSA() and GetNamedDSHash(). 2025-07-02 11:50:52 -05:00
dynahash.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
elog.h Sync typedefs.list with the buildfarm. 2025-06-15 13:04:24 -04:00
evtcache.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
expandeddatum.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
expandedrecord.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
float.h pg_noreturn to replace pg_attribute_noreturn() 2025-03-13 12:37:26 +01:00
fmgrtab.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
formatting.h Add SQL function CASEFOLD(). 2025-01-24 14:56:22 -08:00
freepage.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
funccache.h Change SQL-language functions to use the plan cache. 2025-04-02 14:06:02 -04:00
geo_decls.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
guc.h aio: Basic subsystem initialization 2025-03-17 18:51:33 -04:00
guc_hooks.h Enable IO concurrency on all systems 2025-03-30 19:16:47 -04:00
guc_tables.h Add vacuum_truncate configuration parameter. 2025-03-20 10:16:50 -05:00
help_config.h pg_noreturn to replace pg_attribute_noreturn() 2025-03-13 12:37:26 +01:00
hsearch.h Revert "Improve accounting for memory used by shared hash tables" 2025-04-04 04:43:50 +02:00
index_selfuncs.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
inet.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
injection_point.h Add InjectionPointList() to retrieve list of injection points 2025-07-03 08:41:25 +09:00
inval.h Avoid invalidating all RelationSyncCache entries on publication rename. 2025-03-13 09:16:33 +05:30
json.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
jsonb.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
jsonfuncs.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
jsonpath.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
logtape.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
lsyscache.h Relax ordering-related hardcoded btree requirements in planning 2025-04-06 14:43:51 +02:00
memdebug.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
memutils.h Revert function to get memory context stats for processes 2025-05-23 15:44:54 +02:00
memutils_internal.h pg_noreturn to replace pg_attribute_noreturn() 2025-03-13 12:37:26 +01:00
memutils_memorychunk.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
meson.build Update copyright for 2025 2025-01-01 11:21:55 -05:00
multirangetypes.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
numeric.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
palloc.h Swap order of extern/static and pg_nodiscard 2025-03-14 07:18:07 +01:00
partcache.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
pg_crc.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
pg_locale.h Remove provider field from pg_locale_t. 2025-07-01 07:50:46 -07:00
pg_lsn.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
pg_rusage.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
pgstat_internal.h Add WAL data to backend statistics 2025-03-11 09:04:11 +09:00
pgstat_kind.h Move information about pgstats kinds into its own header pgstat_kind.h 2025-01-14 12:43:07 +09:00
pidfile.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
plancache.h Revert "Don't lock partitions pruned by initial pruning" 2025-05-22 17:02:35 +09:00
portal.h Revert "Don't lock partitions pruned by initial pruning" 2025-05-22 17:02:35 +09:00
ps_status.h Speedup and increase usability of set proc title functions 2023-02-20 16:18:27 +13:00
queryenvironment.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
rangetypes.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
regproc.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
rel.h Add support for NOT ENFORCED in foreign key constraints 2025-04-02 13:36:44 +02:00
relcache.h Assert lack of hazardous buffer locks before possible catalog read. 2025-04-17 05:00:30 -07:00
relfilenumbermap.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
relmapper.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
relptr.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
reltrigger.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
resowner.h aio: Basic subsystem initialization 2025-03-17 18:51:33 -04:00
rls.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
ruleutils.h Improve EXPLAIN's display of window functions. 2025-03-11 11:19:54 -04:00
sampling.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
selfuncs.h Relax ordering-related hardcoded btree requirements in planning 2025-04-06 14:43:51 +02:00
sharedtuplestore.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
skipsupport.h Sync typedefs.list with the buildfarm. 2025-06-15 13:04:24 -04:00
snapmgr.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
snapshot.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
sortsupport.h Simplify and generalize PrepareSortSupportFromIndexRel() 2025-03-14 10:34:08 +01:00
spccache.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
syscache.h IWYU widely useful pragmas 2025-01-15 18:57:53 +01:00
timeout.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
timestamp.h Break out xxx2yyy_opt_overflow APIs for more datetime conversions. 2025-07-03 16:17:08 -04:00
tuplesort.h Allow parallel CREATE INDEX for GIN indexes 2025-03-03 16:53:06 +01:00
tuplestore.h Harmonize function parameter names for Postgres 18. 2025-04-12 12:07:36 -04:00
typcache.h Introduce a SQL-callable function array_sort(anyarray). 2025-04-01 18:03:55 -04:00
tzparser.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
usercontext.h Perform logical replication actions as the table owner. 2023-04-04 11:25:23 -04:00
uuid.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
varbit.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
varlena.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
wait_classes.h Remove circular #include's between wait_event.h and wait_event_types.h 2025-04-28 09:08:15 +09:00
wait_event.h Remove circular #include's between wait_event.h and wait_event_types.h 2025-04-28 09:08:15 +09:00
xid8.h Update copyright for 2025 2025-01-01 11:21:55 -05:00
xml.h Update copyright for 2025 2025-01-01 11:21:55 -05:00