postgresql/contrib
Tom Lane d01f03a495 Preserve integer and float values accurately in (de)serialize_deflist.
Previously, this code just smashed all types of DefElem values to
strings, cavalierly reasoning that nobody would care.  But in point of
fact, most of the defGetFoo functions do distinguish among different
input syntaxes; for instance defGetBoolean will accept 1 as an integer
but not "1" as a string.  This led to CREATE/ALTER TEXT SEARCH
DICTIONARY accepting 0 and 1 as values for boolean dictionary
properties, only to have the dictionary fail at runtime.

We can upgrade this behavior by teaching serialize_deflist that it
does not need to quote T_Integer or T_Float nodes' values on output,
and then teaching deserialize_deflist to restore unquoted integer or
float values as the appropriate node type.  This should not break
anything using pg_ts_dict.dictinitoption, since that field is just
defined as being something valid to include in CREATE TEXT SEARCH
DICTIONARY.

deserialize_deflist is also used to parse the options arguments
for the ts_headline family of functions, but so far as I can see
this won't cause any problems there either: the only consumer of
that output is prsd_headline which always uses defGetString.
(Really that's a bad idea, but I won't risk changing it here.)

This is surely a bug fix, but given the lack of field complaints
I don't think it's necessary to back-patch.

Discussion: https://postgr.es/m/CAMkU=1xRcs_BUPzR0+V3WndaCAv0E_m3h6aUEJ8NF-sY1nnHsw@mail.gmail.com
2020-03-10 12:30:02 -04:00
..
adminpack Remove utils/acl.h from catalog/objectaddress.h 2020-03-10 10:27:00 +01:00
amcheck Add deduplication to nbtree. 2020-02-26 13:05:30 -08:00
auth_delay Update copyrights for 2020 2020-01-01 12:21:45 -05:00
auto_explain Update copyrights for 2020 2020-01-01 12:21:45 -05:00
bloom Introduce IndexAM fields for parallel vacuum. 2020-01-15 07:24:14 +05:30
bool_plperl Create contrib/bool_plperl to provide a bool transform for PL/Perl[U]. 2020-03-06 17:11:23 -05:00
btree_gin Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
btree_gist Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
citext Move src/backend/utils/hash/hashfn.c to src/common 2020-02-27 09:25:41 +05:30
cube Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
dblink Fix compile failure. 2020-02-24 18:43:40 -05:00
dict_int Preserve integer and float values accurately in (de)serialize_deflist. 2020-03-10 12:30:02 -04:00
dict_xsyn Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
earthdistance Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
file_fdw Remove utils/acl.h from catalog/objectaddress.h 2020-03-10 10:27:00 +01:00
fuzzystrmatch Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
hstore Introduce macros for typalign and typstorage constants. 2020-03-04 10:34:25 -05:00
hstore_plperl Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
hstore_plpython Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
intagg Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
intarray Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
isn Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
jsonb_plperl Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
jsonb_plpython In jsonb_plpython.c, suppress warning message from gcc 10. 2020-01-30 18:26:12 -05:00
lo Add tg_updatedcols to TriggerData 2020-03-09 09:34:55 +01:00
ltree Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
ltree_plpython Split all OBJS style lines in makefiles into one-line-per-entry style. 2019-11-05 14:41:07 -08:00
oid2name Add PostgreSQL home page to --help output 2020-02-28 13:12:21 +01:00
pageinspect Add an explicit test to catch changes in checksumming calculations. 2020-03-08 15:09:14 -04:00
passwordcheck Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pg_buffercache Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
pg_freespacemap Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
pg_prewarm Remove excess parens in ereport() calls 2020-01-30 13:32:04 -03:00
pg_standby pg_standby: Don't use HAVE_WORKING_LINK 2020-03-03 08:54:44 +01:00
pg_stat_statements Fix possibly-uninitialized variable. 2020-03-02 18:41:50 -05:00
pg_trgm Introduce macros for typalign and typstorage constants. 2020-03-04 10:34:25 -05:00
pg_visibility Update copyrights for 2020 2020-01-01 12:21:45 -05:00
pgcrypto Introduce macros for typalign and typstorage constants. 2020-03-04 10:34:25 -05:00
pgrowlocks Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
pgstattuple Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
postgres_fdw Fix compile failure. 2020-02-24 18:43:40 -05:00
seg Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
sepgsql Represent command completion tags as structs 2020-03-02 18:19:51 -03:00
spi Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
sslinfo Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
start-scripts Remove contrib/start-scripts/osx/. 2017-11-17 12:53:20 -05:00
tablefunc Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
tcn Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
test_decoding Stop demanding that top xact must be seen before subxact in decoding. 2020-02-19 08:15:49 +05:30
tsm_system_rows Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
tsm_system_time Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
unaccent Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
uuid-ossp Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
vacuumlo Add PostgreSQL home page to --help output 2020-02-28 13:12:21 +01:00
xml2 Remove support for upgrading extensions from "unpackaged" state. 2020-02-19 16:59:14 -05:00
Makefile Create contrib/bool_plperl to provide a bool transform for PL/Perl[U]. 2020-03-06 17:11:23 -05:00
README Rename 'gmake' to 'make' in docs and recommended commands 2014-02-12 17:29:19 -05:00
contrib-global.mk Respect TEMP_CONFIG when pg_regress_check and friends are called 2016-02-27 12:28:21 -05:00

README

The PostgreSQL contrib tree
---------------------------

This subtree contains porting tools, analysis utilities, and plug-in
features that are not part of the core PostgreSQL system, mainly
because they address a limited audience or are too experimental to be
part of the main source tree.  This does not preclude their
usefulness.

User documentation for each module appears in the main SGML
documentation.

When building from the source distribution, these modules are not
built automatically, unless you build the "world" target.  You can
also build and install them all by running "make all" and "make
install" in this directory; or to build and install just one selected
module, do the same in that module's subdirectory.

Some directories supply new user-defined functions, operators, or
types.  To make use of one of these modules, after you have installed
the code you need to register the new SQL objects in the database
system by executing a CREATE EXTENSION command.  In a fresh database,
you can simply do

    CREATE EXTENSION module_name;

See the PostgreSQL documentation for more information about this
procedure.