postgresql/src/include
Heikki Linnakangas ea1b99a661 Add 'noError' argument to encoding conversion functions.
With the 'noError' argument, you can try to convert a buffer without
knowing the character boundaries beforehand. The functions now need to
return the number of input bytes successfully converted.

This is is a backwards-incompatible change, if you have created a custom
encoding conversion with CREATE CONVERSION. This adds a check to
pg_upgrade for that, refusing the upgrade if there are any user-defined
encoding conversions. Custom conversions are very rare, there are no
commonly used extensions that I know of that uses that feature. No other
objects can depend on conversions, so if you do have one, you can fairly
easily drop it before upgrading, and recreate it after the upgrade with
an updated version.

Add regression tests for built-in encoding conversions. This doesn't cover
every conversion, but it covers all the internal functions in conv.c that
are used to implement the conversions.

Reviewed-by: John Naylor
Discussion: https://www.postgresql.org/message-id/e7861509-3960-538a-9025-b75a61188e01%40iki.fi
2021-04-01 11:45:22 +03:00
..
access Adjust design of per-worker parallel seqscan data struct 2021-03-30 10:17:09 +13:00
bootstrap Update copyright for 2021 2021-01-02 13:06:25 -05:00
catalog Add 'noError' argument to encoding conversion functions. 2021-04-01 11:45:22 +03:00
commands Extended statistics on expressions 2021-03-27 00:01:11 +01:00
common Improve reporting for syntax errors in multi-line JSON data. 2021-03-01 16:44:17 -05:00
datatype Update copyright for 2021 2021-01-02 13:06:25 -05:00
executor Revert b6002a796 2021-04-01 13:33:23 +13:00
fe_utils Refactor and generalize the ParallelSlot machinery. 2021-03-11 13:17:46 -05:00
foreign Rework planning and execution of UPDATE and DELETE. 2021-03-31 11:52:37 -04:00
jit Update copyright for 2021 2021-01-02 13:06:25 -05:00
lib Revert b6002a796 2021-04-01 13:33:23 +13:00
libpq Allow matching the DN of a client certificate for authentication 2021-03-29 15:49:39 -04:00
mb Add 'noError' argument to encoding conversion functions. 2021-04-01 11:45:22 +03:00
nodes Revert b6002a796 2021-04-01 13:33:23 +13:00
optimizer Revert b6002a796 2021-04-01 13:33:23 +13:00
parser Allow an alias to be attached to a JOIN ... USING 2021-03-31 17:10:50 +02:00
partitioning ALTER TABLE ... DETACH PARTITION ... CONCURRENTLY 2021-03-25 18:00:28 -03:00
port Add missing pthread_barrier_t. 2021-03-10 17:44:04 +13:00
portability Fix another portability bug in recent pgbench commit. 2021-03-10 23:20:41 +13:00
postmaster Remove temporary files after backend crash 2021-03-18 17:38:28 +01:00
regex Improve memory management in regex compiler. 2021-02-26 13:52:10 -05:00
replication Add a xid argument to the filter_prepare callback for output plugins. 2021-03-30 10:34:43 +05:30
rewrite Rework planning and execution of UPDATE and DELETE. 2021-03-31 11:52:37 -04:00
snowball Update snowball 2021-02-19 08:10:15 +01:00
statistics Extended statistics on expressions 2021-03-27 00:01:11 +01:00
storage Add support for asynchronous execution. 2021-03-31 18:45:00 +09:00
tcop Remove server and libpq support for old FE/BE protocol version 2. 2021-03-04 10:45:55 +02:00
tsearch Don't leak compiled regex(es) when an ispell cache entry is dropped. 2021-03-18 22:22:47 -04:00
utils Fix has_column_privilege function corner case 2021-03-31 13:55:25 -04:00
.gitignore Refactor dlopen() support 2018-09-06 11:33:04 +02:00
c.h Work around issues in MinGW-64's setjmp/longjmp support. 2021-03-15 12:34:17 -04:00
fmgr.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
funcapi.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
getaddrinfo.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
getopt_long.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
Makefile Build in some knowledge about foreign-key relationships in the catalogs. 2021-02-02 17:11:55 -05:00
miscadmin.h Make archiver process an auxiliary process. 2021-03-15 13:13:14 +09:00
pg_config.h.in Remove useless configure probe for <lz4/lz4.h>. 2021-03-22 11:20:44 -04:00
pg_config_ext.h.in Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
pg_config_manual.h Fix concurrency issues with WAL segment recycling on Windows 2021-03-22 14:02:26 +09:00
pg_getopt.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pg_trace.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pgstat.h Add support for asynchronous execution. 2021-03-31 18:45:00 +09:00
pgtar.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
pgtime.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
port.h Move bsearch_arg to src/port 2021-03-23 00:11:22 +01:00
postgres.h Mostly-cosmetic adjustments of TOAST-related macros. 2021-03-22 13:43:10 -04:00
postgres_ext.h Phase 2 of pgindent updates. 2017-06-21 15:19:25 -04:00
postgres_fe.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
rusagestub.h Update copyright for 2021 2021-01-02 13:06:25 -05:00
windowapi.h Update copyright for 2021 2021-01-02 13:06:25 -05:00