Copy disabled (too large)
Download .txt
Showing preview only (94,941K chars total). Download the full file to get everything.
Repository: zettadb/kunlun
Branch: main
Commit: c4d6a9b5cdfe
Files: 5549
Total size: 88.2 MB
Directory structure:
gitextract_klg1g4ez/
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── COPYRIGHT
├── Commons_Clause_License
├── GNUmakefile.in
├── HISTORY
├── INSTALL.PostgreSQL
├── INSTALL.kunlun.md
├── LICENSE
├── Makefile
├── NOTICE
├── README.PostgreSQL
├── README.md
├── README_CN.md
├── ReleaseNotes.md
├── aclocal.m4
├── build.sh
├── config/
│ ├── Makefile
│ ├── ac_func_accept_argtypes.m4
│ ├── ax_prog_perl_modules.m4
│ ├── ax_pthread.m4
│ ├── c-compiler.m4
│ ├── c-library.m4
│ ├── check_decls.m4
│ ├── config.guess
│ ├── config.sub
│ ├── docbook.m4
│ ├── general.m4
│ ├── install-sh
│ ├── libtool.m4
│ ├── llvm.m4
│ ├── missing
│ ├── perl.m4
│ ├── pkg.m4
│ ├── prep_buildtree
│ ├── programs.m4
│ ├── python.m4
│ └── tcl.m4
├── configure
├── configure.in
├── contrib/
│ ├── Makefile
│ ├── README
│ ├── adminpack/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── adminpack--1.0--1.1.sql
│ │ ├── adminpack--1.0.sql
│ │ ├── adminpack--1.1--2.0.sql
│ │ ├── adminpack.c
│ │ ├── adminpack.control
│ │ ├── expected/
│ │ │ └── adminpack.out
│ │ └── sql/
│ │ └── adminpack.sql
│ ├── amcheck/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── amcheck--1.0--1.1.sql
│ │ ├── amcheck--1.0.sql
│ │ ├── amcheck.control
│ │ ├── expected/
│ │ │ ├── check.out
│ │ │ └── check_btree.out
│ │ ├── sql/
│ │ │ ├── check.sql
│ │ │ └── check_btree.sql
│ │ └── verify_nbtree.c
│ ├── auth_delay/
│ │ ├── Makefile
│ │ └── auth_delay.c
│ ├── auto_explain/
│ │ ├── Makefile
│ │ └── auto_explain.c
│ ├── bloom/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── blcost.c
│ │ ├── blinsert.c
│ │ ├── bloom--1.0.sql
│ │ ├── bloom.control
│ │ ├── bloom.h
│ │ ├── blscan.c
│ │ ├── blutils.c
│ │ ├── blvacuum.c
│ │ ├── blvalidate.c
│ │ ├── expected/
│ │ │ └── bloom.out
│ │ ├── sql/
│ │ │ └── bloom.sql
│ │ └── t/
│ │ └── 001_wal.pl
│ ├── btree_gin/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── btree_gin--1.0--1.1.sql
│ │ ├── btree_gin--1.0.sql
│ │ ├── btree_gin--1.1--1.2.sql
│ │ ├── btree_gin--1.2--1.3.sql
│ │ ├── btree_gin--unpackaged--1.0.sql
│ │ ├── btree_gin.c
│ │ ├── btree_gin.control
│ │ ├── expected/
│ │ │ ├── bit.out
│ │ │ ├── bool.out
│ │ │ ├── bpchar.out
│ │ │ ├── bytea.out
│ │ │ ├── char.out
│ │ │ ├── cidr.out
│ │ │ ├── date.out
│ │ │ ├── enum.out
│ │ │ ├── float4.out
│ │ │ ├── float8.out
│ │ │ ├── inet.out
│ │ │ ├── install_btree_gin.out
│ │ │ ├── int2.out
│ │ │ ├── int4.out
│ │ │ ├── int8.out
│ │ │ ├── interval.out
│ │ │ ├── macaddr.out
│ │ │ ├── macaddr8.out
│ │ │ ├── money.out
│ │ │ ├── name.out
│ │ │ ├── numeric.out
│ │ │ ├── oid.out
│ │ │ ├── text.out
│ │ │ ├── time.out
│ │ │ ├── timestamp.out
│ │ │ ├── timestamptz.out
│ │ │ ├── timetz.out
│ │ │ ├── uuid.out
│ │ │ ├── varbit.out
│ │ │ └── varchar.out
│ │ └── sql/
│ │ ├── bit.sql
│ │ ├── bool.sql
│ │ ├── bpchar.sql
│ │ ├── bytea.sql
│ │ ├── char.sql
│ │ ├── cidr.sql
│ │ ├── date.sql
│ │ ├── enum.sql
│ │ ├── float4.sql
│ │ ├── float8.sql
│ │ ├── inet.sql
│ │ ├── install_btree_gin.sql
│ │ ├── int2.sql
│ │ ├── int4.sql
│ │ ├── int8.sql
│ │ ├── interval.sql
│ │ ├── macaddr.sql
│ │ ├── macaddr8.sql
│ │ ├── money.sql
│ │ ├── name.sql
│ │ ├── numeric.sql
│ │ ├── oid.sql
│ │ ├── text.sql
│ │ ├── time.sql
│ │ ├── timestamp.sql
│ │ ├── timestamptz.sql
│ │ ├── timetz.sql
│ │ ├── uuid.sql
│ │ ├── varbit.sql
│ │ └── varchar.sql
│ ├── btree_gist/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── btree_bit.c
│ │ ├── btree_bytea.c
│ │ ├── btree_cash.c
│ │ ├── btree_date.c
│ │ ├── btree_enum.c
│ │ ├── btree_float4.c
│ │ ├── btree_float8.c
│ │ ├── btree_gist--1.0--1.1.sql
│ │ ├── btree_gist--1.1--1.2.sql
│ │ ├── btree_gist--1.2--1.3.sql
│ │ ├── btree_gist--1.2.sql
│ │ ├── btree_gist--1.3--1.4.sql
│ │ ├── btree_gist--1.4--1.5.sql
│ │ ├── btree_gist--unpackaged--1.0.sql
│ │ ├── btree_gist.c
│ │ ├── btree_gist.control
│ │ ├── btree_gist.h
│ │ ├── btree_inet.c
│ │ ├── btree_int2.c
│ │ ├── btree_int4.c
│ │ ├── btree_int8.c
│ │ ├── btree_interval.c
│ │ ├── btree_macaddr.c
│ │ ├── btree_macaddr8.c
│ │ ├── btree_numeric.c
│ │ ├── btree_oid.c
│ │ ├── btree_text.c
│ │ ├── btree_time.c
│ │ ├── btree_ts.c
│ │ ├── btree_utils_num.c
│ │ ├── btree_utils_num.h
│ │ ├── btree_utils_var.c
│ │ ├── btree_utils_var.h
│ │ ├── btree_uuid.c
│ │ ├── data/
│ │ │ ├── bit.data
│ │ │ ├── cash.data
│ │ │ ├── char.data
│ │ │ ├── date.data
│ │ │ ├── enum.data
│ │ │ ├── float4.data
│ │ │ ├── float8.data
│ │ │ ├── inet.data
│ │ │ ├── int2.data
│ │ │ ├── int4.data
│ │ │ ├── int8.data
│ │ │ ├── interval.data
│ │ │ ├── macaddr.data
│ │ │ ├── numeric.data
│ │ │ ├── text.data
│ │ │ ├── time.data
│ │ │ ├── timestamp.data
│ │ │ ├── timestamptz.data
│ │ │ ├── timetz.data
│ │ │ ├── uuid.data
│ │ │ └── varbit.data
│ │ ├── expected/
│ │ │ ├── bit.out
│ │ │ ├── bytea.out
│ │ │ ├── cash.out
│ │ │ ├── char.out
│ │ │ ├── char_1.out
│ │ │ ├── cidr.out
│ │ │ ├── date.out
│ │ │ ├── enum.out
│ │ │ ├── float4.out
│ │ │ ├── float8.out
│ │ │ ├── inet.out
│ │ │ ├── init.out
│ │ │ ├── int2.out
│ │ │ ├── int4.out
│ │ │ ├── int8.out
│ │ │ ├── interval.out
│ │ │ ├── macaddr.out
│ │ │ ├── macaddr8.out
│ │ │ ├── not_equal.out
│ │ │ ├── numeric.out
│ │ │ ├── oid.out
│ │ │ ├── text.out
│ │ │ ├── text_1.out
│ │ │ ├── time.out
│ │ │ ├── timestamp.out
│ │ │ ├── timestamptz.out
│ │ │ ├── timetz.out
│ │ │ ├── uuid.out
│ │ │ ├── varbit.out
│ │ │ ├── varchar.out
│ │ │ └── varchar_1.out
│ │ └── sql/
│ │ ├── bit.sql
│ │ ├── bytea.sql
│ │ ├── cash.sql
│ │ ├── char.sql
│ │ ├── cidr.sql
│ │ ├── date.sql
│ │ ├── enum.sql
│ │ ├── float4.sql
│ │ ├── float8.sql
│ │ ├── inet.sql
│ │ ├── init.sql
│ │ ├── int2.sql
│ │ ├── int4.sql
│ │ ├── int8.sql
│ │ ├── interval.sql
│ │ ├── macaddr.sql
│ │ ├── macaddr8.sql
│ │ ├── not_equal.sql
│ │ ├── numeric.sql
│ │ ├── oid.sql
│ │ ├── text.sql
│ │ ├── time.sql
│ │ ├── timestamp.sql
│ │ ├── timestamptz.sql
│ │ ├── timetz.sql
│ │ ├── uuid.sql
│ │ ├── varbit.sql
│ │ └── varchar.sql
│ ├── citext/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── citext--1.0--1.1.sql
│ │ ├── citext--1.1--1.2.sql
│ │ ├── citext--1.2--1.3.sql
│ │ ├── citext--1.3--1.4.sql
│ │ ├── citext--1.4--1.5.sql
│ │ ├── citext--1.4.sql
│ │ ├── citext--unpackaged--1.0.sql
│ │ ├── citext.c
│ │ ├── citext.control
│ │ ├── expected/
│ │ │ ├── citext.out
│ │ │ └── citext_1.out
│ │ └── sql/
│ │ └── citext.sql
│ ├── contrib-global.mk
│ ├── cube/
│ │ ├── .gitignore
│ │ ├── CHANGES
│ │ ├── Makefile
│ │ ├── cube--1.0--1.1.sql
│ │ ├── cube--1.1--1.2.sql
│ │ ├── cube--1.2--1.3.sql
│ │ ├── cube--1.2.sql
│ │ ├── cube--1.3--1.4.sql
│ │ ├── cube--unpackaged--1.0.sql
│ │ ├── cube.c
│ │ ├── cube.control
│ │ ├── cubedata.h
│ │ ├── cubeparse.y
│ │ ├── cubescan.l
│ │ ├── data/
│ │ │ └── test_cube.data
│ │ ├── expected/
│ │ │ ├── cube.out
│ │ │ ├── cube_sci.out
│ │ │ └── cube_sci_1.out
│ │ └── sql/
│ │ ├── cube.sql
│ │ └── cube_sci.sql
│ ├── dblink/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dblink--1.0--1.1.sql
│ │ ├── dblink--1.1--1.2.sql
│ │ ├── dblink--1.2.sql
│ │ ├── dblink--unpackaged--1.0.sql
│ │ ├── dblink.c
│ │ ├── dblink.control
│ │ ├── expected/
│ │ │ ├── .gitignore
│ │ │ └── dblink.out
│ │ ├── input/
│ │ │ └── paths.source
│ │ ├── output/
│ │ │ └── paths.source
│ │ ├── pg_service.conf
│ │ └── sql/
│ │ ├── .gitignore
│ │ └── dblink.sql
│ ├── dict_int/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dict_int--1.0.sql
│ │ ├── dict_int--unpackaged--1.0.sql
│ │ ├── dict_int.c
│ │ ├── dict_int.control
│ │ ├── expected/
│ │ │ └── dict_int.out
│ │ └── sql/
│ │ └── dict_int.sql
│ ├── dict_xsyn/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dict_xsyn--1.0.sql
│ │ ├── dict_xsyn--unpackaged--1.0.sql
│ │ ├── dict_xsyn.c
│ │ ├── dict_xsyn.control
│ │ ├── expected/
│ │ │ └── dict_xsyn.out
│ │ ├── sql/
│ │ │ └── dict_xsyn.sql
│ │ └── xsyn_sample.rules
│ ├── earthdistance/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── earthdistance--1.0--1.1.sql
│ │ ├── earthdistance--1.1.sql
│ │ ├── earthdistance--unpackaged--1.0.sql
│ │ ├── earthdistance.c
│ │ ├── earthdistance.control
│ │ ├── expected/
│ │ │ └── earthdistance.out
│ │ └── sql/
│ │ └── earthdistance.sql
│ ├── file_fdw/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ ├── agg.bad
│ │ │ ├── agg.csv
│ │ │ ├── agg.data
│ │ │ ├── list1.csv
│ │ │ ├── list2.bad
│ │ │ ├── list2.csv
│ │ │ └── text.csv
│ │ ├── expected/
│ │ │ └── .gitignore
│ │ ├── file_fdw--1.0.sql
│ │ ├── file_fdw.c
│ │ ├── file_fdw.control
│ │ ├── input/
│ │ │ └── file_fdw.source
│ │ ├── output/
│ │ │ └── file_fdw.source
│ │ └── sql/
│ │ └── .gitignore
│ ├── fuzzystrmatch/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dmetaphone.c
│ │ ├── expected/
│ │ │ └── fuzzystrmatch.out
│ │ ├── fuzzystrmatch--1.0--1.1.sql
│ │ ├── fuzzystrmatch--1.1.sql
│ │ ├── fuzzystrmatch--unpackaged--1.0.sql
│ │ ├── fuzzystrmatch.c
│ │ ├── fuzzystrmatch.control
│ │ └── sql/
│ │ └── fuzzystrmatch.sql
│ ├── hstore/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ └── hstore.data
│ │ ├── expected/
│ │ │ └── hstore.out
│ │ ├── hstore--1.0--1.1.sql
│ │ ├── hstore--1.1--1.2.sql
│ │ ├── hstore--1.2--1.3.sql
│ │ ├── hstore--1.3--1.4.sql
│ │ ├── hstore--1.4--1.5.sql
│ │ ├── hstore--1.4.sql
│ │ ├── hstore--unpackaged--1.0.sql
│ │ ├── hstore.control
│ │ ├── hstore.h
│ │ ├── hstore_compat.c
│ │ ├── hstore_gin.c
│ │ ├── hstore_gist.c
│ │ ├── hstore_io.c
│ │ ├── hstore_op.c
│ │ └── sql/
│ │ └── hstore.sql
│ ├── hstore_plperl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── create_transform.out
│ │ │ ├── hstore_plperl.out
│ │ │ └── hstore_plperlu.out
│ │ ├── hstore_plperl--1.0.sql
│ │ ├── hstore_plperl.c
│ │ ├── hstore_plperl.control
│ │ ├── hstore_plperlu--1.0.sql
│ │ ├── hstore_plperlu.control
│ │ └── sql/
│ │ ├── create_transform.sql
│ │ ├── hstore_plperl.sql
│ │ └── hstore_plperlu.sql
│ ├── hstore_plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── hstore_plpython.out
│ │ ├── hstore_plpython.c
│ │ ├── hstore_plpython2u--1.0.sql
│ │ ├── hstore_plpython2u.control
│ │ ├── hstore_plpython3u--1.0.sql
│ │ ├── hstore_plpython3u.control
│ │ ├── hstore_plpythonu--1.0.sql
│ │ ├── hstore_plpythonu.control
│ │ └── sql/
│ │ └── hstore_plpython.sql
│ ├── intagg/
│ │ ├── Makefile
│ │ ├── intagg--1.0--1.1.sql
│ │ ├── intagg--1.1.sql
│ │ ├── intagg--unpackaged--1.0.sql
│ │ └── intagg.control
│ ├── intarray/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── _int.h
│ │ ├── _int_bool.c
│ │ ├── _int_gin.c
│ │ ├── _int_gist.c
│ │ ├── _int_op.c
│ │ ├── _int_selfuncs.c
│ │ ├── _int_tool.c
│ │ ├── _intbig_gist.c
│ │ ├── bench/
│ │ │ ├── bench.pl
│ │ │ └── create_test.pl
│ │ ├── data/
│ │ │ └── test__int.data
│ │ ├── expected/
│ │ │ └── _int.out
│ │ ├── intarray--1.0--1.1.sql
│ │ ├── intarray--1.1--1.2.sql
│ │ ├── intarray--1.2.sql
│ │ ├── intarray--unpackaged--1.0.sql
│ │ ├── intarray.control
│ │ └── sql/
│ │ └── _int.sql
│ ├── isn/
│ │ ├── .gitignore
│ │ ├── EAN13.h
│ │ ├── ISBN.h
│ │ ├── ISMN.h
│ │ ├── ISSN.h
│ │ ├── Makefile
│ │ ├── UPC.h
│ │ ├── expected/
│ │ │ └── isn.out
│ │ ├── isn--1.0--1.1.sql
│ │ ├── isn--1.1--1.2.sql
│ │ ├── isn--1.1.sql
│ │ ├── isn--unpackaged--1.0.sql
│ │ ├── isn.c
│ │ ├── isn.control
│ │ ├── isn.h
│ │ └── sql/
│ │ └── isn.sql
│ ├── jsonb_plperl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── jsonb_plperl.out
│ │ │ └── jsonb_plperlu.out
│ │ ├── jsonb_plperl--1.0.sql
│ │ ├── jsonb_plperl.c
│ │ ├── jsonb_plperl.control
│ │ ├── jsonb_plperlu--1.0.sql
│ │ ├── jsonb_plperlu.control
│ │ └── sql/
│ │ ├── jsonb_plperl.sql
│ │ └── jsonb_plperlu.sql
│ ├── jsonb_plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── jsonb_plpython.out
│ │ ├── jsonb_plpython.c
│ │ ├── jsonb_plpython2u--1.0.sql
│ │ ├── jsonb_plpython2u.control
│ │ ├── jsonb_plpython3u--1.0.sql
│ │ ├── jsonb_plpython3u.control
│ │ ├── jsonb_plpythonu--1.0.sql
│ │ ├── jsonb_plpythonu.control
│ │ └── sql/
│ │ └── jsonb_plpython.sql
│ ├── lo/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── lo.out
│ │ ├── lo--1.0--1.1.sql
│ │ ├── lo--1.1.sql
│ │ ├── lo--unpackaged--1.0.sql
│ │ ├── lo.c
│ │ ├── lo.control
│ │ ├── lo_test.sql
│ │ └── sql/
│ │ └── lo.sql
│ ├── ltree/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── _ltree_gist.c
│ │ ├── _ltree_op.c
│ │ ├── crc32.c
│ │ ├── crc32.h
│ │ ├── data/
│ │ │ ├── _ltree.data
│ │ │ └── ltree.data
│ │ ├── expected/
│ │ │ └── ltree.out
│ │ ├── lquery_op.c
│ │ ├── ltree--1.0--1.1.sql
│ │ ├── ltree--1.1.sql
│ │ ├── ltree--unpackaged--1.0.sql
│ │ ├── ltree.control
│ │ ├── ltree.h
│ │ ├── ltree_gist.c
│ │ ├── ltree_io.c
│ │ ├── ltree_op.c
│ │ ├── ltreetest.sql
│ │ ├── ltxtquery_io.c
│ │ ├── ltxtquery_op.c
│ │ └── sql/
│ │ └── ltree.sql
│ ├── ltree_plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── ltree_plpython.out
│ │ ├── ltree_plpython.c
│ │ ├── ltree_plpython2u--1.0.sql
│ │ ├── ltree_plpython2u.control
│ │ ├── ltree_plpython3u--1.0.sql
│ │ ├── ltree_plpython3u.control
│ │ ├── ltree_plpythonu--1.0.sql
│ │ ├── ltree_plpythonu.control
│ │ └── sql/
│ │ └── ltree_plpython.sql
│ ├── oid2name/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ └── oid2name.c
│ ├── pageinspect/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── brinfuncs.c
│ │ ├── btreefuncs.c
│ │ ├── expected/
│ │ │ ├── brin.out
│ │ │ ├── btree.out
│ │ │ ├── gin.out
│ │ │ ├── hash.out
│ │ │ └── page.out
│ │ ├── fsmfuncs.c
│ │ ├── ginfuncs.c
│ │ ├── hashfuncs.c
│ │ ├── heapfuncs.c
│ │ ├── pageinspect--1.0--1.1.sql
│ │ ├── pageinspect--1.1--1.2.sql
│ │ ├── pageinspect--1.2--1.3.sql
│ │ ├── pageinspect--1.3--1.4.sql
│ │ ├── pageinspect--1.4--1.5.sql
│ │ ├── pageinspect--1.5--1.6.sql
│ │ ├── pageinspect--1.5.sql
│ │ ├── pageinspect--1.6--1.7.sql
│ │ ├── pageinspect--unpackaged--1.0.sql
│ │ ├── pageinspect.control
│ │ ├── pageinspect.h
│ │ ├── rawpage.c
│ │ └── sql/
│ │ ├── brin.sql
│ │ ├── btree.sql
│ │ ├── gin.sql
│ │ ├── hash.sql
│ │ └── page.sql
│ ├── passwordcheck/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── passwordcheck.out
│ │ ├── passwordcheck.c
│ │ └── sql/
│ │ └── passwordcheck.sql
│ ├── pg_buffercache/
│ │ ├── Makefile
│ │ ├── pg_buffercache--1.0--1.1.sql
│ │ ├── pg_buffercache--1.1--1.2.sql
│ │ ├── pg_buffercache--1.2--1.3.sql
│ │ ├── pg_buffercache--1.2.sql
│ │ ├── pg_buffercache--unpackaged--1.0.sql
│ │ ├── pg_buffercache.control
│ │ └── pg_buffercache_pages.c
│ ├── pg_freespacemap/
│ │ ├── Makefile
│ │ ├── pg_freespacemap--1.0--1.1.sql
│ │ ├── pg_freespacemap--1.1--1.2.sql
│ │ ├── pg_freespacemap--1.1.sql
│ │ ├── pg_freespacemap--unpackaged--1.0.sql
│ │ ├── pg_freespacemap.c
│ │ └── pg_freespacemap.control
│ ├── pg_prewarm/
│ │ ├── Makefile
│ │ ├── autoprewarm.c
│ │ ├── pg_prewarm--1.0--1.1.sql
│ │ ├── pg_prewarm--1.1--1.2.sql
│ │ ├── pg_prewarm--1.1.sql
│ │ ├── pg_prewarm.c
│ │ └── pg_prewarm.control
│ ├── pg_standby/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ └── pg_standby.c
│ ├── pg_stat_statements/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── pg_stat_statements.out
│ │ ├── pg_stat_statements--1.0--1.1.sql
│ │ ├── pg_stat_statements--1.1--1.2.sql
│ │ ├── pg_stat_statements--1.2--1.3.sql
│ │ ├── pg_stat_statements--1.3--1.4.sql
│ │ ├── pg_stat_statements--1.4--1.5.sql
│ │ ├── pg_stat_statements--1.4.sql
│ │ ├── pg_stat_statements--1.5--1.6.sql
│ │ ├── pg_stat_statements--unpackaged--1.0.sql
│ │ ├── pg_stat_statements.c
│ │ ├── pg_stat_statements.conf
│ │ ├── pg_stat_statements.control
│ │ └── sql/
│ │ └── pg_stat_statements.sql
│ ├── pg_trgm/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ ├── trgm.data
│ │ │ └── trgm2.data
│ │ ├── expected/
│ │ │ ├── pg_strict_word_trgm.out
│ │ │ ├── pg_trgm.out
│ │ │ └── pg_word_trgm.out
│ │ ├── pg_trgm--1.0--1.1.sql
│ │ ├── pg_trgm--1.1--1.2.sql
│ │ ├── pg_trgm--1.2--1.3.sql
│ │ ├── pg_trgm--1.3--1.4.sql
│ │ ├── pg_trgm--1.3.sql
│ │ ├── pg_trgm--unpackaged--1.0.sql
│ │ ├── pg_trgm.control
│ │ ├── sql/
│ │ │ ├── pg_strict_word_trgm.sql
│ │ │ ├── pg_trgm.sql
│ │ │ └── pg_word_trgm.sql
│ │ ├── trgm.h
│ │ ├── trgm_gin.c
│ │ ├── trgm_gist.c
│ │ ├── trgm_op.c
│ │ └── trgm_regexp.c
│ ├── pg_visibility/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── pg_visibility.out
│ │ ├── pg_visibility--1.0--1.1.sql
│ │ ├── pg_visibility--1.1--1.2.sql
│ │ ├── pg_visibility--1.1.sql
│ │ ├── pg_visibility.c
│ │ ├── pg_visibility.control
│ │ └── sql/
│ │ └── pg_visibility.sql
│ ├── pgcrypto/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── blf.c
│ │ ├── blf.h
│ │ ├── crypt-blowfish.c
│ │ ├── crypt-des.c
│ │ ├── crypt-gensalt.c
│ │ ├── crypt-md5.c
│ │ ├── expected/
│ │ │ ├── 3des.out
│ │ │ ├── blowfish.out
│ │ │ ├── cast5.out
│ │ │ ├── crypt-blowfish.out
│ │ │ ├── crypt-des.out
│ │ │ ├── crypt-md5.out
│ │ │ ├── crypt-xdes.out
│ │ │ ├── des.out
│ │ │ ├── hmac-md5.out
│ │ │ ├── hmac-sha1.out
│ │ │ ├── init.out
│ │ │ ├── md5.out
│ │ │ ├── pgp-armor.out
│ │ │ ├── pgp-compression.out
│ │ │ ├── pgp-compression_1.out
│ │ │ ├── pgp-decrypt.out
│ │ │ ├── pgp-decrypt_1.out
│ │ │ ├── pgp-encrypt.out
│ │ │ ├── pgp-encrypt_1.out
│ │ │ ├── pgp-info.out
│ │ │ ├── pgp-pubkey-decrypt.out
│ │ │ ├── pgp-pubkey-encrypt.out
│ │ │ ├── pgp-pubkey-encrypt_1.out
│ │ │ ├── pgp-zlib-DISABLED.out
│ │ │ ├── rijndael.out
│ │ │ ├── sha1.out
│ │ │ └── sha2.out
│ │ ├── imath.c
│ │ ├── imath.h
│ │ ├── internal-sha2.c
│ │ ├── internal.c
│ │ ├── mbuf.c
│ │ ├── mbuf.h
│ │ ├── md5.c
│ │ ├── md5.h
│ │ ├── openssl.c
│ │ ├── pgcrypto--1.0--1.1.sql
│ │ ├── pgcrypto--1.1--1.2.sql
│ │ ├── pgcrypto--1.2--1.3.sql
│ │ ├── pgcrypto--1.3.sql
│ │ ├── pgcrypto--unpackaged--1.0.sql
│ │ ├── pgcrypto.c
│ │ ├── pgcrypto.control
│ │ ├── pgcrypto.h
│ │ ├── pgp-armor.c
│ │ ├── pgp-cfb.c
│ │ ├── pgp-compress.c
│ │ ├── pgp-decrypt.c
│ │ ├── pgp-encrypt.c
│ │ ├── pgp-info.c
│ │ ├── pgp-mpi-internal.c
│ │ ├── pgp-mpi-openssl.c
│ │ ├── pgp-mpi.c
│ │ ├── pgp-pgsql.c
│ │ ├── pgp-pubdec.c
│ │ ├── pgp-pubenc.c
│ │ ├── pgp-pubkey.c
│ │ ├── pgp-s2k.c
│ │ ├── pgp.c
│ │ ├── pgp.h
│ │ ├── px-crypt.c
│ │ ├── px-crypt.h
│ │ ├── px-hmac.c
│ │ ├── px.c
│ │ ├── px.h
│ │ ├── rijndael.c
│ │ ├── rijndael.h
│ │ ├── rijndael.tbl
│ │ ├── sha1.c
│ │ ├── sha1.h
│ │ └── sql/
│ │ ├── 3des.sql
│ │ ├── blowfish.sql
│ │ ├── cast5.sql
│ │ ├── crypt-blowfish.sql
│ │ ├── crypt-des.sql
│ │ ├── crypt-md5.sql
│ │ ├── crypt-xdes.sql
│ │ ├── des.sql
│ │ ├── hmac-md5.sql
│ │ ├── hmac-sha1.sql
│ │ ├── init.sql
│ │ ├── md5.sql
│ │ ├── pgp-armor.sql
│ │ ├── pgp-compression.sql
│ │ ├── pgp-decrypt.sql
│ │ ├── pgp-encrypt.sql
│ │ ├── pgp-info.sql
│ │ ├── pgp-pubkey-decrypt.sql
│ │ ├── pgp-pubkey-encrypt.sql
│ │ ├── pgp-zlib-DISABLED.sql
│ │ ├── rijndael.sql
│ │ ├── sha1.sql
│ │ └── sha2.sql
│ ├── pgrowlocks/
│ │ ├── Makefile
│ │ ├── pgrowlocks--1.0--1.1.sql
│ │ ├── pgrowlocks--1.1--1.2.sql
│ │ ├── pgrowlocks--1.2.sql
│ │ ├── pgrowlocks--unpackaged--1.0.sql
│ │ ├── pgrowlocks.c
│ │ └── pgrowlocks.control
│ ├── pgstattuple/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── pgstattuple.out
│ │ ├── pgstatapprox.c
│ │ ├── pgstatindex.c
│ │ ├── pgstattuple--1.0--1.1.sql
│ │ ├── pgstattuple--1.1--1.2.sql
│ │ ├── pgstattuple--1.2--1.3.sql
│ │ ├── pgstattuple--1.3--1.4.sql
│ │ ├── pgstattuple--1.4--1.5.sql
│ │ ├── pgstattuple--1.4.sql
│ │ ├── pgstattuple--unpackaged--1.0.sql
│ │ ├── pgstattuple.c
│ │ ├── pgstattuple.control
│ │ └── sql/
│ │ └── pgstattuple.sql
│ ├── postgres_fdw/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── connection.c
│ │ ├── deparse.c
│ │ ├── expected/
│ │ │ └── postgres_fdw.out
│ │ ├── option.c
│ │ ├── postgres_fdw--1.0.sql
│ │ ├── postgres_fdw.c
│ │ ├── postgres_fdw.control
│ │ ├── postgres_fdw.h
│ │ ├── shippable.c
│ │ └── sql/
│ │ └── postgres_fdw.sql
│ ├── seg/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ └── test_seg.data
│ │ ├── expected/
│ │ │ ├── seg.out
│ │ │ └── seg_1.out
│ │ ├── seg--1.0--1.1.sql
│ │ ├── seg--1.1--1.2.sql
│ │ ├── seg--1.1.sql
│ │ ├── seg--1.2--1.3.sql
│ │ ├── seg--unpackaged--1.0.sql
│ │ ├── seg-validate.pl
│ │ ├── seg.c
│ │ ├── seg.control
│ │ ├── segdata.h
│ │ ├── segparse.y
│ │ ├── segscan.l
│ │ ├── sort-segments.pl
│ │ └── sql/
│ │ └── seg.sql
│ ├── sepgsql/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── database.c
│ │ ├── dml.c
│ │ ├── expected/
│ │ │ ├── alter.out
│ │ │ ├── ddl.out
│ │ │ ├── dml.out
│ │ │ ├── label.out
│ │ │ └── misc.out
│ │ ├── hooks.c
│ │ ├── label.c
│ │ ├── launcher
│ │ ├── proc.c
│ │ ├── relation.c
│ │ ├── schema.c
│ │ ├── selinux.c
│ │ ├── sepgsql-regtest.te
│ │ ├── sepgsql.h
│ │ ├── sepgsql.sql.in
│ │ ├── sql/
│ │ │ ├── alter.sql
│ │ │ ├── ddl.sql
│ │ │ ├── dml.sql
│ │ │ ├── label.sql
│ │ │ └── misc.sql
│ │ ├── test_sepgsql
│ │ └── uavc.c
│ ├── spi/
│ │ ├── Makefile
│ │ ├── autoinc--1.0.sql
│ │ ├── autoinc--unpackaged--1.0.sql
│ │ ├── autoinc.c
│ │ ├── autoinc.control
│ │ ├── autoinc.example
│ │ ├── insert_username--1.0.sql
│ │ ├── insert_username--unpackaged--1.0.sql
│ │ ├── insert_username.c
│ │ ├── insert_username.control
│ │ ├── insert_username.example
│ │ ├── moddatetime--1.0.sql
│ │ ├── moddatetime--unpackaged--1.0.sql
│ │ ├── moddatetime.c
│ │ ├── moddatetime.control
│ │ ├── moddatetime.example
│ │ ├── refint--1.0.sql
│ │ ├── refint--unpackaged--1.0.sql
│ │ ├── refint.c
│ │ ├── refint.control
│ │ ├── refint.example
│ │ ├── timetravel--1.0.sql
│ │ ├── timetravel--unpackaged--1.0.sql
│ │ ├── timetravel.c
│ │ ├── timetravel.control
│ │ └── timetravel.example
│ ├── sslinfo/
│ │ ├── Makefile
│ │ ├── sslinfo--1.0--1.1.sql
│ │ ├── sslinfo--1.1--1.2.sql
│ │ ├── sslinfo--1.2.sql
│ │ ├── sslinfo--unpackaged--1.0.sql
│ │ ├── sslinfo.c
│ │ └── sslinfo.control
│ ├── start-scripts/
│ │ ├── freebsd
│ │ ├── linux
│ │ └── macos/
│ │ ├── README
│ │ ├── org.postgresql.postgres.plist
│ │ └── postgres-wrapper.sh
│ ├── tablefunc/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ ├── connectby_int.data
│ │ │ ├── connectby_text.data
│ │ │ └── ct.data
│ │ ├── expected/
│ │ │ └── tablefunc.out
│ │ ├── sql/
│ │ │ └── tablefunc.sql
│ │ ├── tablefunc--1.0.sql
│ │ ├── tablefunc--unpackaged--1.0.sql
│ │ ├── tablefunc.c
│ │ ├── tablefunc.control
│ │ └── tablefunc.h
│ ├── tcn/
│ │ ├── Makefile
│ │ ├── tcn--1.0.sql
│ │ ├── tcn.c
│ │ └── tcn.control
│ ├── test_decoding/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── binary.out
│ │ │ ├── concurrent_ddl_dml.out
│ │ │ ├── ddl.out
│ │ │ ├── decoding_in_xact.out
│ │ │ ├── decoding_into_rel.out
│ │ │ ├── delayed_startup.out
│ │ │ ├── messages.out
│ │ │ ├── mxact.out
│ │ │ ├── oldest_xmin.out
│ │ │ ├── ondisk_startup.out
│ │ │ ├── permissions.out
│ │ │ ├── prepared.out
│ │ │ ├── replorigin.out
│ │ │ ├── rewrite.out
│ │ │ ├── slot.out
│ │ │ ├── snapshot_transfer.out
│ │ │ ├── spill.out
│ │ │ ├── time.out
│ │ │ ├── toast.out
│ │ │ ├── truncate.out
│ │ │ └── xact.out
│ │ ├── logical.conf
│ │ ├── specs/
│ │ │ ├── concurrent_ddl_dml.spec
│ │ │ ├── delayed_startup.spec
│ │ │ ├── mxact.spec
│ │ │ ├── oldest_xmin.spec
│ │ │ ├── ondisk_startup.spec
│ │ │ └── snapshot_transfer.spec
│ │ ├── sql/
│ │ │ ├── binary.sql
│ │ │ ├── ddl.sql
│ │ │ ├── decoding_in_xact.sql
│ │ │ ├── decoding_into_rel.sql
│ │ │ ├── messages.sql
│ │ │ ├── permissions.sql
│ │ │ ├── prepared.sql
│ │ │ ├── replorigin.sql
│ │ │ ├── rewrite.sql
│ │ │ ├── slot.sql
│ │ │ ├── spill.sql
│ │ │ ├── time.sql
│ │ │ ├── toast.sql
│ │ │ ├── truncate.sql
│ │ │ └── xact.sql
│ │ └── test_decoding.c
│ ├── tsm_system_rows/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── tsm_system_rows.out
│ │ ├── sql/
│ │ │ └── tsm_system_rows.sql
│ │ ├── tsm_system_rows--1.0.sql
│ │ ├── tsm_system_rows.c
│ │ └── tsm_system_rows.control
│ ├── tsm_system_time/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── tsm_system_time.out
│ │ ├── sql/
│ │ │ └── tsm_system_time.sql
│ │ ├── tsm_system_time--1.0.sql
│ │ ├── tsm_system_time.c
│ │ └── tsm_system_time.control
│ ├── unaccent/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── unaccent.out
│ │ ├── generate_unaccent_rules.py
│ │ ├── sql/
│ │ │ └── unaccent.sql
│ │ ├── unaccent--1.0--1.1.sql
│ │ ├── unaccent--1.1.sql
│ │ ├── unaccent--unpackaged--1.0.sql
│ │ ├── unaccent.c
│ │ ├── unaccent.control
│ │ └── unaccent.rules
│ ├── uuid-ossp/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── uuid_ossp.out
│ │ ├── sql/
│ │ │ └── uuid_ossp.sql
│ │ ├── uuid-ossp--1.0--1.1.sql
│ │ ├── uuid-ossp--1.1.sql
│ │ ├── uuid-ossp--unpackaged--1.0.sql
│ │ ├── uuid-ossp.c
│ │ └── uuid-ossp.control
│ ├── vacuumlo/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ └── vacuumlo.c
│ └── xml2/
│ ├── .gitignore
│ ├── Makefile
│ ├── expected/
│ │ ├── xml2.out
│ │ └── xml2_1.out
│ ├── sql/
│ │ └── xml2.sql
│ ├── xml2--1.0--1.1.sql
│ ├── xml2--1.1.sql
│ ├── xml2--unpackaged--1.0.sql
│ ├── xml2.control
│ ├── xpath.c
│ └── xslt_proc.c
├── doc/
│ ├── KNOWN_BUGS
│ ├── MISSING_FEATURES
│ ├── Makefile
│ ├── TODO
│ ├── bug.template
│ └── src/
│ ├── Makefile
│ └── sgml/
│ ├── .gitignore
│ ├── Makefile
│ ├── README.links
│ ├── acronyms.sgml
│ ├── adminpack.sgml
│ ├── advanced.sgml
│ ├── amcheck.sgml
│ ├── arch-dev.sgml
│ ├── array.sgml
│ ├── auth-delay.sgml
│ ├── auto-explain.sgml
│ ├── backup.sgml
│ ├── bgworker.sgml
│ ├── biblio.sgml
│ ├── bki.sgml
│ ├── bloom.sgml
│ ├── brin.sgml
│ ├── btree-gin.sgml
│ ├── btree-gist.sgml
│ ├── btree.sgml
│ ├── catalogs.sgml
│ ├── charset.sgml
│ ├── citext.sgml
│ ├── client-auth.sgml
│ ├── config.sgml
│ ├── contrib-spi.sgml
│ ├── contrib.sgml
│ ├── cube.sgml
│ ├── custom-scan.sgml
│ ├── datatype.sgml
│ ├── datetime.sgml
│ ├── dblink.sgml
│ ├── ddl.sgml
│ ├── dfunc.sgml
│ ├── dict-int.sgml
│ ├── dict-xsyn.sgml
│ ├── diskusage.sgml
│ ├── dml.sgml
│ ├── docguide.sgml
│ ├── earthdistance.sgml
│ ├── ecpg.sgml
│ ├── errcodes.sgml
│ ├── event-trigger.sgml
│ ├── extend.sgml
│ ├── external-projects.sgml
│ ├── fdwhandler.sgml
│ ├── features.sgml
│ ├── file-fdw.sgml
│ ├── filelist.sgml
│ ├── func.sgml
│ ├── fuzzystrmatch.sgml
│ ├── generate-errcodes-table.pl
│ ├── generic-wal.sgml
│ ├── geqo.sgml
│ ├── gin.sgml
│ ├── gist.sgml
│ ├── high-availability.sgml
│ ├── history.sgml
│ ├── hstore.sgml
│ ├── indexam.sgml
│ ├── indices.sgml
│ ├── info.sgml
│ ├── information_schema.sgml
│ ├── install-windows.sgml
│ ├── installation.sgml
│ ├── intagg.sgml
│ ├── intarray.sgml
│ ├── intro.sgml
│ ├── isn.sgml
│ ├── jit.sgml
│ ├── json.sgml
│ ├── keywords.sgml
│ ├── legal.sgml
│ ├── libpq.sgml
│ ├── lo.sgml
│ ├── lobj.sgml
│ ├── logical-replication.sgml
│ ├── logicaldecoding.sgml
│ ├── ltree.sgml
│ ├── maintenance.sgml
│ ├── manage-ag.sgml
│ ├── mk_feature_tables.pl
│ ├── monitoring.sgml
│ ├── mvcc.sgml
│ ├── nls.sgml
│ ├── notation.sgml
│ ├── oid2name.sgml
│ ├── pageinspect.sgml
│ ├── parallel.sgml
│ ├── passwordcheck.sgml
│ ├── perform.sgml
│ ├── pgbuffercache.sgml
│ ├── pgcrypto.sgml
│ ├── pgfreespacemap.sgml
│ ├── pgprewarm.sgml
│ ├── pgrowlocks.sgml
│ ├── pgstandby.sgml
│ ├── pgstatstatements.sgml
│ ├── pgstattuple.sgml
│ ├── pgtrgm.sgml
│ ├── pgvisibility.sgml
│ ├── planstats.sgml
│ ├── plhandler.sgml
│ ├── plperl.sgml
│ ├── plpgsql.sgml
│ ├── plpython.sgml
│ ├── pltcl.sgml
│ ├── postgres-fdw.sgml
│ ├── postgres.sgml
│ ├── problems.sgml
│ ├── protocol.sgml
│ ├── queries.sgml
│ ├── query.sgml
│ ├── rangetypes.sgml
│ ├── recovery-config.sgml
│ ├── ref/
│ │ ├── abort.sgml
│ │ ├── allfiles.sgml
│ │ ├── alter_aggregate.sgml
│ │ ├── alter_collation.sgml
│ │ ├── alter_conversion.sgml
│ │ ├── alter_database.sgml
│ │ ├── alter_default_privileges.sgml
│ │ ├── alter_domain.sgml
│ │ ├── alter_event_trigger.sgml
│ │ ├── alter_extension.sgml
│ │ ├── alter_foreign_data_wrapper.sgml
│ │ ├── alter_foreign_table.sgml
│ │ ├── alter_function.sgml
│ │ ├── alter_group.sgml
│ │ ├── alter_index.sgml
│ │ ├── alter_language.sgml
│ │ ├── alter_large_object.sgml
│ │ ├── alter_materialized_view.sgml
│ │ ├── alter_opclass.sgml
│ │ ├── alter_operator.sgml
│ │ ├── alter_opfamily.sgml
│ │ ├── alter_policy.sgml
│ │ ├── alter_procedure.sgml
│ │ ├── alter_publication.sgml
│ │ ├── alter_role.sgml
│ │ ├── alter_routine.sgml
│ │ ├── alter_rule.sgml
│ │ ├── alter_schema.sgml
│ │ ├── alter_sequence.sgml
│ │ ├── alter_server.sgml
│ │ ├── alter_statistics.sgml
│ │ ├── alter_subscription.sgml
│ │ ├── alter_system.sgml
│ │ ├── alter_table.sgml
│ │ ├── alter_tablespace.sgml
│ │ ├── alter_trigger.sgml
│ │ ├── alter_tsconfig.sgml
│ │ ├── alter_tsdictionary.sgml
│ │ ├── alter_tsparser.sgml
│ │ ├── alter_tstemplate.sgml
│ │ ├── alter_type.sgml
│ │ ├── alter_user.sgml
│ │ ├── alter_user_mapping.sgml
│ │ ├── alter_view.sgml
│ │ ├── analyze.sgml
│ │ ├── begin.sgml
│ │ ├── call.sgml
│ │ ├── checkpoint.sgml
│ │ ├── close.sgml
│ │ ├── cluster.sgml
│ │ ├── clusterdb.sgml
│ │ ├── comment.sgml
│ │ ├── commit.sgml
│ │ ├── commit_prepared.sgml
│ │ ├── copy.sgml
│ │ ├── create_access_method.sgml
│ │ ├── create_aggregate.sgml
│ │ ├── create_cast.sgml
│ │ ├── create_collation.sgml
│ │ ├── create_conversion.sgml
│ │ ├── create_database.sgml
│ │ ├── create_domain.sgml
│ │ ├── create_event_trigger.sgml
│ │ ├── create_extension.sgml
│ │ ├── create_foreign_data_wrapper.sgml
│ │ ├── create_foreign_table.sgml
│ │ ├── create_function.sgml
│ │ ├── create_group.sgml
│ │ ├── create_index.sgml
│ │ ├── create_language.sgml
│ │ ├── create_materialized_view.sgml
│ │ ├── create_opclass.sgml
│ │ ├── create_operator.sgml
│ │ ├── create_opfamily.sgml
│ │ ├── create_policy.sgml
│ │ ├── create_procedure.sgml
│ │ ├── create_publication.sgml
│ │ ├── create_role.sgml
│ │ ├── create_rule.sgml
│ │ ├── create_schema.sgml
│ │ ├── create_sequence.sgml
│ │ ├── create_server.sgml
│ │ ├── create_statistics.sgml
│ │ ├── create_subscription.sgml
│ │ ├── create_table.sgml
│ │ ├── create_table_as.sgml
│ │ ├── create_tablespace.sgml
│ │ ├── create_transform.sgml
│ │ ├── create_trigger.sgml
│ │ ├── create_tsconfig.sgml
│ │ ├── create_tsdictionary.sgml
│ │ ├── create_tsparser.sgml
│ │ ├── create_tstemplate.sgml
│ │ ├── create_type.sgml
│ │ ├── create_user.sgml
│ │ ├── create_user_mapping.sgml
│ │ ├── create_view.sgml
│ │ ├── createdb.sgml
│ │ ├── createuser.sgml
│ │ ├── deallocate.sgml
│ │ ├── declare.sgml
│ │ ├── delete.sgml
│ │ ├── discard.sgml
│ │ ├── do.sgml
│ │ ├── drop_access_method.sgml
│ │ ├── drop_aggregate.sgml
│ │ ├── drop_cast.sgml
│ │ ├── drop_collation.sgml
│ │ ├── drop_conversion.sgml
│ │ ├── drop_database.sgml
│ │ ├── drop_domain.sgml
│ │ ├── drop_event_trigger.sgml
│ │ ├── drop_extension.sgml
│ │ ├── drop_foreign_data_wrapper.sgml
│ │ ├── drop_foreign_table.sgml
│ │ ├── drop_function.sgml
│ │ ├── drop_group.sgml
│ │ ├── drop_index.sgml
│ │ ├── drop_language.sgml
│ │ ├── drop_materialized_view.sgml
│ │ ├── drop_opclass.sgml
│ │ ├── drop_operator.sgml
│ │ ├── drop_opfamily.sgml
│ │ ├── drop_owned.sgml
│ │ ├── drop_policy.sgml
│ │ ├── drop_procedure.sgml
│ │ ├── drop_publication.sgml
│ │ ├── drop_role.sgml
│ │ ├── drop_routine.sgml
│ │ ├── drop_rule.sgml
│ │ ├── drop_schema.sgml
│ │ ├── drop_sequence.sgml
│ │ ├── drop_server.sgml
│ │ ├── drop_statistics.sgml
│ │ ├── drop_subscription.sgml
│ │ ├── drop_table.sgml
│ │ ├── drop_tablespace.sgml
│ │ ├── drop_transform.sgml
│ │ ├── drop_trigger.sgml
│ │ ├── drop_tsconfig.sgml
│ │ ├── drop_tsdictionary.sgml
│ │ ├── drop_tsparser.sgml
│ │ ├── drop_tstemplate.sgml
│ │ ├── drop_type.sgml
│ │ ├── drop_user.sgml
│ │ ├── drop_user_mapping.sgml
│ │ ├── drop_view.sgml
│ │ ├── dropdb.sgml
│ │ ├── dropuser.sgml
│ │ ├── ecpg-ref.sgml
│ │ ├── end.sgml
│ │ ├── execute.sgml
│ │ ├── explain.sgml
│ │ ├── fetch.sgml
│ │ ├── grant.sgml
│ │ ├── import_foreign_schema.sgml
│ │ ├── initdb.sgml
│ │ ├── insert.sgml
│ │ ├── listen.sgml
│ │ ├── load.sgml
│ │ ├── lock.sgml
│ │ ├── move.sgml
│ │ ├── notify.sgml
│ │ ├── pg_basebackup.sgml
│ │ ├── pg_config-ref.sgml
│ │ ├── pg_controldata.sgml
│ │ ├── pg_ctl-ref.sgml
│ │ ├── pg_dump.sgml
│ │ ├── pg_dumpall.sgml
│ │ ├── pg_isready.sgml
│ │ ├── pg_receivewal.sgml
│ │ ├── pg_recvlogical.sgml
│ │ ├── pg_resetwal.sgml
│ │ ├── pg_restore.sgml
│ │ ├── pg_rewind.sgml
│ │ ├── pg_verify_checksums.sgml
│ │ ├── pg_waldump.sgml
│ │ ├── pgarchivecleanup.sgml
│ │ ├── pgbench.sgml
│ │ ├── pgtestfsync.sgml
│ │ ├── pgtesttiming.sgml
│ │ ├── pgupgrade.sgml
│ │ ├── postgres-ref.sgml
│ │ ├── postmaster.sgml
│ │ ├── prepare.sgml
│ │ ├── prepare_transaction.sgml
│ │ ├── psql-ref.sgml
│ │ ├── reassign_owned.sgml
│ │ ├── refresh_materialized_view.sgml
│ │ ├── reindex.sgml
│ │ ├── reindexdb.sgml
│ │ ├── release_savepoint.sgml
│ │ ├── reset.sgml
│ │ ├── revoke.sgml
│ │ ├── rollback.sgml
│ │ ├── rollback_prepared.sgml
│ │ ├── rollback_to.sgml
│ │ ├── savepoint.sgml
│ │ ├── security_label.sgml
│ │ ├── select.sgml
│ │ ├── select_into.sgml
│ │ ├── set.sgml
│ │ ├── set_constraints.sgml
│ │ ├── set_role.sgml
│ │ ├── set_session_auth.sgml
│ │ ├── set_transaction.sgml
│ │ ├── show.sgml
│ │ ├── start_transaction.sgml
│ │ ├── truncate.sgml
│ │ ├── unlisten.sgml
│ │ ├── update.sgml
│ │ ├── vacuum.sgml
│ │ ├── vacuumdb.sgml
│ │ └── values.sgml
│ ├── reference.sgml
│ ├── regress.sgml
│ ├── release-11.sgml
│ ├── release.sgml
│ ├── replication-origins.sgml
│ ├── rowtypes.sgml
│ ├── rules.sgml
│ ├── runtime.sgml
│ ├── seg.sgml
│ ├── sepgsql.sgml
│ ├── sourcerepo.sgml
│ ├── sources.sgml
│ ├── spgist.sgml
│ ├── spi.sgml
│ ├── sslinfo.sgml
│ ├── standalone-install.xml
│ ├── standalone-profile.xsl
│ ├── start.sgml
│ ├── storage.sgml
│ ├── stylesheet-common.xsl
│ ├── stylesheet-fo.xsl
│ ├── stylesheet-hh.xsl
│ ├── stylesheet-html-common.xsl
│ ├── stylesheet-html-nochunk.xsl
│ ├── stylesheet-man.xsl
│ ├── stylesheet-speedup-common.xsl
│ ├── stylesheet-speedup-xhtml.xsl
│ ├── stylesheet-text.xsl
│ ├── stylesheet.css
│ ├── stylesheet.xsl
│ ├── syntax.sgml
│ ├── tablefunc.sgml
│ ├── tablesample-method.sgml
│ ├── tcn.sgml
│ ├── test-decoding.sgml
│ ├── textsearch.sgml
│ ├── trigger.sgml
│ ├── tsm-system-rows.sgml
│ ├── tsm-system-time.sgml
│ ├── typeconv.sgml
│ ├── unaccent.sgml
│ ├── user-manag.sgml
│ ├── uuid-ossp.sgml
│ ├── vacuumlo.sgml
│ ├── wal.sgml
│ ├── xaggr.sgml
│ ├── xfunc.sgml
│ ├── xindex.sgml
│ ├── xml2.sgml
│ ├── xoper.sgml
│ ├── xplang.sgml
│ └── xtypes.sgml
├── post-install.sh
├── resources/
│ ├── mysql_client.tgz
│ ├── postgresql-42.2.16.jar
│ └── postgresql.conf
├── scripts/
│ ├── add_comp_nodes.py
│ ├── add_comp_self.py
│ ├── add_shards.py
│ ├── bootstrap.py
│ ├── common.py
│ ├── comp-nodes.json
│ ├── create_cluster.py
│ ├── install_pg.py
│ ├── meta-shard.json
│ ├── meta_inuse.sql
│ ├── shards-config.json
│ ├── start_pg.py
│ └── stop_pg.py
└── src/
├── .gitignore
├── DEVELOPERS
├── Makefile
├── Makefile.global.in
├── Makefile.shlib
├── backend/
│ ├── .gitignore
│ ├── Makefile
│ ├── access/
│ │ ├── Makefile
│ │ ├── brin/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── brin.c
│ │ │ ├── brin_inclusion.c
│ │ │ ├── brin_minmax.c
│ │ │ ├── brin_pageops.c
│ │ │ ├── brin_revmap.c
│ │ │ ├── brin_tuple.c
│ │ │ ├── brin_validate.c
│ │ │ └── brin_xlog.c
│ │ ├── common/
│ │ │ ├── Makefile
│ │ │ ├── bufmask.c
│ │ │ ├── heaptuple.c
│ │ │ ├── indextuple.c
│ │ │ ├── printsimple.c
│ │ │ ├── printtup.c
│ │ │ ├── reloptions.c
│ │ │ ├── remotetup.c
│ │ │ ├── scankey.c
│ │ │ ├── session.c
│ │ │ ├── tupconvert.c
│ │ │ └── tupdesc.c
│ │ ├── gin/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── ginarrayproc.c
│ │ │ ├── ginbtree.c
│ │ │ ├── ginbulk.c
│ │ │ ├── gindatapage.c
│ │ │ ├── ginentrypage.c
│ │ │ ├── ginfast.c
│ │ │ ├── ginget.c
│ │ │ ├── gininsert.c
│ │ │ ├── ginlogic.c
│ │ │ ├── ginpostinglist.c
│ │ │ ├── ginscan.c
│ │ │ ├── ginutil.c
│ │ │ ├── ginvacuum.c
│ │ │ ├── ginvalidate.c
│ │ │ └── ginxlog.c
│ │ ├── gist/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── gist.c
│ │ │ ├── gistbuild.c
│ │ │ ├── gistbuildbuffers.c
│ │ │ ├── gistget.c
│ │ │ ├── gistproc.c
│ │ │ ├── gistscan.c
│ │ │ ├── gistsplit.c
│ │ │ ├── gistutil.c
│ │ │ ├── gistvacuum.c
│ │ │ ├── gistvalidate.c
│ │ │ └── gistxlog.c
│ │ ├── hash/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── hash.c
│ │ │ ├── hash_xlog.c
│ │ │ ├── hashfunc.c
│ │ │ ├── hashinsert.c
│ │ │ ├── hashovfl.c
│ │ │ ├── hashpage.c
│ │ │ ├── hashsearch.c
│ │ │ ├── hashsort.c
│ │ │ ├── hashutil.c
│ │ │ └── hashvalidate.c
│ │ ├── heap/
│ │ │ ├── Makefile
│ │ │ ├── README.HOT
│ │ │ ├── README.tuplock
│ │ │ ├── heapam.c
│ │ │ ├── hio.c
│ │ │ ├── pruneheap.c
│ │ │ ├── rewriteheap.c
│ │ │ ├── syncscan.c
│ │ │ ├── tuptoaster.c
│ │ │ └── visibilitymap.c
│ │ ├── index/
│ │ │ ├── Makefile
│ │ │ ├── amapi.c
│ │ │ ├── amvalidate.c
│ │ │ ├── genam.c
│ │ │ └── indexam.c
│ │ ├── nbtree/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── nbtcompare.c
│ │ │ ├── nbtinsert.c
│ │ │ ├── nbtpage.c
│ │ │ ├── nbtree.c
│ │ │ ├── nbtsearch.c
│ │ │ ├── nbtsort.c
│ │ │ ├── nbtutils.c
│ │ │ ├── nbtvalidate.c
│ │ │ └── nbtxlog.c
│ │ ├── remote/
│ │ │ ├── Makefile
│ │ │ ├── dml.c
│ │ │ ├── meta.c
│ │ │ └── remote_xact.c
│ │ ├── rmgrdesc/
│ │ │ ├── Makefile
│ │ │ ├── brindesc.c
│ │ │ ├── clogdesc.c
│ │ │ ├── committsdesc.c
│ │ │ ├── dbasedesc.c
│ │ │ ├── genericdesc.c
│ │ │ ├── gindesc.c
│ │ │ ├── gistdesc.c
│ │ │ ├── hashdesc.c
│ │ │ ├── heapdesc.c
│ │ │ ├── logicalmsgdesc.c
│ │ │ ├── mxactdesc.c
│ │ │ ├── nbtdesc.c
│ │ │ ├── relmapdesc.c
│ │ │ ├── replorigindesc.c
│ │ │ ├── seqdesc.c
│ │ │ ├── smgrdesc.c
│ │ │ ├── spgdesc.c
│ │ │ ├── standbydesc.c
│ │ │ ├── tblspcdesc.c
│ │ │ ├── xactdesc.c
│ │ │ └── xlogdesc.c
│ │ ├── spgist/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── spgdoinsert.c
│ │ │ ├── spginsert.c
│ │ │ ├── spgkdtreeproc.c
│ │ │ ├── spgquadtreeproc.c
│ │ │ ├── spgscan.c
│ │ │ ├── spgtextproc.c
│ │ │ ├── spgutils.c
│ │ │ ├── spgvacuum.c
│ │ │ ├── spgvalidate.c
│ │ │ └── spgxlog.c
│ │ ├── tablesample/
│ │ │ ├── Makefile
│ │ │ ├── bernoulli.c
│ │ │ ├── system.c
│ │ │ └── tablesample.c
│ │ └── transam/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── README.parallel
│ │ ├── clog.c
│ │ ├── commit_ts.c
│ │ ├── generic_xlog.c
│ │ ├── multixact.c
│ │ ├── parallel.c
│ │ ├── recovery.conf.sample
│ │ ├── rmgr.c
│ │ ├── slru.c
│ │ ├── subtrans.c
│ │ ├── timeline.c
│ │ ├── transam.c
│ │ ├── twophase.c
│ │ ├── twophase_rmgr.c
│ │ ├── varsup.c
│ │ ├── xact.c
│ │ ├── xlog.c
│ │ ├── xlogarchive.c
│ │ ├── xlogfuncs.c
│ │ ├── xloginsert.c
│ │ ├── xlogreader.c
│ │ └── xlogutils.c
│ ├── bootstrap/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── bootparse.y
│ │ ├── bootscanner.l
│ │ └── bootstrap.c
│ ├── catalog/
│ │ ├── .gitignore
│ │ ├── Catalog.pm
│ │ ├── Makefile
│ │ ├── aclchk.c
│ │ ├── catalog.c
│ │ ├── dependency.c
│ │ ├── genbki.pl
│ │ ├── heap.c
│ │ ├── index.c
│ │ ├── indexing.c
│ │ ├── information_schema.sql
│ │ ├── namespace.c
│ │ ├── objectaccess.c
│ │ ├── objectaddress.c
│ │ ├── partition.c
│ │ ├── pg_aggregate.c
│ │ ├── pg_collation.c
│ │ ├── pg_constraint.c
│ │ ├── pg_conversion.c
│ │ ├── pg_db_role_setting.c
│ │ ├── pg_depend.c
│ │ ├── pg_enum.c
│ │ ├── pg_inherits.c
│ │ ├── pg_largeobject.c
│ │ ├── pg_namespace.c
│ │ ├── pg_operator.c
│ │ ├── pg_proc.c
│ │ ├── pg_publication.c
│ │ ├── pg_range.c
│ │ ├── pg_sharding.c
│ │ ├── pg_shdepend.c
│ │ ├── pg_subscription.c
│ │ ├── pg_type.c
│ │ ├── postgres.description
│ │ ├── sql_feature_packages.txt
│ │ ├── sql_features.txt
│ │ ├── storage.c
│ │ ├── system_views.sql
│ │ └── toasting.c
│ ├── commands/
│ │ ├── Makefile
│ │ ├── aggregatecmds.c
│ │ ├── alter.c
│ │ ├── amcmds.c
│ │ ├── analyze.c
│ │ ├── async.c
│ │ ├── cluster.c
│ │ ├── collationcmds.c
│ │ ├── comment.c
│ │ ├── constraint.c
│ │ ├── conversioncmds.c
│ │ ├── copy.c
│ │ ├── createas.c
│ │ ├── dbcommands.c
│ │ ├── define.c
│ │ ├── discard.c
│ │ ├── dropcmds.c
│ │ ├── event_trigger.c
│ │ ├── explain.c
│ │ ├── extension.c
│ │ ├── foreigncmds.c
│ │ ├── functioncmds.c
│ │ ├── indexcmds.c
│ │ ├── lockcmds.c
│ │ ├── matview.c
│ │ ├── opclasscmds.c
│ │ ├── operatorcmds.c
│ │ ├── policy.c
│ │ ├── portalcmds.c
│ │ ├── prepare.c
│ │ ├── proclang.c
│ │ ├── publicationcmds.c
│ │ ├── schemacmds.c
│ │ ├── seclabel.c
│ │ ├── sequence.c
│ │ ├── statscmds.c
│ │ ├── subscriptioncmds.c
│ │ ├── tablecmds.c
│ │ ├── tablespace.c
│ │ ├── trigger.c
│ │ ├── tsearchcmds.c
│ │ ├── typecmds.c
│ │ ├── user.c
│ │ ├── vacuum.c
│ │ ├── vacuumlazy.c
│ │ ├── variable.c
│ │ └── view.c
│ ├── common.mk
│ ├── executor/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── execAmi.c
│ │ ├── execCurrent.c
│ │ ├── execExpr.c
│ │ ├── execExprInterp.c
│ │ ├── execGrouping.c
│ │ ├── execIndexing.c
│ │ ├── execJunk.c
│ │ ├── execMain.c
│ │ ├── execParallel.c
│ │ ├── execPartition.c
│ │ ├── execProcnode.c
│ │ ├── execRemote.c
│ │ ├── execReplication.c
│ │ ├── execSRF.c
│ │ ├── execScan.c
│ │ ├── execTuples.c
│ │ ├── execUtils.c
│ │ ├── functions.c
│ │ ├── instrument.c
│ │ ├── nodeAgg.c
│ │ ├── nodeAppend.c
│ │ ├── nodeBitmapAnd.c
│ │ ├── nodeBitmapHeapscan.c
│ │ ├── nodeBitmapIndexscan.c
│ │ ├── nodeBitmapOr.c
│ │ ├── nodeCtescan.c
│ │ ├── nodeCustom.c
│ │ ├── nodeForeignscan.c
│ │ ├── nodeFunctionscan.c
│ │ ├── nodeGather.c
│ │ ├── nodeGatherMerge.c
│ │ ├── nodeGroup.c
│ │ ├── nodeHash.c
│ │ ├── nodeHashjoin.c
│ │ ├── nodeIndexonlyscan.c
│ │ ├── nodeIndexscan.c
│ │ ├── nodeLimit.c
│ │ ├── nodeLockRows.c
│ │ ├── nodeMaterial.c
│ │ ├── nodeMergeAppend.c
│ │ ├── nodeMergejoin.c
│ │ ├── nodeModifyTable.c
│ │ ├── nodeNamedtuplestorescan.c
│ │ ├── nodeNestloop.c
│ │ ├── nodeProjectSet.c
│ │ ├── nodeRecursiveunion.c
│ │ ├── nodeRemotescan.c
│ │ ├── nodeResult.c
│ │ ├── nodeSamplescan.c
│ │ ├── nodeSeqscan.c
│ │ ├── nodeSetOp.c
│ │ ├── nodeSort.c
│ │ ├── nodeSubplan.c
│ │ ├── nodeSubqueryscan.c
│ │ ├── nodeTableFuncscan.c
│ │ ├── nodeTidscan.c
│ │ ├── nodeUnique.c
│ │ ├── nodeValuesscan.c
│ │ ├── nodeWindowAgg.c
│ │ ├── nodeWorktablescan.c
│ │ ├── remoteScanUtils.c
│ │ ├── spi.c
│ │ ├── tqueue.c
│ │ └── tstoreReceiver.c
│ ├── foreign/
│ │ ├── Makefile
│ │ └── foreign.c
│ ├── jit/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── jit.c
│ │ └── llvm/
│ │ ├── Makefile
│ │ ├── llvmjit.c
│ │ ├── llvmjit_deform.c
│ │ ├── llvmjit_error.cpp
│ │ ├── llvmjit_expr.c
│ │ ├── llvmjit_inline.cpp
│ │ ├── llvmjit_types.c
│ │ └── llvmjit_wrap.cpp
│ ├── lib/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── binaryheap.c
│ │ ├── bipartite_match.c
│ │ ├── bloomfilter.c
│ │ ├── dshash.c
│ │ ├── hyperloglog.c
│ │ ├── ilist.c
│ │ ├── knapsack.c
│ │ ├── pairingheap.c
│ │ ├── rbtree.c
│ │ └── stringinfo.c
│ ├── libpq/
│ │ ├── Makefile
│ │ ├── README.SSL
│ │ ├── auth-scram.c
│ │ ├── auth.c
│ │ ├── be-fsstubs.c
│ │ ├── be-secure-common.c
│ │ ├── be-secure-openssl.c
│ │ ├── be-secure.c
│ │ ├── crypt.c
│ │ ├── hba.c
│ │ ├── ifaddr.c
│ │ ├── pg_hba.conf.sample
│ │ ├── pg_ident.conf.sample
│ │ ├── pqcomm.c
│ │ ├── pqformat.c
│ │ ├── pqmq.c
│ │ └── pqsignal.c
│ ├── main/
│ │ ├── Makefile
│ │ └── main.c
│ ├── nls.mk
│ ├── nodes/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── bitmapset.c
│ │ ├── copyfuncs.c
│ │ ├── equalfuncs.c
│ │ ├── extensible.c
│ │ ├── list.c
│ │ ├── makefuncs.c
│ │ ├── nodeFuncs.c
│ │ ├── nodes.c
│ │ ├── outfuncs.c
│ │ ├── params.c
│ │ ├── print.c
│ │ ├── read.c
│ │ ├── readfuncs.c
│ │ ├── remote_input.c
│ │ ├── remote_print.c
│ │ ├── remote_print2.c
│ │ ├── remote_type_funcs.c
│ │ ├── tidbitmap.c
│ │ └── value.c
│ ├── optimizer/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── geqo/
│ │ │ ├── Makefile
│ │ │ ├── geqo_copy.c
│ │ │ ├── geqo_cx.c
│ │ │ ├── geqo_erx.c
│ │ │ ├── geqo_eval.c
│ │ │ ├── geqo_main.c
│ │ │ ├── geqo_misc.c
│ │ │ ├── geqo_mutation.c
│ │ │ ├── geqo_ox1.c
│ │ │ ├── geqo_ox2.c
│ │ │ ├── geqo_pmx.c
│ │ │ ├── geqo_pool.c
│ │ │ ├── geqo_px.c
│ │ │ ├── geqo_random.c
│ │ │ ├── geqo_recombination.c
│ │ │ └── geqo_selection.c
│ │ ├── path/
│ │ │ ├── Makefile
│ │ │ ├── allpaths.c
│ │ │ ├── clausesel.c
│ │ │ ├── costsize.c
│ │ │ ├── equivclass.c
│ │ │ ├── indxpath.c
│ │ │ ├── joinpath.c
│ │ │ ├── joinrels.c
│ │ │ ├── pathkeys.c
│ │ │ └── tidpath.c
│ │ ├── plan/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── analyzejoins.c
│ │ │ ├── createplan.c
│ │ │ ├── initsplan.c
│ │ │ ├── planagg.c
│ │ │ ├── planmain.c
│ │ │ ├── planner.c
│ │ │ ├── planremote.c
│ │ │ ├── setrefs.c
│ │ │ └── subselect.c
│ │ ├── prep/
│ │ │ ├── Makefile
│ │ │ ├── prepjointree.c
│ │ │ ├── prepqual.c
│ │ │ ├── preptlist.c
│ │ │ └── prepunion.c
│ │ └── util/
│ │ ├── Makefile
│ │ ├── clauses.c
│ │ ├── joininfo.c
│ │ ├── orclauses.c
│ │ ├── paramassign.c
│ │ ├── pathnode.c
│ │ ├── placeholder.c
│ │ ├── plancat.c
│ │ ├── predtest.c
│ │ ├── relnode.c
│ │ ├── restrictinfo.c
│ │ ├── tlist.c
│ │ └── var.c
│ ├── parser/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── analyze.c
│ │ ├── check_keywords.pl
│ │ ├── gram.y
│ │ ├── parse_agg.c
│ │ ├── parse_clause.c
│ │ ├── parse_coerce.c
│ │ ├── parse_collate.c
│ │ ├── parse_cte.c
│ │ ├── parse_enr.c
│ │ ├── parse_expr.c
│ │ ├── parse_func.c
│ │ ├── parse_node.c
│ │ ├── parse_oper.c
│ │ ├── parse_param.c
│ │ ├── parse_relation.c
│ │ ├── parse_target.c
│ │ ├── parse_type.c
│ │ ├── parse_utilcmd.c
│ │ ├── parser.c
│ │ ├── scan.l
│ │ └── scansup.c
│ ├── partitioning/
│ │ ├── Makefile
│ │ ├── partbounds.c
│ │ └── partprune.c
│ ├── po/
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── port/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── aix/
│ │ │ └── mkldexport.sh
│ │ ├── atomics.c
│ │ ├── dynloader/
│ │ │ ├── aix.c
│ │ │ ├── aix.h
│ │ │ ├── cygwin.c
│ │ │ ├── cygwin.h
│ │ │ ├── darwin.c
│ │ │ ├── darwin.h
│ │ │ ├── freebsd.c
│ │ │ ├── freebsd.h
│ │ │ ├── hpux.c
│ │ │ ├── hpux.h
│ │ │ ├── linux.c
│ │ │ ├── linux.h
│ │ │ ├── netbsd.c
│ │ │ ├── netbsd.h
│ │ │ ├── openbsd.c
│ │ │ ├── openbsd.h
│ │ │ ├── solaris.c
│ │ │ ├── solaris.h
│ │ │ ├── win32.c
│ │ │ └── win32.h
│ │ ├── hpux/
│ │ │ └── tas.c.template
│ │ ├── posix_sema.c
│ │ ├── sysv_sema.c
│ │ ├── sysv_shmem.c
│ │ ├── tas/
│ │ │ ├── dummy.s
│ │ │ ├── hpux_hppa.s
│ │ │ ├── sunstudio_sparc.s
│ │ │ └── sunstudio_x86.s
│ │ ├── win32/
│ │ │ ├── Makefile
│ │ │ ├── crashdump.c
│ │ │ ├── mingwcompat.c
│ │ │ ├── signal.c
│ │ │ ├── socket.c
│ │ │ └── timer.c
│ │ ├── win32_sema.c
│ │ └── win32_shmem.c
│ ├── postmaster/
│ │ ├── Makefile
│ │ ├── autovacuum.c
│ │ ├── bgworker.c
│ │ ├── bgwriter.c
│ │ ├── checkpointer.c
│ │ ├── fork_process.c
│ │ ├── pgarch.c
│ │ ├── pgstat.c
│ │ ├── postmaster.c
│ │ ├── startup.c
│ │ ├── syslogger.c
│ │ ├── walwriter.c
│ │ └── xidsender.c
│ ├── regex/
│ │ ├── COPYRIGHT
│ │ ├── Makefile
│ │ ├── README
│ │ ├── re_syntax.n
│ │ ├── regc_color.c
│ │ ├── regc_cvec.c
│ │ ├── regc_lex.c
│ │ ├── regc_locale.c
│ │ ├── regc_nfa.c
│ │ ├── regc_pg_locale.c
│ │ ├── regcomp.c
│ │ ├── rege_dfa.c
│ │ ├── regerror.c
│ │ ├── regexec.c
│ │ ├── regexport.c
│ │ ├── regfree.c
│ │ └── regprefix.c
│ ├── replication/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── basebackup.c
│ │ ├── libpqwalreceiver/
│ │ │ ├── Makefile
│ │ │ └── libpqwalreceiver.c
│ │ ├── logical/
│ │ │ ├── Makefile
│ │ │ ├── decode.c
│ │ │ ├── launcher.c
│ │ │ ├── logical.c
│ │ │ ├── logicalfuncs.c
│ │ │ ├── message.c
│ │ │ ├── origin.c
│ │ │ ├── proto.c
│ │ │ ├── relation.c
│ │ │ ├── reorderbuffer.c
│ │ │ ├── snapbuild.c
│ │ │ ├── tablesync.c
│ │ │ └── worker.c
│ │ ├── pgoutput/
│ │ │ ├── Makefile
│ │ │ └── pgoutput.c
│ │ ├── repl_gram.y
│ │ ├── repl_scanner.l
│ │ ├── slot.c
│ │ ├── slotfuncs.c
│ │ ├── syncrep.c
│ │ ├── syncrep_gram.y
│ │ ├── syncrep_scanner.l
│ │ ├── walreceiver.c
│ │ ├── walreceiverfuncs.c
│ │ └── walsender.c
│ ├── rewrite/
│ │ ├── Makefile
│ │ ├── rewriteDefine.c
│ │ ├── rewriteHandler.c
│ │ ├── rewriteManip.c
│ │ ├── rewriteRemove.c
│ │ ├── rewriteSupport.c
│ │ └── rowsecurity.c
│ ├── sharding/
│ │ ├── Makefile
│ │ ├── cluster_meta.c
│ │ ├── mat_cache.c
│ │ ├── mysql_vars.c
│ │ └── sharding_conn.c
│ ├── snowball/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── dict_snowball.c
│ │ ├── libstemmer/
│ │ │ ├── api.c
│ │ │ ├── stem_ISO_8859_1_danish.c
│ │ │ ├── stem_ISO_8859_1_dutch.c
│ │ │ ├── stem_ISO_8859_1_english.c
│ │ │ ├── stem_ISO_8859_1_finnish.c
│ │ │ ├── stem_ISO_8859_1_french.c
│ │ │ ├── stem_ISO_8859_1_german.c
│ │ │ ├── stem_ISO_8859_1_hungarian.c
│ │ │ ├── stem_ISO_8859_1_italian.c
│ │ │ ├── stem_ISO_8859_1_norwegian.c
│ │ │ ├── stem_ISO_8859_1_porter.c
│ │ │ ├── stem_ISO_8859_1_portuguese.c
│ │ │ ├── stem_ISO_8859_1_spanish.c
│ │ │ ├── stem_ISO_8859_1_swedish.c
│ │ │ ├── stem_ISO_8859_2_romanian.c
│ │ │ ├── stem_KOI8_R_russian.c
│ │ │ ├── stem_UTF_8_danish.c
│ │ │ ├── stem_UTF_8_dutch.c
│ │ │ ├── stem_UTF_8_english.c
│ │ │ ├── stem_UTF_8_finnish.c
│ │ │ ├── stem_UTF_8_french.c
│ │ │ ├── stem_UTF_8_german.c
│ │ │ ├── stem_UTF_8_hungarian.c
│ │ │ ├── stem_UTF_8_italian.c
│ │ │ ├── stem_UTF_8_norwegian.c
│ │ │ ├── stem_UTF_8_porter.c
│ │ │ ├── stem_UTF_8_portuguese.c
│ │ │ ├── stem_UTF_8_romanian.c
│ │ │ ├── stem_UTF_8_russian.c
│ │ │ ├── stem_UTF_8_spanish.c
│ │ │ ├── stem_UTF_8_swedish.c
│ │ │ ├── stem_UTF_8_turkish.c
│ │ │ └── utilities.c
│ │ ├── snowball.sql.in
│ │ ├── snowball_func.sql.in
│ │ └── stopwords/
│ │ ├── danish.stop
│ │ ├── dutch.stop
│ │ ├── english.stop
│ │ ├── finnish.stop
│ │ ├── french.stop
│ │ ├── german.stop
│ │ ├── hungarian.stop
│ │ ├── italian.stop
│ │ ├── norwegian.stop
│ │ ├── portuguese.stop
│ │ ├── russian.stop
│ │ ├── spanish.stop
│ │ ├── swedish.stop
│ │ └── turkish.stop
│ ├── statistics/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── README.dependencies
│ │ ├── dependencies.c
│ │ ├── extended_stats.c
│ │ └── mvdistinct.c
│ ├── storage/
│ │ ├── Makefile
│ │ ├── buffer/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── buf_init.c
│ │ │ ├── buf_table.c
│ │ │ ├── bufmgr.c
│ │ │ ├── freelist.c
│ │ │ └── localbuf.c
│ │ ├── file/
│ │ │ ├── Makefile
│ │ │ ├── buffile.c
│ │ │ ├── copydir.c
│ │ │ ├── fd.c
│ │ │ ├── reinit.c
│ │ │ └── sharedfileset.c
│ │ ├── freespace/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── freespace.c
│ │ │ ├── fsmpage.c
│ │ │ └── indexfsm.c
│ │ ├── ipc/
│ │ │ ├── Makefile
│ │ │ ├── barrier.c
│ │ │ ├── dsm.c
│ │ │ ├── dsm_impl.c
│ │ │ ├── ipc.c
│ │ │ ├── ipci.c
│ │ │ ├── latch.c
│ │ │ ├── pmsignal.c
│ │ │ ├── procarray.c
│ │ │ ├── procsignal.c
│ │ │ ├── shm_mq.c
│ │ │ ├── shm_toc.c
│ │ │ ├── shmalloc.c
│ │ │ ├── shmem.c
│ │ │ ├── shmqueue.c
│ │ │ ├── sinval.c
│ │ │ ├── sinvaladt.c
│ │ │ └── standby.c
│ │ ├── large_object/
│ │ │ ├── Makefile
│ │ │ └── inv_api.c
│ │ ├── lmgr/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── README-SSI
│ │ │ ├── README.barrier
│ │ │ ├── condition_variable.c
│ │ │ ├── deadlock.c
│ │ │ ├── generate-lwlocknames.pl
│ │ │ ├── lmgr.c
│ │ │ ├── lock.c
│ │ │ ├── lwlock.c
│ │ │ ├── lwlocknames.txt
│ │ │ ├── predicate.c
│ │ │ ├── proc.c
│ │ │ ├── s_lock.c
│ │ │ └── spin.c
│ │ ├── page/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── bufpage.c
│ │ │ ├── checksum.c
│ │ │ └── itemptr.c
│ │ └── smgr/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── md.c
│ │ ├── smgr.c
│ │ └── smgrtype.c
│ ├── tcop/
│ │ ├── Makefile
│ │ ├── dbug.c
│ │ ├── dest.c
│ │ ├── fastpath.c
│ │ ├── postgres.c
│ │ ├── pquery.c
│ │ └── utility.c
│ ├── tsearch/
│ │ ├── Makefile
│ │ ├── dict.c
│ │ ├── dict_ispell.c
│ │ ├── dict_simple.c
│ │ ├── dict_synonym.c
│ │ ├── dict_thesaurus.c
│ │ ├── dicts/
│ │ │ ├── hunspell_sample.affix
│ │ │ ├── hunspell_sample_long.affix
│ │ │ ├── hunspell_sample_long.dict
│ │ │ ├── hunspell_sample_num.affix
│ │ │ ├── hunspell_sample_num.dict
│ │ │ ├── ispell_sample.affix
│ │ │ ├── ispell_sample.dict
│ │ │ ├── synonym_sample.syn
│ │ │ └── thesaurus_sample.ths
│ │ ├── regis.c
│ │ ├── spell.c
│ │ ├── to_tsany.c
│ │ ├── ts_locale.c
│ │ ├── ts_parse.c
│ │ ├── ts_selfuncs.c
│ │ ├── ts_typanalyze.c
│ │ ├── ts_utils.c
│ │ ├── wparser.c
│ │ └── wparser_def.c
│ └── utils/
│ ├── .gitignore
│ ├── Gen_dummy_probes.pl
│ ├── Gen_dummy_probes.sed
│ ├── Gen_fmgrtab.pl
│ ├── Makefile
│ ├── adt/
│ │ ├── Makefile
│ │ ├── acl.c
│ │ ├── amutils.c
│ │ ├── array_expanded.c
│ │ ├── array_selfuncs.c
│ │ ├── array_typanalyze.c
│ │ ├── array_userfuncs.c
│ │ ├── arrayfuncs.c
│ │ ├── arrayutils.c
│ │ ├── ascii.c
│ │ ├── bool.c
│ │ ├── cash.c
│ │ ├── char.c
│ │ ├── cryptohashes.c
│ │ ├── date.c
│ │ ├── datetime.c
│ │ ├── datum.c
│ │ ├── dbsize.c
│ │ ├── domains.c
│ │ ├── encode.c
│ │ ├── enum.c
│ │ ├── expandeddatum.c
│ │ ├── expandedrecord.c
│ │ ├── float.c
│ │ ├── format_type.c
│ │ ├── format_type_remote.c
│ │ ├── formatting.c
│ │ ├── genfile.c
│ │ ├── geo_ops.c
│ │ ├── geo_selfuncs.c
│ │ ├── geo_spgist.c
│ │ ├── inet_cidr_ntop.c
│ │ ├── inet_net_pton.c
│ │ ├── int.c
│ │ ├── int8.c
│ │ ├── json.c
│ │ ├── jsonb.c
│ │ ├── jsonb_gin.c
│ │ ├── jsonb_op.c
│ │ ├── jsonb_util.c
│ │ ├── jsonfuncs.c
│ │ ├── levenshtein.c
│ │ ├── like.c
│ │ ├── like_match.c
│ │ ├── lockfuncs.c
│ │ ├── mac.c
│ │ ├── mac8.c
│ │ ├── misc.c
│ │ ├── nabstime.c
│ │ ├── name.c
│ │ ├── network.c
│ │ ├── network_gist.c
│ │ ├── network_selfuncs.c
│ │ ├── network_spgist.c
│ │ ├── numeric.c
│ │ ├── numutils.c
│ │ ├── oid.c
│ │ ├── oracle_compat.c
│ │ ├── orderedsetaggs.c
│ │ ├── pg_locale.c
│ │ ├── pg_lsn.c
│ │ ├── pg_upgrade_support.c
│ │ ├── pgstatfuncs.c
│ │ ├── pseudotypes.c
│ │ ├── quote.c
│ │ ├── rangetypes.c
│ │ ├── rangetypes_gist.c
│ │ ├── rangetypes_selfuncs.c
│ │ ├── rangetypes_spgist.c
│ │ ├── rangetypes_typanalyze.c
│ │ ├── regexp.c
│ │ ├── regproc.c
│ │ ├── ri_triggers.c
│ │ ├── rowtypes.c
│ │ ├── ruleutils.c
│ │ ├── selfuncs.c
│ │ ├── tid.c
│ │ ├── timestamp.c
│ │ ├── trigfuncs.c
│ │ ├── tsginidx.c
│ │ ├── tsgistidx.c
│ │ ├── tsquery.c
│ │ ├── tsquery_cleanup.c
│ │ ├── tsquery_gist.c
│ │ ├── tsquery_op.c
│ │ ├── tsquery_rewrite.c
│ │ ├── tsquery_util.c
│ │ ├── tsrank.c
│ │ ├── tsvector.c
│ │ ├── tsvector_op.c
│ │ ├── tsvector_parser.c
│ │ ├── txid.c
│ │ ├── uuid.c
│ │ ├── varbit.c
│ │ ├── varchar.c
│ │ ├── varlena.c
│ │ ├── version.c
│ │ ├── windowfuncs.c
│ │ ├── xid.c
│ │ └── xml.c
│ ├── algos/
│ │ ├── Makefile
│ │ ├── bin_search.c
│ │ └── misc_tools.c
│ ├── cache/
│ │ ├── Makefile
│ │ ├── attoptcache.c
│ │ ├── catcache.c
│ │ ├── evtcache.c
│ │ ├── inval.c
│ │ ├── lsyscache.c
│ │ ├── partcache.c
│ │ ├── plancache.c
│ │ ├── relcache.c
│ │ ├── relfilenodemap.c
│ │ ├── relmapper.c
│ │ ├── spccache.c
│ │ ├── syscache.c
│ │ ├── ts_cache.c
│ │ └── typcache.c
│ ├── errcodes.txt
│ ├── error/
│ │ ├── Makefile
│ │ ├── assert.c
│ │ └── elog.c
│ ├── fmgr/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── dfmgr.c
│ │ ├── fmgr.c
│ │ └── funcapi.c
│ ├── generate-errcodes.pl
│ ├── hash/
│ │ ├── Makefile
│ │ ├── dynahash.c
│ │ ├── hashfn.c
│ │ └── pg_crc.c
│ ├── init/
│ │ ├── Makefile
│ │ ├── globals.c
│ │ ├── miscinit.c
│ │ └── postinit.c
│ ├── mb/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── Unicode/
│ │ │ ├── Makefile
│ │ │ ├── UCS_to_BIG5.pl
│ │ │ ├── UCS_to_EUC_CN.pl
│ │ │ ├── UCS_to_EUC_JIS_2004.pl
│ │ │ ├── UCS_to_EUC_JP.pl
│ │ │ ├── UCS_to_EUC_KR.pl
│ │ │ ├── UCS_to_EUC_TW.pl
│ │ │ ├── UCS_to_GB18030.pl
│ │ │ ├── UCS_to_JOHAB.pl
│ │ │ ├── UCS_to_SHIFT_JIS_2004.pl
│ │ │ ├── UCS_to_SJIS.pl
│ │ │ ├── UCS_to_UHC.pl
│ │ │ ├── UCS_to_most.pl
│ │ │ ├── convutils.pm
│ │ │ ├── euc-jis-2004-std.txt
│ │ │ ├── gb-18030-2000.xml
│ │ │ └── sjis-0213-2004-std.txt
│ │ ├── conv.c
│ │ ├── conversion_procs/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README.euc_jp
│ │ │ ├── ascii_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── ascii_and_mic.c
│ │ │ ├── cyrillic_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── cyrillic_and_mic.c
│ │ │ ├── euc2004_sjis2004/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc2004_sjis2004.c
│ │ │ ├── euc_cn_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc_cn_and_mic.c
│ │ │ ├── euc_jp_and_sjis/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc_jp_and_sjis.c
│ │ │ ├── euc_kr_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc_kr_and_mic.c
│ │ │ ├── euc_tw_and_big5/
│ │ │ │ ├── Makefile
│ │ │ │ ├── big5.c
│ │ │ │ └── euc_tw_and_big5.c
│ │ │ ├── latin2_and_win1250/
│ │ │ │ ├── Makefile
│ │ │ │ └── latin2_and_win1250.c
│ │ │ ├── latin_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── latin_and_mic.c
│ │ │ ├── proc.mk
│ │ │ ├── utf8_and_ascii/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_ascii.c
│ │ │ ├── utf8_and_big5/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_big5.c
│ │ │ ├── utf8_and_cyrillic/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_cyrillic.c
│ │ │ ├── utf8_and_euc2004/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc2004.c
│ │ │ ├── utf8_and_euc_cn/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_cn.c
│ │ │ ├── utf8_and_euc_jp/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_jp.c
│ │ │ ├── utf8_and_euc_kr/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_kr.c
│ │ │ ├── utf8_and_euc_tw/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_tw.c
│ │ │ ├── utf8_and_gb18030/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_gb18030.c
│ │ │ ├── utf8_and_gbk/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_gbk.c
│ │ │ ├── utf8_and_iso8859/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_iso8859.c
│ │ │ ├── utf8_and_iso8859_1/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_iso8859_1.c
│ │ │ ├── utf8_and_johab/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_johab.c
│ │ │ ├── utf8_and_sjis/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_sjis.c
│ │ │ ├── utf8_and_sjis2004/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_sjis2004.c
│ │ │ ├── utf8_and_uhc/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_uhc.c
│ │ │ └── utf8_and_win/
│ │ │ ├── Makefile
│ │ │ └── utf8_and_win.c
│ │ ├── encnames.c
│ │ ├── iso.c
│ │ ├── mbutils.c
│ │ ├── wchar.c
│ │ ├── win1251.c
│ │ ├── win866.c
│ │ ├── wstrcmp.c
│ │ └── wstrncmp.c
│ ├── misc/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── backend_random.c
│ │ ├── check_guc
│ │ ├── guc-file.l
│ │ ├── guc.c
│ │ ├── help_config.c
│ │ ├── pg_config.c
│ │ ├── pg_controldata.c
│ │ ├── pg_rusage.c
│ │ ├── postgresql.conf.sample
│ │ ├── ps_status.c
│ │ ├── queryenvironment.c
│ │ ├── rls.c
│ │ ├── sampling.c
│ │ ├── superuser.c
│ │ ├── timeout.c
│ │ └── tzparser.c
│ ├── mmgr/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── aset.c
│ │ ├── dsa.c
│ │ ├── freepage.c
│ │ ├── generation.c
│ │ ├── mcxt.c
│ │ ├── memdebug.c
│ │ ├── portalmem.c
│ │ └── slab.c
│ ├── probes.d
│ ├── resowner/
│ │ ├── Makefile
│ │ ├── README
│ │ └── resowner.c
│ ├── sort/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── gen_qsort_tuple.pl
│ │ ├── logtape.c
│ │ ├── sharedtuplestore.c
│ │ ├── sortsupport.c
│ │ ├── tuplesort.c
│ │ └── tuplestore.c
│ └── time/
│ ├── Makefile
│ ├── combocid.c
│ ├── snapmgr.c
│ └── tqual.c
├── bin/
│ ├── Makefile
│ ├── initdb/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── findtimezone.c
│ │ ├── initdb.c
│ │ ├── nls.mk
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ └── 001_initdb.pl
│ ├── pg_archivecleanup/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_archivecleanup.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ └── 010_pg_archivecleanup.pl
│ ├── pg_basebackup/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_basebackup.c
│ │ ├── pg_receivewal.c
│ │ ├── pg_recvlogical.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── receivelog.c
│ │ ├── receivelog.h
│ │ ├── streamutil.c
│ │ ├── streamutil.h
│ │ ├── t/
│ │ │ ├── 010_pg_basebackup.pl
│ │ │ ├── 020_pg_receivewal.pl
│ │ │ └── 030_pg_recvlogical.pl
│ │ ├── walmethods.c
│ │ └── walmethods.h
│ ├── pg_config/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_config.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── nb.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ro.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── ta.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ ├── zh_CN.po
│ │ │ └── zh_TW.po
│ │ └── t/
│ │ └── 001_pg_config.pl
│ ├── pg_controldata/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_controldata.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ └── 001_pg_controldata.pl
│ ├── pg_ctl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_ctl.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ ├── 001_start_stop.pl
│ │ ├── 002_status.pl
│ │ └── 003_promote.pl
│ ├── pg_dump/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── common.c
│ │ ├── compress_io.c
│ │ ├── compress_io.h
│ │ ├── dumputils.c
│ │ ├── dumputils.h
│ │ ├── nls.mk
│ │ ├── parallel.c
│ │ ├── parallel.h
│ │ ├── pg_backup.h
│ │ ├── pg_backup_archiver.c
│ │ ├── pg_backup_archiver.h
│ │ ├── pg_backup_custom.c
│ │ ├── pg_backup_db.c
│ │ ├── pg_backup_db.h
│ │ ├── pg_backup_directory.c
│ │ ├── pg_backup_null.c
│ │ ├── pg_backup_tar.c
│ │ ├── pg_backup_tar.h
│ │ ├── pg_backup_utils.c
│ │ ├── pg_backup_utils.h
│ │ ├── pg_dump.c
│ │ ├── pg_dump.h
│ │ ├── pg_dump_sort.c
│ │ ├── pg_dumpall.c
│ │ ├── pg_restore.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ ├── 001_basic.pl
│ │ ├── 002_pg_dump.pl
│ │ └── 010_dump_connstr.pl
│ ├── pg_resetwal/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_resetwal.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ ├── 001_basic.pl
│ │ └── 002_corrupted.pl
│ ├── pg_rewind/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── copy_fetch.c
│ │ ├── datapagemap.c
│ │ ├── datapagemap.h
│ │ ├── fetch.c
│ │ ├── fetch.h
│ │ ├── file_ops.c
│ │ ├── file_ops.h
│ │ ├── filemap.c
│ │ ├── filemap.h
│ │ ├── libpq_fetch.c
│ │ ├── logging.c
│ │ ├── logging.h
│ │ ├── nls.mk
│ │ ├── parsexlog.c
│ │ ├── pg_rewind.c
│ │ ├── pg_rewind.h
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ ├── t/
│ │ │ ├── 001_basic.pl
│ │ │ ├── 002_databases.pl
│ │ │ ├── 003_extrafiles.pl
│ │ │ ├── 004_pg_xlog_symlink.pl
│ │ │ ├── 005_same_timeline.pl
│ │ │ └── RewindTest.pm
│ │ └── timeline.c
│ ├── pg_test_fsync/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_test_fsync.c
│ │ └── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ ├── vi.po
│ │ └── zh_CN.po
│ ├── pg_test_timing/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_test_timing.c
│ │ └── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ ├── vi.po
│ │ └── zh_CN.po
│ ├── pg_upgrade/
│ │ ├── .gitignore
│ │ ├── IMPLEMENTATION
│ │ ├── Makefile
│ │ ├── TESTING
│ │ ├── check.c
│ │ ├── controldata.c
│ │ ├── dump.c
│ │ ├── exec.c
│ │ ├── file.c
│ │ ├── function.c
│ │ ├── info.c
│ │ ├── nls.mk
│ │ ├── option.c
│ │ ├── parallel.c
│ │ ├── pg_upgrade.c
│ │ ├── pg_upgrade.h
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ ├── relfilenode.c
│ │ ├── server.c
│ │ ├── tablespace.c
│ │ ├── test.sh
│ │ ├── util.c
│ │ └── version.c
│ ├── pg_verify_checksums/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_verify_checksums.c
│ │ └── po/
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── pg_waldump/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── compat.c
│ │ ├── nls.mk
│ │ ├── pg_waldump.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── rmgrdesc.c
│ │ └── rmgrdesc.h
│ ├── pgbench/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── exprparse.y
│ │ ├── exprscan.l
│ │ ├── pgbench.c
│ │ ├── pgbench.h
│ │ └── t/
│ │ ├── 001_pgbench_with_server.pl
│ │ └── 002_pgbench_no_server.pl
│ ├── pgevent/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── exports.txt
│ │ ├── pgevent.c
│ │ ├── pgevent.def
│ │ ├── pgmsgevent.h
│ │ ├── pgmsgevent.mc
│ │ └── pgmsgevent.rc
│ ├── psql/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── command.c
│ │ ├── command.h
│ │ ├── common.c
│ │ ├── common.h
│ │ ├── copy.c
│ │ ├── copy.h
│ │ ├── create_help.pl
│ │ ├── crosstabview.c
│ │ ├── crosstabview.h
│ │ ├── describe.c
│ │ ├── describe.h
│ │ ├── help.c
│ │ ├── help.h
│ │ ├── input.c
│ │ ├── input.h
│ │ ├── large_obj.c
│ │ ├── large_obj.h
│ │ ├── mainloop.c
│ │ ├── mainloop.h
│ │ ├── nls.mk
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ ├── prompt.c
│ │ ├── prompt.h
│ │ ├── psqlrc.sample
│ │ ├── psqlscanslash.h
│ │ ├── psqlscanslash.l
│ │ ├── settings.h
│ │ ├── startup.c
│ │ ├── stringutils.c
│ │ ├── stringutils.h
│ │ ├── tab-complete.c
│ │ ├── tab-complete.h
│ │ ├── variables.c
│ │ └── variables.h
│ └── scripts/
│ ├── .gitignore
│ ├── Makefile
│ ├── clusterdb.c
│ ├── common.c
│ ├── common.h
│ ├── createdb.c
│ ├── createuser.c
│ ├── dropdb.c
│ ├── dropuser.c
│ ├── nls.mk
│ ├── pg_isready.c
│ ├── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── he.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── pt_BR.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── reindexdb.c
│ ├── t/
│ │ ├── 010_clusterdb.pl
│ │ ├── 011_clusterdb_all.pl
│ │ ├── 020_createdb.pl
│ │ ├── 040_createuser.pl
│ │ ├── 050_dropdb.pl
│ │ ├── 070_dropuser.pl
│ │ ├── 080_pg_isready.pl
│ │ ├── 090_reindexdb.pl
│ │ ├── 091_reindexdb_all.pl
│ │ ├── 100_vacuumdb.pl
│ │ ├── 101_vacuumdb_all.pl
│ │ ├── 102_vacuumdb_stages.pl
│ │ └── 200_connstr.pl
│ └── vacuumdb.c
├── common/
│ ├── Makefile
│ ├── base64.c
│ ├── config_info.c
│ ├── controldata_utils.c
│ ├── exec.c
│ ├── fe_memutils.c
│ ├── file_perm.c
│ ├── file_utils.c
│ ├── ip.c
│ ├── keywords.c
│ ├── md5.c
│ ├── pg_lzcompress.c
│ ├── pgfnames.c
│ ├── psprintf.c
│ ├── relpath.c
│ ├── restricted_token.c
│ ├── rmtree.c
│ ├── saslprep.c
│ ├── scram-common.c
│ ├── sha2.c
│ ├── sha2_openssl.c
│ ├── string.c
│ ├── unicode/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── generate-norm_test_table.pl
│ │ ├── generate-unicode_norm_table.pl
│ │ └── norm_test.c
│ ├── unicode_norm.c
│ ├── username.c
│ └── wait_error.c
├── fe_utils/
│ ├── .gitignore
│ ├── Makefile
│ ├── conditional.c
│ ├── mbprint.c
│ ├── print.c
│ ├── psqlscan.l
│ ├── simple_list.c
│ └── string_utils.c
├── include/
│ ├── .gitignore
│ ├── Makefile
│ ├── access/
│ │ ├── amapi.h
│ │ ├── amvalidate.h
│ │ ├── attnum.h
│ │ ├── brin.h
│ │ ├── brin_internal.h
│ │ ├── brin_page.h
│ │ ├── brin_pageops.h
│ │ ├── brin_revmap.h
│ │ ├── brin_tuple.h
│ │ ├── brin_xlog.h
│ │ ├── bufmask.h
│ │ ├── clog.h
│ │ ├── commit_ts.h
│ │ ├── genam.h
│ │ ├── generic_xlog.h
│ │ ├── gin.h
│ │ ├── gin_private.h
│ │ ├── ginblock.h
│ │ ├── ginxlog.h
│ │ ├── gist.h
│ │ ├── gist_private.h
│ │ ├── gistscan.h
│ │ ├── gistxlog.h
│ │ ├── hash.h
│ │ ├── hash_xlog.h
│ │ ├── heapam.h
│ │ ├── heapam_xlog.h
│ │ ├── hio.h
│ │ ├── htup.h
│ │ ├── htup_details.h
│ │ ├── itup.h
│ │ ├── multixact.h
│ │ ├── nbtree.h
│ │ ├── nbtxlog.h
│ │ ├── parallel.h
│ │ ├── printsimple.h
│ │ ├── printtup.h
│ │ ├── reloptions.h
│ │ ├── relscan.h
│ │ ├── remote_dml.h
│ │ ├── remote_meta.h
│ │ ├── remote_xact.h
│ │ ├── remotetup.h
│ │ ├── rewriteheap.h
│ │ ├── rmgr.h
│ │ ├── rmgrlist.h
│ │ ├── sdir.h
│ │ ├── session.h
│ │ ├── skey.h
│ │ ├── slru.h
│ │ ├── spgist.h
│ │ ├── spgist_private.h
│ │ ├── spgxlog.h
│ │ ├── stratnum.h
│ │ ├── subtrans.h
│ │ ├── sysattr.h
│ │ ├── timeline.h
│ │ ├── transam.h
│ │ ├── tsmapi.h
│ │ ├── tupconvert.h
│ │ ├── tupdesc.h
│ │ ├── tupdesc_details.h
│ │ ├── tupmacs.h
│ │ ├── tuptoaster.h
│ │ ├── twophase.h
│ │ ├── twophase_rmgr.h
│ │ ├── valid.h
│ │ ├── visibilitymap.h
│ │ ├── xact.h
│ │ ├── xlog.h
│ │ ├── xlog_internal.h
│ │ ├── xlogdefs.h
│ │ ├── xloginsert.h
│ │ ├── xlogreader.h
│ │ ├── xlogrecord.h
│ │ └── xlogutils.h
│ ├── bootstrap/
│ │ └── bootstrap.h
│ ├── c.h
│ ├── catalog/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── binary_upgrade.h
│ │ ├── catalog.h
│ │ ├── catversion.h
│ │ ├── dependency.h
│ │ ├── duplicate_oids
│ │ ├── genbki.h
│ │ ├── heap.h
│ │ ├── index.h
│ │ ├── indexing.h
│ │ ├── namespace.h
│ │ ├── objectaccess.h
│ │ ├── objectaddress.h
│ │ ├── opfam_internal.h
│ │ ├── partition.h
│ │ ├── pg_aggregate.h
│ │ ├── pg_am.h
│ │ ├── pg_amop.h
│ │ ├── pg_amproc.h
│ │ ├── pg_attrdef.h
│ │ ├── pg_attribute.h
│ │ ├── pg_auth_members.h
│ │ ├── pg_authid.h
│ │ ├── pg_cast.h
│ │ ├── pg_class.h
│ │ ├── pg_cluster_meta.h
│ │ ├── pg_cluster_meta_nodes.h
│ │ ├── pg_collation.h
│ │ ├── pg_computing_node_stat.h
│ │ ├── pg_constraint.h
│ │ ├── pg_control.h
│ │ ├── pg_conversion.h
│ │ ├── pg_database.h
│ │ ├── pg_db_role_setting.h
│ │ ├── pg_ddl_log_progress.h
│ │ ├── pg_default_acl.h
│ │ ├── pg_depend.h
│ │ ├── pg_description.h
│ │ ├── pg_enum.h
│ │ ├── pg_event_trigger.h
│ │ ├── pg_extension.h
│ │ ├── pg_foreign_data_wrapper.h
│ │ ├── pg_foreign_server.h
│ │ ├── pg_foreign_table.h
│ │ ├── pg_index.h
│ │ ├── pg_inherits.h
│ │ ├── pg_init_privs.h
│ │ ├── pg_language.h
│ │ ├── pg_largeobject.h
│ │ ├── pg_largeobject_metadata.h
│ │ ├── pg_namespace.h
│ │ ├── pg_opclass.h
│ │ ├── pg_operator.h
│ │ ├── pg_opfamily.h
│ │ ├── pg_partitioned_table.h
│ │ ├── pg_pltemplate.h
│ │ ├── pg_policy.h
│ │ ├── pg_proc.h
│ │ ├── pg_proc_map.h
│ │ ├── pg_publication.h
│ │ ├── pg_publication_rel.h
│ │ ├── pg_range.h
│ │ ├── pg_replication_origin.h
│ │ ├── pg_rewrite.h
│ │ ├── pg_seclabel.h
│ │ ├── pg_sequence.h
│ │ ├── pg_shard.h
│ │ ├── pg_shard_node.h
│ │ ├── pg_shdepend.h
│ │ ├── pg_shdescription.h
│ │ ├── pg_shseclabel.h
│ │ ├── pg_statistic.h
│ │ ├── pg_statistic_ext.h
│ │ ├── pg_subscription.h
│ │ ├── pg_subscription_rel.h
│ │ ├── pg_tablespace.h
│ │ ├── pg_transform.h
│ │ ├── pg_trigger.h
│ │ ├── pg_ts_config.h
│ │ ├── pg_ts_config_map.h
│ │ ├── pg_ts_dict.h
│ │ ├── pg_ts_parser.h
│ │ ├── pg_ts_template.h
│ │ ├── pg_type.h
│ │ ├── pg_type_map.h
│ │ ├── pg_user_mapping.h
│ │ ├── reformat_dat_file.pl
│ │ ├── storage.h
│ │ ├── storage_xlog.h
│ │ ├── toasting.h
│ │ └── unused_oids
│ ├── commands/
│ │ ├── alter.h
│ │ ├── async.h
│ │ ├── cluster.h
│ │ ├── collationcmds.h
│ │ ├── comment.h
│ │ ├── conversioncmds.h
│ │ ├── copy.h
│ │ ├── createas.h
│ │ ├── dbcommands.h
│ │ ├── dbcommands_xlog.h
│ │ ├── defrem.h
│ │ ├── discard.h
│ │ ├── event_trigger.h
│ │ ├── explain.h
│ │ ├── extension.h
│ │ ├── lockcmds.h
│ │ ├── matview.h
│ │ ├── policy.h
│ │ ├── portalcmds.h
│ │ ├── prepare.h
│ │ ├── proclang.h
│ │ ├── progress.h
│ │ ├── publicationcmds.h
│ │ ├── schemacmds.h
│ │ ├── seclabel.h
│ │ ├── sequence.h
│ │ ├── subscriptioncmds.h
│ │ ├── tablecmds.h
│ │ ├── tablespace.h
│ │ ├── trigger.h
│ │ ├── typecmds.h
│ │ ├── user.h
│ │ ├── vacuum.h
│ │ ├── variable.h
│ │ └── view.h
│ ├── common/
│ │ ├── base64.h
│ │ ├── config_info.h
│ │ ├── controldata_utils.h
│ │ ├── fe_memutils.h
│ │ ├── file_perm.h
│ │ ├── file_utils.h
│ │ ├── int.h
│ │ ├── int128.h
│ │ ├── ip.h
│ │ ├── keywords.h
│ │ ├── md5.h
│ │ ├── pg_lzcompress.h
│ │ ├── relpath.h
│ │ ├── restricted_token.h
│ │ ├── saslprep.h
│ │ ├── scram-common.h
│ │ ├── sha2.h
│ │ ├── string.h
│ │ ├── unicode_norm.h
│ │ ├── unicode_norm_table.h
│ │ └── username.h
│ ├── datatype/
│ │ └── timestamp.h
│ ├── executor/
│ │ ├── execExpr.h
│ │ ├── execParallel.h
│ │ ├── execPartition.h
│ │ ├── execRemote.h
│ │ ├── execdebug.h
│ │ ├── execdesc.h
│ │ ├── executor.h
│ │ ├── functions.h
│ │ ├── hashjoin.h
│ │ ├── instrument.h
│ │ ├── nodeAgg.h
│ │ ├── nodeAppend.h
│ │ ├── nodeBitmapAnd.h
│ │ ├── nodeBitmapHeapscan.h
│ │ ├── nodeBitmapIndexscan.h
│ │ ├── nodeBitmapOr.h
│ │ ├── nodeCtescan.h
│ │ ├── nodeCustom.h
│ │ ├── nodeForeignscan.h
│ │ ├── nodeFunctionscan.h
│ │ ├── nodeGather.h
│ │ ├── nodeGatherMerge.h
│ │ ├── nodeGroup.h
│ │ ├── nodeHash.h
│ │ ├── nodeHashjoin.h
│ │ ├── nodeIndexonlyscan.h
│ │ ├── nodeIndexscan.h
│ │ ├── nodeLimit.h
│ │ ├── nodeLockRows.h
│ │ ├── nodeMaterial.h
│ │ ├── nodeMergeAppend.h
│ │ ├── nodeMergejoin.h
│ │ ├── nodeModifyTable.h
│ │ ├── nodeNamedtuplestorescan.h
│ │ ├── nodeNestloop.h
│ │ ├── nodeProjectSet.h
│ │ ├── nodeRecursiveunion.h
│ │ ├── nodeRemotescan.h
│ │ ├── nodeResult.h
│ │ ├── nodeSamplescan.h
│ │ ├── nodeSeqscan.h
│ │ ├── nodeSetOp.h
│ │ ├── nodeSort.h
│ │ ├── nodeSubplan.h
│ │ ├── nodeSubqueryscan.h
│ │ ├── nodeTableFuncscan.h
│ │ ├── nodeTidscan.h
│ │ ├── nodeUnique.h
│ │ ├── nodeValuesscan.h
│ │ ├── nodeWindowAgg.h
│ │ ├── nodeWorktablescan.h
│ │ ├── remoteScanUtils.h
│ │ ├── spi.h
│ │ ├── spi_priv.h
│ │ ├── tablefunc.h
│ │ ├── tqueue.h
│ │ ├── tstoreReceiver.h
│ │ └── tuptable.h
│ ├── fe_utils/
│ │ ├── conditional.h
│ │ ├── connect.h
│ │ ├── mbprint.h
│ │ ├── print.h
│ │ ├── psqlscan.h
│ │ ├── psqlscan_int.h
│ │ ├── simple_list.h
│ │ └── string_utils.h
│ ├── fmgr.h
│ ├── foreign/
│ │ ├── fdwapi.h
│ │ └── foreign.h
│ ├── funcapi.h
│ ├── getaddrinfo.h
│ ├── getopt_long.h
│ ├── jit/
│ │ ├── jit.h
│ │ ├── llvmjit.h
│ │ └── llvmjit_emit.h
│ ├── lib/
│ │ ├── binaryheap.h
│ │ ├── bipartite_match.h
│ │ ├── bloomfilter.h
│ │ ├── dshash.h
│ │ ├── hyperloglog.h
│ │ ├── ilist.h
│ │ ├── knapsack.h
│ │ ├── pairingheap.h
│ │ ├── rbtree.h
│ │ ├── simplehash.h
│ │ └── stringinfo.h
│ ├── libpq/
│ │ ├── auth.h
│ │ ├── be-fsstubs.h
│ │ ├── crypt.h
│ │ ├── hba.h
│ │ ├── ifaddr.h
│ │ ├── libpq-be.h
│ │ ├── libpq-fs.h
│ │ ├── libpq.h
│ │ ├── pqcomm.h
│ │ ├── pqformat.h
│ │ ├── pqmq.h
│ │ ├── pqsignal.h
│ │ └── scram.h
│ ├── mb/
│ │ └── pg_wchar.h
│ ├── miscadmin.h
│ ├── nodes/
│ │ ├── bitmapset.h
│ │ ├── execnodes.h
│ │ ├── extensible.h
│ │ ├── lockoptions.h
│ │ ├── makefuncs.h
│ │ ├── memnodes.h
│ │ ├── nodeFuncs.h
│ │ ├── nodes.h
│ │ ├── params.h
│ │ ├── parsenodes.h
│ │ ├── pg_list.h
│ │ ├── plannodes.h
│ │ ├── primnodes.h
│ │ ├── print.h
│ │ ├── readfuncs.h
│ │ ├── relation.h
│ │ ├── remote_input.h
│ │ ├── replnodes.h
│ │ ├── tidbitmap.h
│ │ └── value.h
│ ├── optimizer/
│ │ ├── clauses.h
│ │ ├── cost.h
│ │ ├── geqo.h
│ │ ├── geqo_copy.h
│ │ ├── geqo_gene.h
│ │ ├── geqo_misc.h
│ │ ├── geqo_mutation.h
│ │ ├── geqo_pool.h
│ │ ├── geqo_random.h
│ │ ├── geqo_recombination.h
│ │ ├── geqo_selection.h
│ │ ├── joininfo.h
│ │ ├── orclauses.h
│ │ ├── paramassign.h
│ │ ├── pathnode.h
│ │ ├── paths.h
│ │ ├── placeholder.h
│ │ ├── plancat.h
│ │ ├── planmain.h
│ │ ├── planner.h
│ │ ├── planremote.h
│ │ ├── predtest.h
│ │ ├── prep.h
│ │ ├── restrictinfo.h
│ │ ├── subselect.h
│ │ ├── tlist.h
│ │ └── var.h
│ ├── parser/
│ │ ├── .gitignore
│ │ ├── analyze.h
│ │ ├── gramparse.h
│ │ ├── kwlist.h
│ │ ├── parse_agg.h
│ │ ├── parse_clause.h
│ │ ├── parse_coerce.h
│ │ ├── parse_collate.h
│ │ ├── parse_cte.h
│ │ ├── parse_enr.h
│ │ ├── parse_expr.h
│ │ ├── parse_func.h
│ │ ├── parse_node.h
│ │ ├── parse_oper.h
│ │ ├── parse_param.h
│ │ ├── parse_relation.h
│ │ ├── parse_target.h
│ │ ├── parse_type.h
│ │ ├── parse_utilcmd.h
│ │ ├── parser.h
│ │ ├── parsetree.h
│ │ ├── scanner.h
│ │ └── scansup.h
│ ├── partitioning/
│ │ ├── partbounds.h
│ │ ├── partdefs.h
│ │ └── partprune.h
│ ├── pg_config.h.in
│ ├── pg_config.h.win32
│ ├── pg_config_ext.h.in
│ ├── pg_config_ext.h.win32
│ ├── pg_config_manual.h
│ ├── pg_getopt.h
│ ├── pg_trace.h
│ ├── pgstat.h
│ ├── pgtar.h
│ ├── pgtime.h
│ ├── port/
│ │ ├── aix.h
│ │ ├── atomics/
│ │ │ ├── arch-arm.h
│ │ │ ├── arch-hppa.h
│ │ │ ├── arch-ia64.h
│ │ │ ├── arch-ppc.h
│ │ │ ├── arch-x86.h
│ │ │ ├── fallback.h
│ │ │ ├── generic-acc.h
│ │ │ ├── generic-gcc.h
│ │ │ ├── generic-msvc.h
│ │ │ ├── generic-sunpro.h
│ │ │ ├── generic-xlc.h
│ │ │ └── generic.h
│ │ ├── atomics.h
│ │ ├── cygwin.h
│ │ ├── darwin.h
│ │ ├── freebsd.h
│ │ ├── hpux.h
│ │ ├── linux.h
│ │ ├── netbsd.h
│ │ ├── openbsd.h
│ │ ├── pg_bswap.h
│ │ ├── pg_crc32c.h
│ │ ├── solaris.h
│ │ ├── win32/
│ │ │ ├── arpa/
│ │ │ │ └── inet.h
│ │ │ ├── dlfcn.h
│ │ │ ├── grp.h
│ │ │ ├── netdb.h
│ │ │ ├── netinet/
│ │ │ │ └── in.h
│ │ │ ├── pwd.h
│ │ │ └── sys/
│ │ │ ├── socket.h
│ │ │ └── wait.h
│ │ ├── win32.h
│ │ ├── win32_msvc/
│ │ │ ├── dirent.h
│ │ │ ├── sys/
│ │ │ │ ├── file.h
│ │ │ │ ├── param.h
│ │ │ │ └── time.h
│ │ │ ├── unistd.h
│ │ │ └── utime.h
│ │ └── win32_port.h
│ ├── port.h
│ ├── port_config.h
│ ├── portability/
│ │ ├── instr_time.h
│ │ └── mem.h
│ ├── postgres.h
│ ├── postgres_ext.h
│ ├── postgres_fe.h
│ ├── postmaster/
│ │ ├── autovacuum.h
│ │ ├── bgworker.h
│ │ ├── bgworker_internals.h
│ │ ├── bgwriter.h
│ │ ├── fork_process.h
│ │ ├── pgarch.h
│ │ ├── postmaster.h
│ │ ├── startup.h
│ │ ├── syslogger.h
│ │ ├── walwriter.h
│ │ └── xidsender.h
│ ├── regex/
│ │ ├── regcustom.h
│ │ ├── regerrs.h
│ │ ├── regex.h
│ │ ├── regexport.h
│ │ └── regguts.h
│ ├── replication/
│ │ ├── basebackup.h
│ │ ├── decode.h
│ │ ├── logical.h
│ │ ├── logicalfuncs.h
│ │ ├── logicallauncher.h
│ │ ├── logicalproto.h
│ │ ├── logicalrelation.h
│ │ ├── logicalworker.h
│ │ ├── message.h
│ │ ├── origin.h
│ │ ├── output_plugin.h
│ │ ├── pgoutput.h
│ │ ├── reorderbuffer.h
│ │ ├── slot.h
│ │ ├── snapbuild.h
│ │ ├── syncrep.h
│ │ ├── walreceiver.h
│ │ ├── walsender.h
│ │ ├── walsender_private.h
│ │ └── worker_internal.h
│ ├── rewrite/
│ │ ├── prs2lock.h
│ │ ├── rewriteDefine.h
│ │ ├── rewriteHandler.h
│ │ ├── rewriteManip.h
│ │ ├── rewriteRemove.h
│ │ ├── rewriteSupport.h
│ │ └── rowsecurity.h
│ ├── rusagestub.h
│ ├── sharding/
│ │ ├── cluster_meta.h
│ │ ├── mat_cache.h
│ │ ├── mysql_vars.h
│ │ ├── sharding.h
│ │ └── sharding_conn.h
│ ├── snowball/
│ │ ├── header.h
│ │ └── libstemmer/
│ │ ├── api.h
│ │ ├── header.h
│ │ ├── stem_ISO_8859_1_danish.h
│ │ ├── stem_ISO_8859_1_dutch.h
│ │ ├── stem_ISO_8859_1_english.h
│ │ ├── stem_ISO_8859_1_finnish.h
│ │ ├── stem_ISO_8859_1_french.h
│ │ ├── stem_ISO_8859_1_german.h
│ │ ├── stem_ISO_8859_1_hungarian.h
│ │ ├── stem_ISO_8859_1_italian.h
│ │ ├── stem_ISO_8859_1_norwegian.h
│ │ ├── stem_ISO_8859_1_porter.h
│ │ ├── stem_ISO_8859_1_portuguese.h
│ │ ├── stem_ISO_8859_1_spanish.h
│ │ ├── stem_ISO_8859_1_swedish.h
│ │ ├── stem_ISO_8859_2_romanian.h
│ │ ├── stem_KOI8_R_russian.h
│ │ ├── stem_UTF_8_danish.h
│ │ ├── stem_UTF_8_dutch.h
│ │ ├── stem_UTF_8_english.h
│ │ ├── stem_UTF_8_finnish.h
│ │ ├── stem_UTF_8_french.h
│ │ ├── stem_UTF_8_german.h
│ │ ├── stem_UTF_8_hungarian.h
│ │ ├── stem_UTF_8_italian.h
│ │ ├── stem_UTF_8_norwegian.h
│ │ ├── stem_UTF_8_porter.h
│ │ ├── stem_UTF_8_portuguese.h
│ │ ├── stem_UTF_8_romanian.h
│ │ ├── stem_UTF_8_russian.h
│ │ ├── stem_UTF_8_spanish.h
│ │ ├── stem_UTF_8_swedish.h
│ │ └── stem_UTF_8_turkish.h
│ ├── statistics/
│ │ ├── extended_stats_internal.h
│ │ └── statistics.h
│ ├── storage/
│ │ ├── .gitignore
│ │ ├── backendid.h
│ │ ├── barrier.h
│ │ ├── block.h
│ │ ├── buf.h
│ │ ├── buf_internals.h
│ │ ├── buffile.h
│ │ ├── bufmgr.h
│ │ ├── bufpage.h
│ │ ├── checksum.h
│ │ ├── checksum_impl.h
│ │ ├── condition_variable.h
│ │ ├── copydir.h
│ │ ├── dsm.h
│ │ ├── dsm_impl.h
│ │ ├── fd.h
│ │ ├── freespace.h
│ │ ├── fsm_internals.h
│ │ ├── indexfsm.h
│ │ ├── ipc.h
│ │ ├── item.h
│ │ ├── itemid.h
│ │ ├── itemptr.h
│ │ ├── large_object.h
│ │ ├── latch.h
│ │ ├── lmgr.h
│ │ ├── lock.h
│ │ ├── lockdefs.h
│ │ ├── lwlock.h
│ │ ├── off.h
│ │ ├── pg_sema.h
│ │ ├── pg_shmem.h
│ │ ├── pmsignal.h
│ │ ├── predicate.h
│ │ ├── predicate_internals.h
│ │ ├── proc.h
│ │ ├── procarray.h
│ │ ├── proclist.h
│ │ ├── proclist_types.h
│ │ ├── procsignal.h
│ │ ├── reinit.h
│ │ ├── relfilenode.h
│ │ ├── s_lock.h
│ │ ├── sharedfileset.h
│ │ ├── shm_mq.h
│ │ ├── shm_toc.h
│ │ ├── shmalloc.h
│ │ ├── shmem.h
│ │ ├── sinval.h
│ │ ├── sinvaladt.h
│ │ ├── smgr.h
│ │ ├── spin.h
│ │ ├── standby.h
│ │ └── standbydefs.h
│ ├── tcop/
│ │ ├── debug_funcs.h
│ │ ├── debug_injection.h
│ │ ├── deparse_utility.h
│ │ ├── dest.h
│ │ ├── fastpath.h
│ │ ├── pquery.h
│ │ ├── runtime.h
│ │ ├── tcopprot.h
│ │ └── utility.h
│ ├── tsearch/
│ │ ├── dicts/
│ │ │ ├── regis.h
│ │ │ └── spell.h
│ │ ├── ts_cache.h
│ │ ├── ts_locale.h
│ │ ├── ts_public.h
│ │ ├── ts_type.h
│ │ └── ts_utils.h
│ ├── utils/
│ │ ├── .gitignore
│ │ ├── acl.h
│ │ ├── aclchk_internal.h
│ │ ├── algos.h
│ │ ├── array.h
│ │ ├── arrayaccess.h
│ │ ├── ascii.h
│ │ ├── attoptcache.h
│ │ ├── backend_random.h
│ │ ├── builtins.h
│ │ ├── bytea.h
│ │ ├── cash.h
│ │ ├── catcache.h
│ │ ├── combocid.h
│ │ ├── date.h
│ │ ├── datetime.h
│ │ ├── datum.h
│ │ ├── dsa.h
│ │ ├── dynahash.h
│ │ ├── dynamic_loader.h
│ │ ├── elog.h
│ │ ├── evtcache.h
│ │ ├── expandeddatum.h
│ │ ├── expandedrecord.h
│ │ ├── fmgrtab.h
│ │ ├── formatting.h
│ │ ├── freepage.h
│ │ ├── geo_decls.h
│ │ ├── guc.h
│ │ ├── guc_tables.h
│ │ ├── hashutils.h
│ │ ├── help_config.h
│ │ ├── hsearch.h
│ │ ├── index_selfuncs.h
│ │ ├── inet.h
│ │ ├── int8.h
│ │ ├── inval.h
│ │ ├── json.h
│ │ ├── jsonapi.h
│ │ ├── jsonb.h
│ │ ├── logtape.h
│ │ ├── lsyscache.h
│ │ ├── memdebug.h
│ │ ├── memutils.h
│ │ ├── nabstime.h
│ │ ├── numeric.h
│ │ ├── palloc.h
│ │ ├── partcache.h
│ │ ├── pg_crc.h
│ │ ├── pg_locale.h
│ │ ├── pg_lsn.h
│ │ ├── pg_rusage.h
│ │ ├── pidfile.h
│ │ ├── plancache.h
│ │ ├── portal.h
│ │ ├── ps_status.h
│ │ ├── queryenvironment.h
│ │ ├── rangetypes.h
│ │ ├── regproc.h
│ │ ├── rel.h
│ │ ├── relcache.h
│ │ ├── relfilenodemap.h
│ │ ├── relmapper.h
│ │ ├── relptr.h
│ │ ├── reltrigger.h
│ │ ├── resowner.h
│ │ ├── resowner_private.h
│ │ ├── rls.h
│ │ ├── ruleutils.h
│ │ ├── sampling.h
│ │ ├── selfuncs.h
│ │ ├── sharedtuplestore.h
│ │ ├── snapmgr.h
│ │ ├── snapshot.h
│ │ ├── sortsupport.h
│ │ ├── spccache.h
│ │ ├── syscache.h
│ │ ├── timeout.h
│ │ ├── timestamp.h
│ │ ├── tqual.h
│ │ ├── tuplesort.h
│ │ ├── tuplestore.h
│ │ ├── typcache.h
│ │ ├── tzparser.h
│ │ ├── uuid.h
│ │ ├── varbit.h
│ │ ├── varlena.h
│ │ └── xml.h
│ └── windowapi.h
├── interfaces/
│ ├── Makefile
│ ├── ecpg/
│ │ ├── Makefile
│ │ ├── README.dynSQL
│ │ ├── compatlib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── exports.txt
│ │ │ └── informix.c
│ │ ├── ecpglib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── connect.c
│ │ │ ├── data.c
│ │ │ ├── descriptor.c
│ │ │ ├── error.c
│ │ │ ├── execute.c
│ │ │ ├── exports.txt
│ │ │ ├── extern.h
│ │ │ ├── memory.c
│ │ │ ├── misc.c
│ │ │ ├── nls.mk
│ │ │ ├── po/
│ │ │ │ ├── cs.po
│ │ │ │ ├── de.po
│ │ │ │ ├── es.po
│ │ │ │ ├── fr.po
│ │ │ │ ├── it.po
│ │ │ │ ├── ja.po
│ │ │ │ ├── ko.po
│ │ │ │ ├── pl.po
│ │ │ │ ├── pt_BR.po
│ │ │ │ ├── ru.po
│ │ │ │ ├── sv.po
│ │ │ │ ├── tr.po
│ │ │ │ ├── vi.po
│ │ │ │ └── zh_CN.po
│ │ │ ├── prepare.c
│ │ │ ├── sqlda.c
│ │ │ └── typename.c
│ │ ├── include/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── datetime.h
│ │ │ ├── decimal.h
│ │ │ ├── ecpg-pthread-win32.h
│ │ │ ├── ecpg_config.h.in
│ │ │ ├── ecpg_informix.h
│ │ │ ├── ecpgerrno.h
│ │ │ ├── ecpglib.h
│ │ │ ├── ecpgtype.h
│ │ │ ├── pgtypes.h
│ │ │ ├── pgtypes_date.h
│ │ │ ├── pgtypes_error.h
│ │ │ ├── pgtypes_interval.h
│ │ │ ├── pgtypes_numeric.h
│ │ │ ├── pgtypes_timestamp.h
│ │ │ ├── sql3types.h
│ │ │ ├── sqlca.h
│ │ │ ├── sqlda-compat.h
│ │ │ ├── sqlda-native.h
│ │ │ ├── sqlda.h
│ │ │ └── sqltypes.h
│ │ ├── pgtypeslib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── common.c
│ │ │ ├── datetime.c
│ │ │ ├── dt.h
│ │ │ ├── dt_common.c
│ │ │ ├── exports.txt
│ │ │ ├── extern.h
│ │ │ ├── interval.c
│ │ │ ├── numeric.c
│ │ │ └── timestamp.c
│ │ ├── preproc/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README.parser
│ │ │ ├── c_keywords.c
│ │ │ ├── check_rules.pl
│ │ │ ├── descriptor.c
│ │ │ ├── ecpg.addons
│ │ │ ├── ecpg.c
│ │ │ ├── ecpg.header
│ │ │ ├── ecpg.tokens
│ │ │ ├── ecpg.trailer
│ │ │ ├── ecpg.type
│ │ │ ├── ecpg_keywords.c
│ │ │ ├── extern.h
│ │ │ ├── keywords.c
│ │ │ ├── nls.mk
│ │ │ ├── output.c
│ │ │ ├── parse.pl
│ │ │ ├── parser.c
│ │ │ ├── pgc.l
│ │ │ ├── po/
│ │ │ │ ├── cs.po
│ │ │ │ ├── de.po
│ │ │ │ ├── es.po
│ │ │ │ ├── fr.po
│ │ │ │ ├── it.po
│ │ │ │ ├── ja.po
│ │ │ │ ├── ko.po
│ │ │ │ ├── pl.po
│ │ │ │ ├── pt_BR.po
│ │ │ │ ├── ru.po
│ │ │ │ ├── sv.po
│ │ │ │ ├── tr.po
│ │ │ │ ├── vi.po
│ │ │ │ ├── zh_CN.po
│ │ │ │ └── zh_TW.po
│ │ │ ├── type.c
│ │ │ ├── type.h
│ │ │ └── variable.c
│ │ └── test/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── Makefile.regress
│ │ ├── compat_informix/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── charfuncs.pgc
│ │ │ ├── dec_test.pgc
│ │ │ ├── describe.pgc
│ │ │ ├── rfmtdate.pgc
│ │ │ ├── rfmtlong.pgc
│ │ │ ├── rnull.pgc
│ │ │ ├── sqlda.pgc
│ │ │ ├── test_informix.pgc
│ │ │ └── test_informix2.pgc
│ │ ├── compat_oracle/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ └── char_array.pgc
│ │ ├── connect/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── test1.pgc
│ │ │ ├── test2.pgc
│ │ │ ├── test3.pgc
│ │ │ ├── test4.pgc
│ │ │ └── test5.pgc
│ │ ├── ecpg_schedule
│ │ ├── expected/
│ │ │ ├── compat_informix-charfuncs.c
│ │ │ ├── compat_informix-charfuncs.stderr
│ │ │ ├── compat_informix-charfuncs.stdout
│ │ │ ├── compat_informix-dec_test-MinGW32.stdout
│ │ │ ├── compat_informix-dec_test.c
│ │ │ ├── compat_informix-dec_test.stderr
│ │ │ ├── compat_informix-dec_test.stdout
│ │ │ ├── compat_informix-describe.c
│ │ │ ├── compat_informix-describe.stderr
│ │ │ ├── compat_informix-describe.stdout
│ │ │ ├── compat_informix-rfmtdate.c
│ │ │ ├── compat_informix-rfmtdate.stderr
│ │ │ ├── compat_informix-rfmtdate.stdout
│ │ │ ├── compat_informix-rfmtlong.c
│ │ │ ├── compat_informix-rfmtlong.stderr
│ │ │ ├── compat_informix-rfmtlong.stdout
│ │ │ ├── compat_informix-rnull.c
│ │ │ ├── compat_informix-rnull.stderr
│ │ │ ├── compat_informix-rnull.stdout
│ │ │ ├── compat_informix-sqlda.c
│ │ │ ├── compat_informix-sqlda.stderr
│ │ │ ├── compat_informix-sqlda.stdout
│ │ │ ├── compat_informix-test_informix.c
│ │ │ ├── compat_informix-test_informix.stderr
│ │ │ ├── compat_informix-test_informix.stdout
│ │ │ ├── compat_informix-test_informix2.c
│ │ │ ├── compat_informix-test_informix2.stderr
│ │ │ ├── compat_informix-test_informix2.stdout
│ │ │ ├── compat_oracle-char_array.c
│ │ │ ├── compat_oracle-char_array.stderr
│ │ │ ├── compat_oracle-char_array.stdout
│ │ │ ├── connect-test1-minGW32.stderr
│ │ │ ├── connect-test1.c
│ │ │ ├── connect-test1.stderr
│ │ │ ├── connect-test1.stdout
│ │ │ ├── connect-test2.c
│ │ │ ├── connect-test2.stderr
│ │ │ ├── connect-test2.stdout
│ │ │ ├── connect-test3.c
│ │ │ ├── connect-test3.stderr
│ │ │ ├── connect-test3.stdout
│ │ │ ├── connect-test4.c
│ │ │ ├── connect-test4.stderr
│ │ │ ├── connect-test4.stdout
│ │ │ ├── connect-test5.c
│ │ │ ├── connect-test5.stderr
│ │ │ ├── connect-test5.stdout
│ │ │ ├── pgtypeslib-dt_test.c
│ │ │ ├── pgtypeslib-dt_test.stderr
│ │ │ ├── pgtypeslib-dt_test.stdout
│ │ │ ├── pgtypeslib-dt_test2.c
│ │ │ ├── pgtypeslib-dt_test2.stderr
│ │ │ ├── pgtypeslib-dt_test2.stdout
│ │ │ ├── pgtypeslib-nan_test.c
│ │ │ ├── pgtypeslib-nan_test.stderr
│ │ │ ├── pgtypeslib-nan_test.stdout
│ │ │ ├── pgtypeslib-num_test-MinGW32.stdout
│ │ │ ├── pgtypeslib-num_test.c
│ │ │ ├── pgtypeslib-num_test.stderr
│ │ │ ├── pgtypeslib-num_test.stdout
│ │ │ ├── pgtypeslib-num_test2-MinGW32.stdout
│ │ │ ├── pgtypeslib-num_test2.c
│ │ │ ├── pgtypeslib-num_test2.stderr
│ │ │ ├── pgtypeslib-num_test2.stdout
│ │ │ ├── preproc-array_of_struct.c
│ │ │ ├── preproc-array_of_struct.stderr
│ │ │ ├── preproc-array_of_struct.stdout
│ │ │ ├── preproc-autoprep.c
│ │ │ ├── preproc-autoprep.stderr
│ │ │ ├── preproc-autoprep.stdout
│ │ │ ├── preproc-comment.c
│ │ │ ├── preproc-comment.stderr
│ │ │ ├── preproc-comment.stdout
│ │ │ ├── preproc-cursor.c
│ │ │ ├── preproc-cursor.stderr
│ │ │ ├── preproc-cursor.stdout
│ │ │ ├── preproc-define.c
│ │ │ ├── preproc-define.stderr
│ │ │ ├── preproc-define.stdout
│ │ │ ├── preproc-describe.c
│ │ │ ├── preproc-describe.stderr
│ │ │ ├── preproc-describe.stdout
│ │ │ ├── preproc-init.c
│ │ │ ├── preproc-init.stderr
│ │ │ ├── preproc-init.stdout
│ │ │ ├── preproc-outofscope.c
│ │ │ ├── preproc-outofscope.stderr
│ │ │ ├── preproc-outofscope.stdout
│ │ │ ├── preproc-pointer_to_struct.c
│ │ │ ├── preproc-pointer_to_struct.stderr
│ │ │ ├── preproc-pointer_to_struct.stdout
│ │ │ ├── preproc-strings.c
│ │ │ ├── preproc-strings.stderr
│ │ │ ├── preproc-strings.stdout
│ │ │ ├── preproc-type.c
│ │ │ ├── preproc-type.stderr
│ │ │ ├── preproc-type.stdout
│ │ │ ├── preproc-variable.c
│ │ │ ├── preproc-variable.stderr
│ │ │ ├── preproc-variable.stdout
│ │ │ ├── preproc-whenever.c
│ │ │ ├── preproc-whenever.stderr
│ │ │ ├── preproc-whenever.stdout
│ │ │ ├── preproc-whenever_do_continue.c
│ │ │ ├── preproc-whenever_do_continue.stderr
│ │ │ ├── preproc-whenever_do_continue.stdout
│ │ │ ├── sql-array.c
│ │ │ ├── sql-array.stderr
│ │ │ ├── sql-array.stdout
│ │ │ ├── sql-binary.c
│ │ │ ├── sql-binary.stderr
│ │ │ ├── sql-binary.stdout
│ │ │ ├── sql-code100.c
│ │ │ ├── sql-code100.stderr
│ │ │ ├── sql-code100.stdout
│ │ │ ├── sql-copystdout.c
│ │ │ ├── sql-copystdout.stderr
│ │ │ ├── sql-copystdout.stdout
│ │ │ ├── sql-createtableas.c
│ │ │ ├── sql-createtableas.stderr
│ │ │ ├── sql-createtableas.stdout
│ │ │ ├── sql-define.c
│ │ │ ├── sql-define.stderr
│ │ │ ├── sql-define.stdout
│ │ │ ├── sql-desc.c
│ │ │ ├── sql-desc.stderr
│ │ │ ├── sql-desc.stdout
│ │ │ ├── sql-describe.c
│ │ │ ├── sql-describe.stderr
│ │ │ ├── sql-describe.stdout
│ │ │ ├── sql-dynalloc.c
│ │ │ ├── sql-dynalloc.stderr
│ │ │ ├── sql-dynalloc.stdout
│ │ │ ├── sql-dynalloc2.c
│ │ │ ├── sql-dynalloc2.stderr
│ │ │ ├── sql-dynalloc2.stdout
│ │ │ ├── sql-dyntest.c
│ │ │ ├── sql-dyntest.stderr
│ │ │ ├── sql-dyntest.stdout
│ │ │ ├── sql-execute.c
│ │ │ ├── sql-execute.stderr
│ │ │ ├── sql-execute.stdout
│ │ │ ├── sql-fetch.c
│ │ │ ├── sql-fetch.stderr
│ │ │ ├── sql-fetch.stdout
│ │ │ ├── sql-func.c
│ │ │ ├── sql-func.stderr
│ │ │ ├── sql-func.stdout
│ │ │ ├── sql-indicators.c
│ │ │ ├── sql-indicators.stderr
│ │ │ ├── sql-indicators.stdout
│ │ │ ├── sql-insupd.c
│ │ │ ├── sql-insupd.stderr
│ │ │ ├── sql-insupd.stdout
│ │ │ ├── sql-oldexec.c
│ │ │ ├── sql-oldexec.stderr
│ │ │ ├── sql-oldexec.stdout
│ │ │ ├── sql-parser.c
│ │ │ ├── sql-parser.stderr
│ │ │ ├── sql-parser.stdout
│ │ │ ├── sql-quote.c
│ │ │ ├── sql-quote.stderr
│ │ │ ├── sql-quote.stdout
│ │ │ ├── sql-show.c
│ │ │ ├── sql-show.stderr
│ │ │ ├── sql-show.stdout
│ │ │ ├── sql-sqlda.c
│ │ │ ├── sql-sqlda.stderr
│ │ │ ├── sql-sqlda.stdout
│ │ │ ├── sql-twophase.c
│ │ │ ├── sql-twophase.stderr
│ │ │ ├── sql-twophase.stdout
│ │ │ ├── thread-alloc.c
│ │ │ ├── thread-alloc.stderr
│ │ │ ├── thread-alloc.stdout
│ │ │ ├── thread-alloc_2.stdout
│ │ │ ├── thread-descriptor.c
│ │ │ ├── thread-descriptor.stderr
│ │ │ ├── thread-descriptor.stdout
│ │ │ ├── thread-prep.c
│ │ │ ├── thread-prep.stderr
│ │ │ ├── thread-prep.stdout
│ │ │ ├── thread-prep_2.stdout
│ │ │ ├── thread-thread.c
│ │ │ ├── thread-thread.stderr
│ │ │ ├── thread-thread.stdout
│ │ │ ├── thread-thread_2.stdout
│ │ │ ├── thread-thread_implicit.c
│ │ │ ├── thread-thread_implicit.stderr
│ │ │ ├── thread-thread_implicit.stdout
│ │ │ └── thread-thread_implicit_2.stdout
│ │ ├── performance/
│ │ │ └── perftest.pgc
│ │ ├── pg_regress_ecpg.c
│ │ ├── pgtypeslib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── dt_test.pgc
│ │ │ ├── dt_test2.pgc
│ │ │ ├── nan_test.pgc
│ │ │ ├── num_test.pgc
│ │ │ └── num_test2.pgc
│ │ ├── preproc/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── array_of_struct.pgc
│ │ │ ├── autoprep.pgc
│ │ │ ├── comment.pgc
│ │ │ ├── cursor.pgc
│ │ │ ├── define.pgc
│ │ │ ├── init.pgc
│ │ │ ├── outofscope.pgc
│ │ │ ├── pointer_to_struct.pgc
│ │ │ ├── strings.h
│ │ │ ├── strings.pgc
│ │ │ ├── struct.h
│ │ │ ├── type.pgc
│ │ │ ├── variable.pgc
│ │ │ ├── whenever.pgc
│ │ │ └── whenever_do_continue.pgc
│ │ ├── regression.h
│ │ ├── resultmap
│ │ ├── sql/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── array.pgc
│ │ │ ├── binary.pgc
│ │ │ ├── code100.pgc
│ │ │ ├── copystdout.pgc
│ │ │ ├── createtableas.pgc
│ │ │ ├── define.pgc
│ │ │ ├── desc.pgc
│ │ │ ├── describe.pgc
│ │ │ ├── dynalloc.pgc
│ │ │ ├── dynalloc2.pgc
│ │ │ ├── dyntest.pgc
│ │ │ ├── execute.pgc
│ │ │ ├── fetch.pgc
│ │ │ ├── func.pgc
│ │ │ ├── indicators.pgc
│ │ │ ├── insupd.pgc
│ │ │ ├── oldexec.pgc
│ │ │ ├── parser.pgc
│ │ │ ├── quote.pgc
│ │ │ ├── show.pgc
│ │ │ ├── sqlda.pgc
│ │ │ └── twophase.pgc
│ │ └── thread/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── alloc.pgc
│ │ ├── descriptor.pgc
│ │ ├── prep.pgc
│ │ ├── thread.pgc
│ │ └── thread_implicit.pgc
│ └── libpq/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ ├── exports.txt
│ ├── fe-auth-scram.c
│ ├── fe-auth.c
│ ├── fe-auth.h
│ ├── fe-connect.c
│ ├── fe-exec.c
│ ├── fe-lobj.c
│ ├── fe-misc.c
│ ├── fe-print.c
│ ├── fe-protocol2.c
│ ├── fe-protocol3.c
│ ├── fe-secure-common.c
│ ├── fe-secure-common.h
│ ├── fe-secure-openssl.c
│ ├── fe-secure.c
│ ├── libpq-dist.rc
│ ├── libpq-events.c
│ ├── libpq-events.h
│ ├── libpq-fe.h
│ ├── libpq-int.h
│ ├── libpq.rc.in
│ ├── nls.mk
│ ├── pg_service.conf.sample
│ ├── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── he.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── pt_BR.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── pqexpbuffer.c
│ ├── pqexpbuffer.h
│ ├── pthread-win32.c
│ ├── test/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── expected.out
│ │ ├── regress.in
│ │ ├── regress.pl
│ │ └── uri-regress.c
│ ├── win32.c
│ └── win32.h
├── makefiles/
│ ├── Makefile
│ ├── Makefile.aix
│ ├── Makefile.cygwin
│ ├── Makefile.darwin
│ ├── Makefile.freebsd
│ ├── Makefile.hpux
│ ├── Makefile.linux
│ ├── Makefile.netbsd
│ ├── Makefile.openbsd
│ ├── Makefile.solaris
│ ├── Makefile.win32
│ └── pgxs.mk
├── modules/
│ ├── Makefile
│ ├── gdd/
│ │ ├── Makefile
│ │ ├── global_deadlock_detector--1.0.sql
│ │ ├── global_deadlock_detector.c
│ │ └── global_deadlock_detector.control
│ └── remote_rel/
│ ├── Makefile
│ ├── common.h
│ ├── ddl_applier.c
│ ├── ddl_applier.h
│ ├── ddl_logger.c
│ ├── ddl_logger.h
│ ├── hooks.c
│ ├── log_utils.c
│ ├── log_utils.h
│ ├── remote_ddl.c
│ ├── remote_ddl.h
│ ├── remote_rel--1.0.sql
│ ├── remote_rel.control
│ ├── sequence_service.c
│ ├── sequence_service.h
│ ├── utils.c
│ └── utils.h
├── nls-global.mk
├── pl/
│ ├── Makefile
│ ├── plperl/
│ │ ├── .gitignore
│ │ ├── GNUmakefile
│ │ ├── README
│ │ ├── SPI.xs
│ │ ├── Util.xs
│ │ ├── expected/
│ │ │ ├── plperl.out
│ │ │ ├── plperl_array.out
│ │ │ ├── plperl_call.out
│ │ │ ├── plperl_elog.out
│ │ │ ├── plperl_elog_1.out
│ │ │ ├── plperl_init.out
│ │ │ ├── plperl_lc.out
│ │ │ ├── plperl_lc_1.out
│ │ │ ├── plperl_plperlu.out
│ │ │ ├── plperl_shared.out
│ │ │ ├── plperl_transaction.out
│ │ │ ├── plperl_trigger.out
│ │ │ ├── plperl_util.out
│ │ │ └── plperlu.out
│ │ ├── nls.mk
│ │ ├── plc_perlboot.pl
│ │ ├── plc_trusted.pl
│ │ ├── plperl--1.0.sql
│ │ ├── plperl--unpackaged--1.0.sql
│ │ ├── plperl.c
│ │ ├── plperl.control
│ │ ├── plperl.h
│ │ ├── plperl_helpers.h
│ │ ├── plperl_opmask.pl
│ │ ├── plperlu--1.0.sql
│ │ ├── plperlu--unpackaged--1.0.sql
│ │ ├── plperlu.control
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ro.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── ppport.h
│ │ ├── sql/
│ │ │ ├── plperl.sql
│ │ │ ├── plperl_array.sql
│ │ │ ├── plperl_call.sql
│ │ │ ├── plperl_elog.sql
│ │ │ ├── plperl_end.sql
│ │ │ ├── plperl_init.sql
│ │ │ ├── plperl_lc.sql
│ │ │ ├── plperl_plperlu.sql
│ │ │ ├── plperl_shared.sql
│ │ │ ├── plperl_transaction.sql
│ │ │ ├── plperl_trigger.sql
│ │ │ ├── plperl_util.sql
│ │ │ └── plperlu.sql
│ │ └── text2macro.pl
│ ├── plpgsql/
│ │ ├── Makefile
│ │ └── src/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── plpgsql_cache.out
│ │ │ ├── plpgsql_cache_1.out
│ │ │ ├── plpgsql_call.out
│ │ │ ├── plpgsql_control.out
│ │ │ ├── plpgsql_domain.out
│ │ │ ├── plpgsql_record.out
│ │ │ ├── plpgsql_transaction.out
│ │ │ ├── plpgsql_trigger.out
│ │ │ └── plpgsql_varprops.out
│ │ ├── generate-plerrcodes.pl
│ │ ├── nls.mk
│ │ ├── pl_comp.c
│ │ ├── pl_exec.c
│ │ ├── pl_funcs.c
│ │ ├── pl_gram.y
│ │ ├── pl_handler.c
│ │ ├── pl_scanner.c
│ │ ├── plpgsql--1.0.sql
│ │ ├── plpgsql--unpackaged--1.0.sql
│ │ ├── plpgsql.control
│ │ ├── plpgsql.h
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ro.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── sql/
│ │ ├── plpgsql_cache.sql
│ │ ├── plpgsql_call.sql
│ │ ├── plpgsql_control.sql
│ │ ├── plpgsql_domain.sql
│ │ ├── plpgsql_record.sql
│ │ ├── plpgsql_transaction.sql
│ │ ├── plpgsql_trigger.sql
│ │ └── plpgsql_varprops.sql
│ ├── plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── README
│ │ │ ├── plpython_call.out
│ │ │ ├── plpython_composite.out
│ │ │ ├── plpython_do.out
│ │ │ ├── plpython_drop.out
│ │ │ ├── plpython_ereport.out
│ │ │ ├── plpython_error.out
│ │ │ ├── plpython_error_0.out
│ │ │ ├── plpython_error_5.out
│ │ │ ├── plpython_global.out
│ │ │ ├── plpython_import.out
│ │ │ ├── plpython_newline.out
│ │ │ ├── plpython_params.out
│ │ │ ├── plpython_populate.out
│ │ │ ├── plpython_quote.out
│ │ │ ├── plpython_record.out
│ │ │ ├── plpython_schema.out
│ │ │ ├── plpython_setof.out
│ │ │ ├── plpython_spi.out
│ │ │ ├── plpython_subtransaction.out
│ │ │ ├── plpython_subtransaction_0.out
│ │ │ ├── plpython_subtransaction_5.out
│ │ │ ├── plpython_test.out
│ │ │ ├── plpython_transaction.out
│ │ │ ├── plpython_trigger.out
│ │ │ ├── plpython_types.out
│ │ │ ├── plpython_types_3.out
│ │ │ ├── plpython_unicode.out
│ │ │ └── plpython_void.out
│ │ ├── generate-spiexceptions.pl
│ │ ├── nls.mk
│ │ ├── plpy_cursorobject.c
│ │ ├── plpy_cursorobject.h
│ │ ├── plpy_elog.c
│ │ ├── plpy_elog.h
│ │ ├── plpy_exec.c
│ │ ├── plpy_exec.h
│ │ ├── plpy_main.c
│ │ ├── plpy_main.h
│ │ ├── plpy_planobject.c
│ │ ├── plpy_planobject.h
│ │ ├── plpy_plpymodule.c
│ │ ├── plpy_plpymodule.h
│ │ ├── plpy_procedure.c
│ │ ├── plpy_procedure.h
│ │ ├── plpy_resultobject.c
│ │ ├── plpy_resultobject.h
│ │ ├── plpy_spi.c
│ │ ├── plpy_spi.h
│ │ ├── plpy_subxactobject.c
│ │ ├── plpy_subxactobject.h
│ │ ├── plpy_typeio.c
│ │ ├── plpy_typeio.h
│ │ ├── plpy_util.c
│ │ ├── plpy_util.h
│ │ ├── plpython.h
│ │ ├── plpython2u--1.0.sql
│ │ ├── plpython2u--unpackaged--1.0.sql
│ │ ├── plpython2u.control
│ │ ├── plpython3u--1.0.sql
│ │ ├── plpython3u--unpackaged--1.0.sql
│ │ ├── plpython3u.control
│ │ ├── plpythonu--1.0.sql
│ │ ├── plpythonu--unpackaged--1.0.sql
│ │ ├── plpythonu.control
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── regress-python3-mangle.mk
│ │ └── sql/
│ │ ├── plpython_call.sql
│ │ ├── plpython_composite.sql
│ │ ├── plpython_do.sql
│ │ ├── plpython_drop.sql
│ │ ├── plpython_ereport.sql
│ │ ├── plpython_error.sql
│ │ ├── plpython_global.sql
│ │ ├── plpython_import.sql
│ │ ├── plpython_newline.sql
│ │ ├── plpython_params.sql
│ │ ├── plpython_populate.sql
│ │ ├── plpython_quote.sql
│ │ ├── plpython_record.sql
│ │ ├── plpython_schema.sql
│ │ ├── plpython_setof.sql
│ │ ├── plpython_spi.sql
│ │ ├── plpython_subtransaction.sql
│ │ ├── plpython_test.sql
│ │ ├── plpython_transaction.sql
│ │ ├── plpython_trigger.sql
│ │ ├── plpython_types.sql
│ │ ├── plpython_unicode.sql
│ │ └── plpython_void.sql
│ └── tcl/
│ ├── .gitignore
│ ├── Makefile
│ ├── expected/
│ │ ├── pltcl_call.out
│ │ ├── pltcl_queries.out
│ │ ├── pltcl_setup.out
│ │ ├── pltcl_start_proc.out
│ │ ├── pltcl_subxact.out
│ │ ├── pltcl_transaction.out
│ │ └── pltcl_unicode.out
│ ├── generate-pltclerrcodes.pl
│ ├── nls.mk
│ ├── pltcl--1.0.sql
│ ├── pltcl--unpackaged--1.0.sql
│ ├── pltcl.c
│ ├── pltcl.control
│ ├── pltclu--1.0.sql
│ ├── pltclu--unpackaged--1.0.sql
│ ├── pltclu.control
│ ├── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ ├── vi.po
│ │ └── zh_CN.po
│ └── sql/
│ ├── pltcl_call.sql
│ ├── pltcl_queries.sql
│ ├── pltcl_setup.sql
│ ├── pltcl_start_proc.sql
│ ├── pltcl_subxact.sql
│ ├── pltcl_transaction.sql
│ └── pltcl_unicode.sql
├── port/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ ├── chklocale.c
│ ├── crypt.c
│ ├── dirent.c
│ ├── dirmod.c
│ ├── erand48.c
│ ├── fls.c
│ ├── fseeko.c
│ ├── getaddrinfo.c
│ ├── getopt.c
│ ├── getopt_long.c
│ ├── getpeereid.c
│ ├── getrusage.c
│ ├── gettimeofday.c
│ ├── inet_aton.c
│ ├── inet_net_ntop.c
│ ├── isinf.c
│ ├── kill.c
│ ├── mkdtemp.c
│ ├── noblock.c
│ ├── open.c
│ ├── path.c
│ ├── pg_crc32c_armv8.c
│ ├── pg_crc32c_armv8_choose.c
│ ├── pg_crc32c_sb8.c
│ ├── pg_crc32c_sse42.c
│ ├── pg_crc32c_sse42_choose.c
│ ├── pg_strong_random.c
│ ├── pgcheckdir.c
│ ├── pgmkdirp.c
│ ├── pgsleep.c
│ ├── pgstrcasecmp.c
│ ├── pqsignal.c
│ ├── pthread-win32.h
│ ├── qsort.c
│ ├── qsort_arg.c
│ ├── quotes.c
│ ├── random.c
│ ├── rint.c
│ ├── snprintf.c
│ ├── sprompt.c
│ ├── srandom.c
│ ├── strerror.c
│ ├── strlcat.c
│ ├── strlcpy.c
│ ├── strnlen.c
│ ├── system.c
│ ├── tar.c
│ ├── thread.c
│ ├── unsetenv.c
│ ├── win32env.c
│ ├── win32error.c
│ ├── win32security.c
│ └── win32setlocale.c
├── template/
│ ├── aix
│ ├── cygwin
│ ├── darwin
│ ├── freebsd
│ ├── hpux
│ ├── linux
│ ├── netbsd
│ ├── openbsd
│ ├── solaris
│ └── win32
├── test/
│ ├── Makefile
│ ├── README
│ ├── authentication/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ ├── 001_password.pl
│ │ └── 002_saslprep.pl
│ ├── examples/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── testlibpq.c
│ │ ├── testlibpq2.c
│ │ ├── testlibpq2.sql
│ │ ├── testlibpq3.c
│ │ ├── testlibpq3.sql
│ │ ├── testlibpq4.c
│ │ ├── testlo.c
│ │ └── testlo64.c
│ ├── isolation/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── expected/
│ │ │ ├── aborted-keyrevoke.out
│ │ │ ├── aborted-keyrevoke_2.out
│ │ │ ├── alter-table-1.out
│ │ │ ├── alter-table-2.out
│ │ │ ├── alter-table-3.out
│ │ │ ├── alter-table-4.out
│ │ │ ├── async-notify.out
│ │ │ ├── classroom-scheduling.out
│ │ │ ├── create-trigger.out
│ │ │ ├── deadlock-hard.out
│ │ │ ├── deadlock-simple.out
│ │ │ ├── deadlock-soft-2.out
│ │ │ ├── deadlock-soft.out
│ │ │ ├── delete-abort-savept-2.out
│ │ │ ├── delete-abort-savept.out
│ │ │ ├── drop-index-concurrently-1.out
│ │ │ ├── drop-index-concurrently-1_2.out
│ │ │ ├── eval-plan-qual.out
│ │ │ ├── fk-contention.out
│ │ │ ├── fk-deadlock.out
│ │ │ ├── fk-deadlock2.out
│ │ │ ├── fk-deadlock2_1.out
│ │ │ ├── fk-deadlock2_2.out
│ │ │ ├── fk-deadlock_1.out
│ │ │ ├── freeze-the-dead.out
│ │ │ ├── index-only-scan.out
│ │ │ ├── inherit-temp.out
│ │ │ ├── insert-conflict-do-nothing-2.out
│ │ │ ├── insert-conflict-do-nothing.out
│ │ │ ├── insert-conflict-do-update-2.out
│ │ │ ├── insert-conflict-do-update-3.out
│ │ │ ├── insert-conflict-do-update.out
│ │ │ ├── insert-conflict-specconflict.out
│ │ │ ├── insert-conflict-toast.out
│ │ │ ├── insert-conflict-toast_1.out
│ │ │ ├── lock-committed-keyupdate.out
│ │ │ ├── lock-committed-update.out
│ │ │ ├── lock-update-delete.out
│ │ │ ├── lock-update-delete_1.out
│ │ │ ├── lock-update-traversal.out
│ │ │ ├── multiple-cic.out
│ │ │ ├── multiple-cic_1.out
│ │ │ ├── multiple-row-versions.out
│ │ │ ├── multixact-no-deadlock.out
│ │ │ ├── multixact-no-forget.out
│ │ │ ├── multixact-no-forget_1.out
│ │ │ ├── nowait-2.out
│ │ │ ├── nowait-3.out
│ │ │ ├── nowait-4.out
│ │ │ ├── nowait-4_1.out
│ │ │ ├── nowait-5.out
│ │ │ ├── nowait.out
│ │ │ ├── partial-index.out
│ │ │ ├── partition-key-update-1.out
│ │ │ ├── partition-key-update-2.out
│ │ │ ├── partition-key-update-3.out
│ │ │ ├── partition-key-update-4.out
│ │ │ ├── plpgsql-toast.out
│ │ │ ├── predicate-gin.out
│ │ │ ├── predicate-gist.out
│ │ │ ├── predicate-hash.out
│ │ │ ├── prepared-transactions.out
│ │ │ ├── project-manager.out
│ │ │ ├── propagate-lock-delete.out
│ │ │ ├── read-only-anomaly-2.out
│ │ │ ├── read-only-anomaly-3.out
│ │ │ ├── read-only-anomaly.out
│ │ │ ├── read-write-unique-2.out
│ │ │ ├── read-write-unique-3.out
│ │ │ ├── read-write-unique-4.out
│ │ │ ├── read-write-unique.out
│ │ │ ├── receipt-report.out
│ │ │ ├── referential-integrity.out
│ │ │ ├── ri-trigger.out
│ │ │ ├── sequence-ddl.out
│ │ │ ├── simple-write-skew.out
│ │ │ ├── skip-locked-2.out
│ │ │ ├── skip-locked-3.out
│ │ │ ├── skip-locked-4.out
│ │ │ ├── skip-locked-4_1.out
│ │ │ ├── skip-locked.out
│ │ │ ├── temporal-range-integrity.out
│ │ │ ├── timeouts.out
│ │ │ ├── total-cash.out
│ │ │ ├── tuplelock-conflict.out
│ │ │ ├── tuplelock-update.out
│ │ │ ├── tuplelock-upgrade-no-deadlock.out
│ │ │ ├── two-ids.out
│ │ │ ├── update-locked-tuple.out
│ │ │ ├── vacuum-concurrent-drop.out
│ │ │ └── vacuum-reltuples.out
│ │ ├── isolation_main.c
│ │ ├── isolation_schedule
│ │ ├── isolationtester.c
│ │ ├── isolationtester.h
│ │ ├── specparse.y
│ │ ├── specs/
│ │ │ ├── aborted-keyrevoke.spec
│ │ │ ├── alter-table-1.spec
│ │ │ ├── alter-table-2.spec
│ │ │ ├── alter-table-3.spec
│ │ │ ├── alter-table-4.spec
│ │ │ ├── async-notify.spec
│ │ │ ├── classroom-scheduling.spec
│ │ │ ├── create-trigger.spec
│ │ │ ├── deadlock-hard.spec
│ │ │ ├── deadlock-simple.spec
│ │ │ ├── deadlock-soft-2.spec
│ │ │ ├── deadlock-soft.spec
│ │ │ ├── delete-abort-savept-2.spec
│ │ │ ├── delete-abort-savept.spec
│ │ │ ├── drop-index-concurrently-1.spec
│ │ │ ├── eval-plan-qual.spec
│ │ │ ├── fk-contention.spec
│ │ │ ├── fk-deadlock.spec
│ │ │ ├── fk-deadlock2.spec
│ │ │ ├── freeze-the-dead.spec
│ │ │ ├── index-only-scan.spec
│ │ │ ├── inherit-temp.spec
│ │ │ ├── insert-conflict-do-nothing-2.spec
│ │ │ ├── insert-conflict-do-nothing.spec
│ │ │ ├── insert-conflict-do-update-2.spec
│ │ │ ├── insert-conflict-do-update-3.spec
│ │ │ ├── insert-conflict-do-update.spec
│ │ │ ├── insert-conflict-specconflict.spec
│ │ │ ├── insert-conflict-toast.spec
│ │ │ ├── lock-committed-keyupdate.spec
│ │ │ ├── lock-committed-update.spec
│ │ │ ├── lock-update-delete.spec
│ │ │ ├── lock-update-traversal.spec
│ │ │ ├── multiple-cic.spec
│ │ │ ├── multiple-row-versions.spec
│ │ │ ├── multixact-no-deadlock.spec
│ │ │ ├── multixact-no-forget.spec
│ │ │ ├── nowait-2.spec
│ │ │ ├── nowait-3.spec
│ │ │ ├── nowait-4.spec
│ │ │ ├── nowait-5.spec
│ │ │ ├── nowait.spec
│ │ │ ├── partial-index.spec
│ │ │ ├── partition-key-update-1.spec
│ │ │ ├── partition-key-update-2.spec
│ │ │ ├── partition-key-update-3.spec
│ │ │ ├── partition-key-update-4.spec
│ │ │ ├── plpgsql-toast.spec
│ │ │ ├── predicate-gin.spec
│ │ │ ├── predicate-gist.spec
│ │ │ ├── predicate-hash.spec
│ │ │ ├── prepared-transactions.spec
│ │ │ ├── project-manager.spec
│ │ │ ├── propagate-lock-delete.spec
│ │ │ ├── read-only-anomaly-2.spec
│ │ │ ├── read-only-anomaly-3.spec
│ │ │ ├── read-only-anomaly.spec
│ │ │ ├── read-write-unique-2.spec
│ │ │ ├── read-write-unique-3.spec
│ │ │ ├── read-write-unique-4.spec
│ │ │ ├── read-write-unique.spec
│ │ │ ├── receipt-report.spec
│ │ │ ├── referential-integrity.spec
│ │ │ ├── ri-trigger.spec
│ │ │ ├── sequence-ddl.spec
│ │ │ ├── simple-write-skew.spec
│ │ │ ├── skip-locked-2.spec
│ │ │ ├── skip-locked-3.spec
│ │ │ ├── skip-locked-4.spec
│ │ │ ├── skip-locked.spec
│ │ │ ├── temporal-range-integrity.spec
│ │ │ ├── timeouts.spec
│ │ │ ├── total-cash.spec
│ │ │ ├── tuplelock-conflict.spec
│ │ │ ├── tuplelock-update.spec
│ │ │ ├── tuplelock-upgrade-no-deadlock.spec
│ │ │ ├── two-ids.spec
│ │ │ ├── update-locked-tuple.spec
│ │ │ ├── vacuum-concurrent-drop.spec
│ │ │ └── vacuum-reltuples.spec
│ │ └── specscanner.l
│ ├── kerberos/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ └── 001_auth.pl
│ ├── kunlun/
│ │ ├── crash_safe/
│ │ │ ├── shard_master_failover.py
│ │ │ └── timeout.py
│ │ ├── ddl/
│ │ │ └── ddl.py
│ │ ├── gdd/
│ │ │ ├── comp-nodes2.json
│ │ │ ├── comp-nodes3.json
│ │ │ └── gdd2.py
│ │ ├── seq.txt
│ │ ├── smoke/
│ │ │ ├── SmokeTest.java
│ │ │ └── test.py
│ │ └── txn/
│ │ └── implicit_commit.c
│ ├── ldap/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── authdata.ldif
│ │ └── t/
│ │ └── 001_auth.pl
│ ├── locale/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── de_DE.ISO8859-1/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── de-ctype.out
│ │ │ │ ├── test-de-char.sql.out
│ │ │ │ ├── test-de-select.sql.out
│ │ │ │ ├── test-de-sort.out
│ │ │ │ ├── test-de-text.sql.out
│ │ │ │ ├── test-de-upper-char.sql.out
│ │ │ │ ├── test-de-upper-text.sql.out
│ │ │ │ ├── test-de-upper-varchar.sql.out
│ │ │ │ └── test-de-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-de-select.sql.in
│ │ │ ├── test-de-sort.in
│ │ │ ├── test-de-upper.sql.in
│ │ │ └── test-de.sql.in
│ │ ├── gr_GR.ISO8859-7/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── gr-ctype.out
│ │ │ │ ├── test-gr-char.sql.out
│ │ │ │ ├── test-gr-select.sql.out
│ │ │ │ ├── test-gr-sort.out
│ │ │ │ ├── test-gr-text.sql.out
│ │ │ │ └── test-gr-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-gr-select.sql.in
│ │ │ ├── test-gr-sort.in
│ │ │ └── test-gr.sql.in
│ │ ├── koi8-r/
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ ├── koi8-ctype.out
│ │ │ │ ├── test-koi8-char.sql.out
│ │ │ │ ├── test-koi8-select.sql.out
│ │ │ │ ├── test-koi8-sort.out
│ │ │ │ ├── test-koi8-text.sql.out
│ │ │ │ └── test-koi8-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-koi8-select.sql.in
│ │ │ ├── test-koi8-sort.in
│ │ │ └── test-koi8.sql.in
│ │ ├── koi8-to-win1251/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── test-koi8-char.sql.out
│ │ │ │ ├── test-koi8-select.sql.out
│ │ │ │ ├── test-koi8-sort.out
│ │ │ │ ├── test-koi8-text.sql.out
│ │ │ │ └── test-koi8-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-koi8-select.sql.in
│ │ │ ├── test-koi8-sort.in
│ │ │ └── test-koi8.sql.in
│ │ ├── sort-test.pl
│ │ ├── sort-test.py
│ │ └── test-ctype.c
│ ├── mb/
│ │ ├── README
│ │ ├── expected/
│ │ │ ├── big5.out
│ │ │ ├── euc_cn.out
│ │ │ ├── euc_jp.out
│ │ │ ├── euc_kr.out
│ │ │ ├── euc_tw.out
│ │ │ ├── gb18030.out
│ │ │ ├── mule_internal.out
│ │ │ ├── sjis.out
│ │ │ └── utf8.out
│ │ ├── mbregress.sh
│ │ └── sql/
│ │ ├── big5.sql
│ │ ├── euc_cn.sql
│ │ ├── euc_jp.sql
│ │ ├── euc_kr.sql
│ │ ├── euc_tw.sql
│ │ ├── gb18030.sql
│ │ ├── mule_internal.sql
│ │ ├── sjis.sql
│ │ └── utf8.sql
│ ├── modules/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── brin/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ └── summarization-and-inprogress-insertion.out
│ │ │ ├── specs/
│ │ │ │ └── summarization-and-inprogress-insertion.spec
│ │ │ └── t/
│ │ │ └── 01_workitems.pl
│ │ ├── commit_ts/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── commit_ts.conf
│ │ │ ├── expected/
│ │ │ │ ├── commit_timestamp.out
│ │ │ │ └── commit_timestamp_1.out
│ │ │ ├── sql/
│ │ │ │ └── commit_timestamp.sql
│ │ │ └── t/
│ │ │ ├── 001_base.pl
│ │ │ ├── 002_standby.pl
│ │ │ ├── 003_standby_2.pl
│ │ │ └── 004_restart.pl
│ │ ├── dummy_seclabel/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── dummy_seclabel--1.0.sql
│ │ │ ├── dummy_seclabel.c
│ │ │ ├── dummy_seclabel.control
│ │ │ ├── expected/
│ │ │ │ └── dummy_seclabel.out
│ │ │ └── sql/
│ │ │ └── dummy_seclabel.sql
│ │ ├── snapshot_too_old/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ ├── sto_using_cursor.out
│ │ │ │ ├── sto_using_hash_index.out
│ │ │ │ └── sto_using_select.out
│ │ │ ├── specs/
│ │ │ │ ├── sto_using_cursor.spec
│ │ │ │ ├── sto_using_hash_index.spec
│ │ │ │ └── sto_using_select.spec
│ │ │ └── sto.conf
│ │ ├── test_bloomfilter/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_bloomfilter.out
│ │ │ ├── sql/
│ │ │ │ └── test_bloomfilter.sql
│ │ │ ├── test_bloomfilter--1.0.sql
│ │ │ ├── test_bloomfilter.c
│ │ │ └── test_bloomfilter.control
│ │ ├── test_ddl_deparse/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── alter_extension.out
│ │ │ │ ├── alter_function.out
│ │ │ │ ├── alter_sequence.out
│ │ │ │ ├── alter_table.out
│ │ │ │ ├── alter_ts_config.out
│ │ │ │ ├── alter_type_enum.out
│ │ │ │ ├── comment_on.out
│ │ │ │ ├── create_conversion.out
│ │ │ │ ├── create_domain.out
│ │ │ │ ├── create_extension.out
│ │ │ │ ├── create_function.out
│ │ │ │ ├── create_operator.out
│ │ │ │ ├── create_rule.out
│ │ │ │ ├── create_schema.out
│ │ │ │ ├── create_sequence_1.out
│ │ │ │ ├── create_table.out
│ │ │ │ ├── create_transform.out
│ │ │ │ ├── create_trigger.out
│ │ │ │ ├── create_type.out
│ │ │ │ ├── create_view.out
│ │ │ │ ├── defprivs.out
│ │ │ │ ├── matviews.out
│ │ │ │ ├── opfamily.out
│ │ │ │ └── test_ddl_deparse.out
│ │ │ ├── sql/
│ │ │ │ ├── alter_function.sql
│ │ │ │ ├── alter_sequence.sql
│ │ │ │ ├── alter_table.sql
│ │ │ │ ├── alter_ts_config.sql
│ │ │ │ ├── alter_type_enum.sql
│ │ │ │ ├── comment_on.sql
│ │ │ │ ├── create_conversion.sql
│ │ │ │ ├── create_domain.sql
│ │ │ │ ├── create_extension.sql
│ │ │ │ ├── create_rule.sql
│ │ │ │ ├── create_schema.sql
│ │ │ │ ├── create_sequence_1.sql
│ │ │ │ ├── create_table.sql
│ │ │ │ ├── create_transform.sql
│ │ │ │ ├── create_trigger.sql
│ │ │ │ ├── create_type.sql
│ │ │ │ ├── create_view.sql
│ │ │ │ ├── defprivs.sql
│ │ │ │ ├── matviews.sql
│ │ │ │ ├── opfamily.sql
│ │ │ │ └── test_ddl_deparse.sql
│ │ │ ├── test_ddl_deparse--1.0.sql
│ │ │ ├── test_ddl_deparse.c
│ │ │ └── test_ddl_deparse.control
│ │ ├── test_extensions/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ ├── test_extdepend.out
│ │ │ │ └── test_extensions.out
│ │ │ ├── sql/
│ │ │ │ ├── test_extdepend.sql
│ │ │ │ └── test_extensions.sql
│ │ │ ├── test_ext1--1.0.sql
│ │ │ ├── test_ext1.control
│ │ │ ├── test_ext2--1.0.sql
│ │ │ ├── test_ext2.control
│ │ │ ├── test_ext3--1.0.sql
│ │ │ ├── test_ext3.control
│ │ │ ├── test_ext4--1.0.sql
│ │ │ ├── test_ext4.control
│ │ │ ├── test_ext5--1.0.sql
│ │ │ ├── test_ext5.control
│ │ │ ├── test_ext6--1.0.sql
│ │ │ ├── test_ext6.control
│ │ │ ├── test_ext7--1.0--2.0.sql
│ │ │ ├── test_ext7--1.0.sql
│ │ │ ├── test_ext7.control
│ │ │ ├── test_ext8--1.0.sql
│ │ │ ├── test_ext8.control
│ │ │ ├── test_ext_cyclic1--1.0.sql
│ │ │ ├── test_ext_cyclic1.control
│ │ │ ├── test_ext_cyclic2--1.0.sql
│ │ │ └── test_ext_cyclic2.control
│ │ ├── test_parser/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_parser.out
│ │ │ ├── sql/
│ │ │ │ └── test_parser.sql
│ │ │ ├── test_parser--1.0.sql
│ │ │ ├── test_parser--unpackaged--1.0.sql
│ │ │ ├── test_parser.c
│ │ │ └── test_parser.control
│ │ ├── test_pg_dump/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_pg_dump.out
│ │ │ ├── sql/
│ │ │ │ └── test_pg_dump.sql
│ │ │ ├── t/
│ │ │ │ └── 001_base.pl
│ │ │ ├── test_pg_dump--1.0.sql
│ │ │ └── test_pg_dump.control
│ │ ├── test_predtest/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_predtest.out
│ │ │ ├── sql/
│ │ │ │ └── test_predtest.sql
│ │ │ ├── test_predtest--1.0.sql
│ │ │ ├── test_predtest.c
│ │ │ └── test_predtest.control
│ │ ├── test_rbtree/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_rbtree.out
│ │ │ ├── sql/
│ │ │ │ └── test_rbtree.sql
│ │ │ ├── test_rbtree--1.0.sql
│ │ │ ├── test_rbtree.c
│ │ │ └── test_rbtree.control
│ │ ├── test_rls_hooks/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_rls_hooks.out
│ │ │ ├── rls_hooks.conf
│ │ │ ├── sql/
│ │ │ │ └── test_rls_hooks.sql
│ │ │ ├── test_rls_hooks.c
│ │ │ ├── test_rls_hooks.control
│ │ │ └── test_rls_hooks.h
│ │ ├── test_shm_mq/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_shm_mq.out
│ │ │ ├── setup.c
│ │ │ ├── sql/
│ │ │ │ └── test_shm_mq.sql
│ │ │ ├── test.c
│ │ │ ├── test_shm_mq--1.0.sql
│ │ │ ├── test_shm_mq.control
│ │ │ ├── test_shm_mq.h
│ │ │ └── worker.c
│ │ └── worker_spi/
│ │ ├── Makefile
│ │ ├── worker_spi--1.0.sql
│ │ ├── worker_spi.c
│ │ └── worker_spi.control
│ ├── perl/
│ │ ├── Makefile
│ │ ├── PostgresNode.pm
│ │ ├── README
│ │ ├── RecursiveCopy.pm
│ │ ├── SimpleTee.pm
│ │ └── TestLib.pm
│ ├── recovery/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ ├── 001_stream_rep.pl
│ │ ├── 002_archiving.pl
│ │ ├── 003_recovery_targets.pl
│ │ ├── 004_timeline_switch.pl
│ │ ├── 005_replay_delay.pl
│ │ ├── 006_logical_decoding.pl
│ │ ├── 007_sync_rep.pl
│ │ ├── 008_fsm_truncation.pl
│ │ ├── 009_twophase.pl
│ │ ├── 010_logical_decoding_timelines.pl
│ │ ├── 011_crash_recovery.pl
│ │ ├── 012_subtransactions.pl
│ │ ├── 013_crash_restart.pl
│ │ ├── 014_unlogged_reinit.pl
│ │ ├── 015_promotion_pages.pl
│ │ └── 017_shm.pl
│ ├── regress/
│ │ ├── .gitignore
│ │ ├── GNUmakefile
│ │ ├── Makefile
│ │ ├── README
│ │ ├── data/
│ │ │ ├── agg.data
│ │ │ ├── array.data
│ │ │ ├── constrf.data
│ │ │ ├── constro.data
│ │ │ ├── dept.data
│ │ │ ├── desc.data
│ │ │ ├── emp.data
│ │ │ ├── hash.data
│ │ │ ├── jsonb.data
│ │ │ ├── onek.data
│ │ │ ├── person.data
│ │ │ ├── real_city.data
│ │ │ ├── rect.data
│ │ │ ├── streets.data
│ │ │ ├── stud_emp.data
│ │ │ ├── student.data
│ │ │ ├── tenk.data
│ │ │ └── tsearch.data
│ │ ├── expected/
│ │ │ ├── .gitignore
│ │ │ ├── abstime.out
│ │ │ ├── advisory_lock.out
│ │ │ ├── aggregates.out
│ │ │ ├── alter_generic.out
│ │ │ ├── alter_operator.out
│ │ │ ├── alter_table.out
│ │ │ ├── alter_table2.out
│ │ │ ├── alter_table3.out
│ │ │ ├── amutils.out
│ │ │ ├── arrays.out
│ │ │ ├── async.out
│ │ │ ├── autocommit.out
│ │ │ ├── bit.out
│ │ │ ├── bitmapops.out
│ │ │ ├── boolean.out
│ │ │ ├── box.out
│ │ │ ├── brin.out
│ │ │ ├── btree_index.out
│ │ │ ├── case.out
│ │ │ ├── char.out
│ │ │ ├── char_1.out
│ │ │ ├── char_2.out
│ │ │ ├── charset_zh_CN.out
│ │ │ ├── circle.out
│ │ │ ├── cluster.out
│ │ │ ├── collate.icu.utf8.out
│ │ │ ├── collate.linux.utf8.out
│ │ │ ├── collate.out
│ │ │ ├── combocid.out
│ │ │ ├── comments.out
│ │ │ ├── constraints.out
│ │ │ ├── conversion.out
│ │ │ ├── copy.out
│ │ │ ├── copy2.out
│ │ │ ├── copydml.out
│ │ │ ├── copyselect.out
│ │ │ ├── coverage.out
│ │ │ ├── create_aggregate.out
│ │ │ ├── create_am.out
│ │ │ ├── create_cast.out
│ │ │ ├── create_function_1.out
│ │ │ ├── create_function_2.out
│ │ │ ├── create_function_3.out
│ │ │ ├── create_index.out
│ │ │ ├── create_misc.out
│ │ │ ├── create_operator.out
│ │ │ ├── create_procedure.out
│ │ │ ├── create_table.out
│ │ │ ├── create_table_like.out
│ │ │ ├── create_type.out
│ │ │ ├── create_view.out
│ │ │ ├── datatypes_simple.out
│ │ │ ├── date.out
│ │ │ ├── dbsize.out
│ │ │ ├── delete.out
│ │ │ ├── dependency.out
│ │ │ ├── domain.out
│ │ │ ├── drop_if_exists.out
│ │ │ ├── drop_operator.out
│ │ │ ├── enum.out
│ │ │ ├── enum2.out
│ │ │ ├── equivclass.out
│ │ │ ├── errors.out
│ │ │ ├── event_trigger.out
│ │ │ ├── expressions.out
│ │ │ ├── fast_default.out
│ │ │ ├── float4-exp-three-digits.out
│ │ │ ├── float4.out
│ │ │ ├── float8-exp-three-digits-win32.out
│ │ │ ├── float8-small-is-zero.out
│ │ │ ├── float8-small-is-zero_1.out
│ │ │ ├── float8.out
│ │ │ ├── foreign_data.out
│ │ │ ├── foreign_key.out
│ │ │ ├── functional_deps.out
│ │ │ ├── geometry.out
│ │ │ ├── geometry_1.out
│ │ │ ├── geometry_2.out
│ │ │ ├── gin.out
│ │ │ ├── gist.out
│ │ │ ├── groupingsets.out
│ │ │ ├── guc.out
│ │ │ ├── hash_func.out
│ │ │ ├── hash_index.out
│ │ │ ├── hash_part.out
│ │ │ ├── horology.out
│ │ │ ├── hs_standby_allowed.out
│ │ │ ├── hs_standby_check.out
│ │ │ ├── hs_standby_disallowed.out
│ │ │ ├── hs_standby_functions.out
│ │ │ ├── identity.out
│ │ │ ├── index_including.out
│ │ │ ├── indexing.out
│ │ │ ├── indirect_toast.out
│ │ │ ├── inet.out
│ │ │ ├── inherit.out
│ │ │ ├── init_privs.out
│ │ │ ├── insert.out
│ │ │ ├── insert_conflict.out
│ │ │ ├── int2.out
│ │ │ ├── int4.out
│ │ │ ├── int8-exp-three-digits.out
│ │ │ ├── int8.out
│ │ │ ├── interval.out
│ │ │ ├── join.out
│ │ │ ├── join2.out
│ │ │ ├── json.out
│ │ │ ├── json_encoding.out
│ │ │ ├── json_encoding_1.out
│ │ │ ├── jsonb.out
│ │ │ ├── kunlun_alter_table.out
│ │ │ ├── kunlun_remote.out
│ │ │ ├── kunlun_remote_dml.out
│ │ │ ├── kunlun_sequence_noalter.out
│ │ │ ├── kunlun_ticket.out
│ │ │ ├── kunlun_vars.out
│ │ │ ├── lex_quotes_pg.out
│ │ │ ├── limit.out
│ │ │ ├── line.out
│ │ │ ├── lock.out
│ │ │ ├── lseg.out
│ │ │ ├── macaddr.out
│ │ │ ├── macaddr8.out
│ │ │ ├── matview.out
│ │ │ ├── misc.out
│ │ │ ├── misc_functions.out
│ │ │ ├── misc_sanity.out
│ │ │ ├── money.out
│ │ │ ├── name.out
│ │ │ ├── namespace.out
│ │ │ ├── numeric.out
│ │ │ ├── numeric_big.out
│ │ │ ├── numerology.out
│ │ │ ├── numerology_1.out
│ │ │ ├── object_address.out
│ │ │ ├── oid.out
│ │ │ ├── oidjoins.out
│ │ │ ├── opr_sanity.out
│ │ │ ├── partition_aggregate.out
│ │ │ ├── partition_join.out
│ │ │ ├── partition_prune.out
│ │ │ ├── password.out
│ │ │ ├── path.out
│ │ │ ├── pg_lsn.out
│ │ │ ├── plancache.out
│ │ │ ├── plpgsql.out
│ │ │ ├── point.out
│ │ │ ├── polygon.out
│ │ │ ├── polymorphism.out
│ │ │ ├── portals.out
│ │ │ ├── portals_p2.out
│ │ │ ├── prepare.out
│ │ │ ├── prepared_xacts.out
│ │ │ ├── prepared_xacts_1.out
│ │ │ ├── privileges.out
│ │ │ ├── psql.out
│ │ │ ├── psql_crosstab.out
│ │ │ ├── publication.out
│ │ │ ├── random.out
│ │ │ ├── rangefuncs.out
│ │ │ ├── rangetypes.out
│ │ │ ├── regex.linux.utf8.out
│ │ │ ├── regex.out
│ │ │ ├── regproc.out
│ │ │ ├── reindex_catalog.out
│ │ │ ├── reloptions.out
│ │ │ ├── reltime.out
│ │ │ ├── remote.out
│ │ │ ├── remote_dml.out
│ │ │ ├── remote_dml2.out
│ │ │ ├── remote_dml3.out
│ │ │ ├── remote_dml4.out
│ │ │ ├── remote_opt.out
│ │ │ ├── replica_identity.out
│ │ │ ├── returning.out
│ │ │ ├── roleattributes.out
│ │ │ ├── rolenames.out
│ │ │ ├── rowsecurity.out
│ │ │ ├── rowtypes.out
│ │ │ ├── rules.out
│ │ │ ├── sanity_check.out
│ │ │ ├── schema.out
│ │ │ ├── security_label.out
│ │ │ ├── select.out
│ │ │ ├── select_distinct.out
│ │ │ ├── select_distinct_on.out
│ │ │ ├── select_having.out
│ │ │ ├── select_having_1.out
│ │ │ ├── select_having_2.out
│ │ │ ├── select_implicit.out
│ │ │ ├── select_implicit_1.out
│ │ │ ├── select_implicit_2.out
│ │ │ ├── select_into.out
│ │ │ ├── select_parallel.out
│ │ │ ├── select_views.out
│ │ │ ├── sequence.out
│ │ │ ├── sequence_noalter.out
│ │ │ ├── spgist.out
│ │ │ ├── stats.out
│ │ │ ├── stats_ext.out
│ │ │ ├── strings.out
│ │ │ ├── subscription.out
│ │ │ ├── subselect.out
│ │ │ ├── sysviews.out
│ │ │ ├── tablesample.out
│ │ │ ├── temp.out
│ │ │ ├── text.out
│ │ │ ├── tidscan.out
│ │ │ ├── time.out
│ │ │ ├── timestamp.out
│ │ │ ├── timestamptz.out
│ │ │ ├── timetz.out
│ │ │ ├── tinterval.out
│ │ │ ├── transactions.out
│ │ │ ├── triggers.out
│ │ │ ├── triggers_1.out
│ │ │ ├── truncate.out
│ │ │ ├── tsdicts.out
│ │ │ ├── tsearch.out
│ │ │ ├── tsrf.out
│ │ │ ├── tstypes.out
│ │ │ ├── txid.out
│ │ │ ├── type_sanity.out
│ │ │ ├── typed_table.out
│ │ │ ├── union.out
│ │ │ ├── updatable_views.out
│ │ │ ├── update.out
│ │ │ ├── uuid.out
│ │ │ ├── vacuum.out
│ │ │ ├── varchar.out
│ │ │ ├── varchar_1.out
│ │ │ ├── varchar_2.out
│ │ │ ├── window.out
│ │ │ ├── with.out
│ │ │ ├── without_oid.out
│ │ │ ├── write_parallel.out
│ │ │ ├── xml.out
│ │ │ ├── xml_1.out
│ │ │ ├── xml_2.out
│ │ │ ├── xmlmap.out
│ │ │ └── xmlmap_1.out
│ │ ├── gen_sql.sh
│ │ ├── input/
│ │ │ ├── aggregates.source
│ │ │ ├── constraints.source
│ │ │ ├── copy.source
│ │ │ ├── create_function_1.source
│ │ │ ├── create_function_2.source
│ │ │ ├── join.source
│ │ │ ├── join2.source
│ │ │ ├── kunlun_ticket.source
│ │ │ ├── largeobject.source
│ │ │ ├── misc.source
│ │ │ ├── remote_dml2.source
│ │ │ ├── select.source
│ │ │ ├── select_distinct.source
│ │ │ ├── select_distinct_on.source
│ │ │ ├── tablespace.source
│ │ │ └── union.source
│ │ ├── output/
│ │ │ ├── constraints.source
│ │ │ ├── copy.source
│ │ │ ├── create_function_1.source
│ │ │ ├── create_function_2.source
│ │ │ ├── largeobject.source
│ │ │ ├── largeobject_1.source
│ │ │ ├── misc.source
│ │ │ └── tablespace.source
│ │ ├── parallel_schedule
│ │ ├── pg_regress.c
│ │ ├── pg_regress.h
│ │ ├── pg_regress_main.c
│ │ ├── processout.py
│ │ ├── regress.c
│ │ ├── regressplans.sh
│ │ ├── resultmap
│ │ ├── run_compare.sh
│ │ ├── run_single.sh
│ │ ├── run_single2.sh
│ │ ├── runsuite.sh
│ │ ├── runsuite_expected.sh
│ │ ├── runsuite_expected2.sh
│ │ ├── runsuite_vs_officialpg.sh
│ │ ├── serial_schedule
│ │ ├── serial_schedule_community
│ │ ├── skips/
│ │ │ ├── kunlun_alter_table.skip
│ │ │ ├── kunlun_remote.skip
│ │ │ ├── kunlun_remote_dml.skip
│ │ │ ├── kunlun_sequence_noalter.skip
│ │ │ ├── kunlun_vars.skip
│ │ │ ├── plpgsql.skip
│ │ │ └── vars.skip
│ │ ├── sql/
│ │ │ ├── abstime.sql
│ │ │ ├── advisory_lock.sql
│ │ │ ├── alter_generic.sql
│ │ │ ├── alter_operator.sql
│ │ │ ├── alter_table.sql
│ │ │ ├── alter_table2.sql
│ │ │ ├── alter_table3.sql
│ │ │ ├── amutils.sql
│ │ │ ├── arrays.sql
│ │ │ ├── async.sql
│ │ │ ├── autocommit.sql
│ │ │ ├── bit.sql
│ │ │ ├── bitmapops.sql
│ │ │ ├── boolean.sql
│ │ │ ├── box.sql
│ │ │ ├── brin.sql
│ │ │ ├── btree_index.sql
│ │ │ ├── case.sql
│ │ │ ├── char.sql
│ │ │ ├── charset_zh_CN.sql
│ │ │ ├── circle.sql
│ │ │ ├── cluster.sql
│ │ │ ├── collate.icu.utf8.sql
│ │ │ ├── collate.linux.utf8.sql
│ │ │ ├── collate.sql
│ │ │ ├── combocid.sql
│ │ │ ├── comments.sql
│ │ │ ├── conversion.sql
│ │ │ ├── copy2.sql
│ │ │ ├── copydml.sql
│ │ │ ├── copyselect.sql
│ │ │ ├── coverage.sql
│ │ │ ├── create_aggregate.sql
│ │ │ ├── create_am.sql
│ │ │ ├── create_cast.sql
│ │ │ ├── create_function_3.sql
│ │ │ ├── create_index.sql
│ │ │ ├── create_misc.sql
│ │ │ ├── create_operator.sql
│ │ │ ├── create_procedure.sql
│ │ │ ├── create_table.sql
│ │ │ ├── create_table_like.sql
│ │ │ ├── create_type.sql
│ │ │ ├── create_view.sql
│ │ │ ├── datatypes_simple.sql
│ │ │ ├── date.sql
│ │ │ ├── dbsize.sql
│ │ │ ├── delete.sql
│ │ │ ├── dependency.sql
│ │ │ ├── domain.sql
│ │ │ ├── drop_if_exists.sql
│ │ │ ├── drop_operator.sql
│ │ │ ├── enum.sql
│ │ │ ├── enum2.sql
│ │ │ ├── equivclass.sql
│ │ │ ├── errors.sql
│ │ │ ├── event_trigger.sql
│ │ │ ├── expressions.sql
│ │ │ ├── fast_default.sql
│ │ │ ├── float4.sql
│ │ │ ├── float8.sql
│ │ │ ├── foreign_data.sql
│ │ │ ├── foreign_key.sql
│ │ │ ├── functional_deps.sql
│ │ │ ├── geometry.sql
│ │ │ ├── gin.sql
│ │ │ ├── gist.sql
│ │ │ ├── groupingsets.sql
│ │ │ ├── guc.sql
│ │ │ ├── hash_func.sql
│ │ │ ├── hash_index.sql
│ │ │ ├── hash_part.sql
│ │ │ ├── horology.sql
│ │ │ ├── hs_primary_extremes.sql
│ │ │ ├── hs_primary_setup.sql
│ │ │ ├── hs_standby_allowed.sql
│ │ │ ├── hs_standby_check.sql
│ │ │ ├── hs_standby_disallowed.sql
│ │ │ ├── hs_standby_functions.sql
│ │ │ ├── identity.sql
│ │ │ ├── index_including.sql
│ │ │ ├── indexing.sql
│ │ │ ├── indirect_toast.sql
│ │ │ ├── inet.sql
│ │ │ ├── inherit.sql
│ │ │ ├── init_privs.sql
│ │ │ ├── insert.sql
│ │ │ ├── insert_conflict.sql
│ │ │ ├── int2.sql
│ │ │ ├── int4.sql
│ │ │ ├── int8.sql
│ │ │ ├── interval.sql
│ │ │ ├── joinpart.sql
│ │ │ ├── json.sql
│ │ │ ├── json_encoding.sql
│ │ │ ├── jsonb.sql
│ │ │ ├── kunlun_alter_table.sql
│ │ │ ├── kunlun_remote.sql
│ │ │ ├── kunlun_remote_dml.sql
│ │ │ ├── kunlun_sequence_noalter.sql
│ │ │ ├── kunlun_vars.sql
│ │ │ ├── lex_quotes_pg.sql
│ │ │ ├── limit.sql
│ │ │ ├── line.sql
│ │ │ ├── lock.sql
│ │ │ ├── lseg.sql
│ │ │ ├── macaddr.sql
│ │ │ ├── macaddr8.sql
│ │ │ ├── matview.sql
│ │ │ ├── misc_functions.sql
│ │ │ ├── misc_sanity.sql
│ │ │ ├── money.sql
│ │ │ ├── name.sql
│ │ │ ├── namespace.sql
│ │ │ ├── numeric.sql
│ │ │ ├── numeric_big.sql
│ │ │ ├── numerology.sql
│ │ │ ├── object_address.sql
│ │ │ ├── oid.sql
│ │ │ ├── oidjoins.sql
│ │ │ ├── opr_sanity.sql
│ │ │ ├── partition_aggregate.sql
│ │ │ ├── partition_join.sql
│ │ │ ├── partition_prune.sql
│ │ │ ├── password.sql
│ │ │ ├── path.sql
│ │ │ ├── pg_lsn.sql
│ │ │ ├── plancache.sql
│ │ │ ├── plpgsql.sql
│ │ │ ├── point.sql
│ │ │ ├── polygon.sql
│ │ │ ├── polymorphism.sql
│ │ │ ├── portals.sql
│ │ │ ├── portals_p2.sql
│ │ │ ├── prepare.sql
│ │ │ ├── prepared_xacts.sql
│ │ │ ├── privileges.sql
│ │ │ ├── psql.sql
│ │ │ ├── psql_crosstab.sql
│ │ │ ├── publication.sql
│ │ │ ├── random.sql
│ │ │ ├── rangefuncs.sql
│ │ │ ├── rangetypes.sql
│ │ │ ├── regex.linux.utf8.sql
│ │ │ ├── regex.sql
│ │ │ ├── regproc.sql
│ │ │ ├── reindex_catalog.sql
│ │ │ ├── reloptions.sql
│ │ │ ├── reltime.sql
│ │ │ ├── remote.sql
│ │ │ ├── remote_dml.sql
│ │ │ ├── remote_dml3.sql
│ │ │ ├── remote_dml4.sql
│ │ │ ├── remote_opt.sql
│ │ │ ├── replica_identity.sql
│ │ │ ├── returning.sql
│ │ │ ├── roleattributes.sql
│ │ │ ├── rolenames.sql
│ │ │ ├── rowsecurity.sql
│ │ │ ├── rowtypes.sql
│ │ │ ├── rules.sql
│ │ │ ├── sanity_check.sql
│ │ │ ├── schema.sql
│ │ │ ├── security_label.sql
│ │ │ ├── select_having.sql
│ │ │ ├── select_implicit.sql
│ │ │ ├── select_into.sql
│ │ │ ├── select_parallel.sql
│ │ │ ├── select_views.sql
│ │ │ ├── sequence.sql
│ │ │ ├── sequence_noalter.sql
│ │ │ ├── spgist.sql
│ │ │ ├── stats.sql
│ │ │ ├── stats_ext.sql
│ │ │ ├── strings.sql
│ │ │ ├── subscription.sql
│ │ │ ├── subselect.sql
│ │ │ ├── sysviews.sql
│ │ │ ├── tablesample.sql
│ │ │ ├── temp.sql
│ │ │ ├── text.sql
│ │ │ ├── tidscan.sql
│ │ │ ├── time.sql
│ │ │ ├── timestamp.sql
│ │ │ ├── timestamptz.sql
│ │ │ ├── timetz.sql
│ │ │ ├── tinterval.sql
│ │ │ ├── transactions.sql
│ │ │ ├── triggers.sql
│ │ │ ├── triggers_1.sql
│ │ │ ├── truncate.sql
│ │ │ ├── tsdicts.sql
│ │ │ ├── tsearch.sql
│ │ │ ├── tsrf.sql
│ │ │ ├── tstypes.sql
│ │ │ ├── txid.sql
│ │ │ ├── type_sanity.sql
│ │ │ ├── typed_table.sql
│ │ │ ├── updatable_views.sql
│ │ │ ├── update.sql
│ │ │ ├── uuid.sql
│ │ │ ├── vacuum.sql
│ │ │ ├── varchar.sql
│ │ │ ├── window.sql
│ │ │ ├── with.sql
│ │ │ ├── without_oid.sql
│ │ │ ├── write_parallel.sql
│ │ │ ├── xml.sql
│ │ │ └── xmlmap.sql
│ │ └── standby_schedule
│ ├── ssl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── cas.config
│ │ ├── client.config
│ │ ├── client_ca.config
│ │ ├── root_ca.config
│ │ ├── server-cn-and-alt-names.config
│ │ ├── server-cn-only.config
│ │ ├── server-multiple-alt-names.config
│ │ ├── server-no-names.config
│ │ ├── server-revoked.config
│ │ ├── server-single-alt-name.config
│ │ ├── server_ca.config
│ │ ├── ssl/
│ │ │ ├── .gitignore
│ │ │ ├── both-cas-1.crt
│ │ │ ├── both-cas-2.crt
│ │ │ ├── client+client_ca.crt
│ │ │ ├── client-revoked.crt
│ │ │ ├── client-revoked.key
│ │ │ ├── client.crl
│ │ │ ├── client.crt
│ │ │ ├── client.key
│ │ │ ├── client_ca.crt
│ │ │ ├── client_ca.key
│ │ │ ├── root+client.crl
│ │ │ ├── root+client_ca.crt
│ │ │ ├── root+server.crl
│ │ │ ├── root+server_ca.crt
│ │ │ ├── root.crl
│ │ │ ├── root_ca.crt
│ │ │ ├── root_ca.key
│ │ │ ├── server-cn-and-alt-names.crt
│ │ │ ├── server-cn-and-alt-names.key
│ │ │ ├── server-cn-only.crt
│ │ │ ├── server-cn-only.key
│ │ │ ├── server-multiple-alt-names.crt
│ │ │ ├── server-multiple-alt-names.key
│ │ │ ├── server-no-names.crt
│ │ │ ├── server-no-names.key
│ │ │ ├── server-password.key
│ │ │ ├── server-revoked.crt
│ │ │ ├── server-revoked.key
│ │ │ ├── server-single-alt-name.crt
│ │ │ ├── server-single-alt-name.key
│ │ │ ├── server-ss.crt
│ │ │ ├── server-ss.key
│ │ │ ├── server.crl
│ │ │ ├── server_ca.crt
│ │ │ └── server_ca.key
│ │ └── t/
│ │ ├── 001_ssltests.pl
│ │ ├── 002_scram.pl
│ │ └── SSLServer.pm
│ ├── subscription/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ ├── 001_rep_changes.pl
│ │ ├── 002_types.pl
│ │ ├── 003_constraints.pl
│ │ ├── 004_sync.pl
│ │ ├── 005_encoding.pl
│ │ ├── 006_rewrite.pl
│ │ ├── 007_ddl.pl
│ │ ├── 008_diff_schema.pl
│ │ ├── 009_matviews.pl
│ │ ├── 010_truncate.pl
│ │ └── 100_bugs.pl
│ └── thread/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ └── thread_test.c
├── timezone/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ ├── data/
│ │ └── tzdata.zi
│ ├── known_abbrevs.txt
│ ├── localtime.c
│ ├── pgtz.c
│ ├── pgtz.h
│ ├── private.h
│ ├── strftime.c
│ ├── tzfile.h
│ ├── tznames/
│ │ ├── Africa.txt
│ │ ├── America.txt
│ │ ├── Antarctica.txt
│ │ ├── Asia.txt
│ │ ├── Atlantic.txt
│ │ ├── Australia
│ │ ├── Australia.txt
│ │ ├── Default
│ │ ├── Etc.txt
│ │ ├── Europe.txt
│ │ ├── India
│ │ ├── Indian.txt
│ │ ├── Makefile
│ │ ├── Pacific.txt
│ │ └── README
│ └── zic.c
├── tools/
│ ├── FAQ2txt
│ ├── RELEASE_CHANGES
│ ├── ccsym
│ ├── check_bison_recursion.pl
│ ├── codelines
│ ├── copyright.pl
│ ├── editors/
│ │ ├── emacs.samples
│ │ └── vim.samples
│ ├── find_badmacros
│ ├── find_static
│ ├── find_typedef
│ ├── findoidjoins/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── findoidjoins.c
│ │ └── make_oidjoins_check
│ ├── fix-old-flex-code.pl
│ ├── git-external-diff
│ ├── git_changelog
│ ├── ifaddrs/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── test_ifaddrs.c
│ ├── make_ctags
│ ├── make_diff/
│ │ ├── README
│ │ ├── cporig
│ │ ├── difforig
│ │ └── rmorig
│ ├── make_etags
│ ├── make_mkid
│ ├── msvc/
│ │ ├── .gitignore
│ │ ├── Install.pm
│ │ ├── MSBuildProject.pm
│ │ ├── Mkvcbuild.pm
│ │ ├── Project.pm
│ │ ├── README
│ │ ├── Solution.pm
│ │ ├── VCBuildProject.pm
│ │ ├── VSObjectFactory.pm
│ │ ├── build.bat
│ │ ├── build.pl
│ │ ├── builddoc.bat
│ │ ├── builddoc.pl
│ │ ├── clean.bat
│ │ ├── config_default.pl
│ │ ├── dummylib/
│ │ │ ├── README
│ │ │ ├── Win32/
│ │ │ │ └── Registry.pm
│ │ │ ├── Win32.pm
│ │ │ └── Win32API/
│ │ │ └── File.pm
│ │ ├── ecpg_regression.proj
│ │ ├── gendef.pl
│ │ ├── install.bat
│ │ ├── install.pl
│ │ ├── mkvcbuild.pl
│ │ ├── pgbison.bat
│ │ ├── pgbison.pl
│ │ ├── pgflex.bat
│ │ ├── pgflex.pl
│ │ ├── vcregress.bat
│ │ └── vcregress.pl
│ ├── perlcheck/
│ │ ├── find_perl_files
│ │ ├── perlcriticrc
│ │ ├── pgperlcritic
│ │ └── pgperlsyncheck
│ ├── pginclude/
│ │ ├── README
│ │ ├── cpluspluscheck
│ │ ├── pgcheckdefines
│ │ ├── pgcompinclude
│ │ ├── pgdefine
│ │ ├── pgfixinclude
│ │ └── pgrminclude
│ ├── pgindent/
│ │ ├── README
│ │ ├── exclude_file_patterns
│ │ ├── perltidyrc
│ │ ├── pgindent
│ │ ├── pgindent.man
│ │ ├── pgperltidy
│ │ └── typedefs.list
│ ├── pgtest
│ ├── testint128.c
│ ├── valgrind.supp
│ ├── version_stamp.pl
│ └── win32tzlist.pl
└── tutorial/
├── Makefile
├── README
├── advanced.source
├── basics.source
├── complex.c
├── complex.source
├── funcs.c
├── funcs.source
├── funcs_new.c
└── syscat.source
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: david.zhao.cn@gmail.com
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
================================================
FILE: .gitignore
================================================
# Global excludes across all subdirectories
*.o
*.obj
*.bc
*.so
*.so.[0-9]
*.so.[0-9].[0-9]
*.so.[0-9].[0-9][0-9]
*.sl
*.sl.[0-9]
*.sl.[0-9].[0-9]
*.sl.[0-9].[0-9][0-9]
*.dylib
*.dll
*.exp
*.a
*.mo
*.pot
objfiles.txt
.deps/
*.gcno
*.gcda
*.gcov
*.gcov.out
lcov*.info
coverage/
coverage-html-stamp
*.vcproj
*.vcxproj
win32ver.rc
*.exe
lib*dll.def
lib*.pc
*.diff
# Local excludes in root directory
/GNUmakefile
/config.cache
/config.log
/config.status
/pgsql.sln
/pgsql.sln.cache
/Debug/
/Release/
/tmp_install/
# Prerequisites
# Object files
*.o
*.ko
*.obj
*.elf
# Linker output
*.ilk
*.map
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.app
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
kunlun@kunlunbase.com.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
================================================
FILE: COPYRIGHT
================================================
PostgreSQL Database Management System
(formerly known as Postgres, then as Postgres95)
Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
Portions Copyright (c) 1994, The Regents of the University of California
Permission to use, copy, modify, and distribute this software and its
documentation for any purpose, without fee, and without a written agreement
is hereby granted, provided that the above copyright notice and this
paragraph and the following two paragraphs appear in all copies.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS
DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
================================================
FILE: Commons_Clause_License
================================================
“Commons Clause” License Condition v1.0
The Software is provided to you by the Licensor under the License, as defined below, subject to the following condition.
Without limiting other conditions in the License, the grant of rights under the License will not include, and the License does not grant to you, the right to Sell the Software.
For purposes of the foregoing, “Sell” means practicing any or all of the rights granted to you under the License to provide to third parties, for a fee or other consideration (including without limitation fees for hosting or consulting/ support services related to the Software), a product or service whose value derives, entirely or substantially, from the functionality of the Software. Any license notice or attribution required by the License must also include this Commons Clause License Condition notice.
Software: kunlun distributed DBMS and its affilicating components
License: Apache 2.0
Licensor: zettadb.com 泽拓科技(深圳)有限责任公司 ZettaDB inc.
================================================
FILE: GNUmakefile.in
================================================
#
# PostgreSQL top level makefile
#
# GNUmakefile.in
#
subdir =
top_builddir = .
include $(top_builddir)/src/Makefile.global
$(call recurse,all install,src config)
all:
+@echo "All of PostgreSQL successfully made. Ready to install."
docs:
$(MAKE) -C doc all
$(call recurse,world,doc src config contrib,all)
world:
+@echo "PostgreSQL, contrib, and documentation successfully made. Ready to install."
# build src/ before contrib/
world-contrib-recurse: world-src-recurse
html man:
$(MAKE) -C doc $@
install:
+@$(SHELL) post-install.sh $(prefix)
+@echo "PostgreSQL installation complete."
install-docs:
$(MAKE) -C doc install
$(call recurse,install-world,doc src config contrib,install)
install-world:
+@echo "PostgreSQL, contrib, and documentation installation complete."
# build src/ before contrib/
install-world-contrib-recurse: install-world-src-recurse
$(call recurse,installdirs uninstall init-po update-po,doc src config)
$(call recurse,distprep coverage,doc src config contrib)
# clean, distclean, etc should apply to contrib too, even though
# it's not built by default
$(call recurse,clean,doc contrib src config)
clean:
rm -rf tmp_install/
# Garbage from autoconf:
@rm -rf autom4te.cache/
# Important: distclean `src' last, otherwise Makefile.global
# will be gone too soon.
distclean maintainer-clean:
$(MAKE) -C doc $@
$(MAKE) -C contrib $@
$(MAKE) -C config $@
$(MAKE) -C src $@
rm -rf tmp_install/
# Garbage from autoconf:
@rm -rf autom4te.cache/
rm -f config.cache config.log config.status GNUmakefile
check check-tests installcheck installcheck-parallel installcheck-tests: CHECKPREP_TOP=src/test/regress
check check-tests installcheck installcheck-parallel installcheck-tests: submake-generated-headers
$(MAKE) -C src/test/regress $@
$(call recurse,check-world,src/test src/pl src/interfaces/ecpg contrib src/bin,check)
$(call recurse,checkprep, src/test src/pl src/interfaces/ecpg contrib src/bin)
$(call recurse,installcheck-world,src/test src/pl src/interfaces/ecpg contrib src/bin,installcheck)
GNUmakefile: GNUmakefile.in $(top_builddir)/config.status
./config.status $@
##########################################################################
distdir = postgresql-$(VERSION)
dummy = =install=
garbage = =* "#"* ."#"* *~* *.orig *.rej core postgresql-*
dist: $(distdir).tar.gz $(distdir).tar.bz2
rm -rf $(distdir)
$(distdir).tar: distdir
$(TAR) chf $@ $(distdir)
.INTERMEDIATE: $(distdir).tar
distdir-location:
@echo $(distdir)
distdir:
rm -rf $(distdir)* $(dummy)
for x in `cd $(top_srcdir) && find . \( -name CVS -prune \) -o \( -name .git -prune \) -o -print`; do \
file=`expr X$$x : 'X\./\(.*\)'`; \
if test -d "$(top_srcdir)/$$file" ; then \
mkdir "$(distdir)/$$file" && chmod 777 "$(distdir)/$$file"; \
else \
ln "$(top_srcdir)/$$file" "$(distdir)/$$file" >/dev/null 2>&1 \
|| cp "$(top_srcdir)/$$file" "$(distdir)/$$file"; \
fi || exit; \
done
$(MAKE) -C $(distdir) distprep
$(MAKE) -C $(distdir)/doc/src/sgml/ INSTALL
cp $(distdir)/doc/src/sgml/INSTALL $(distdir)/
$(MAKE) -C $(distdir) distclean
rm -f $(distdir)/README.git
distcheck: dist
rm -rf $(dummy)
mkdir $(dummy)
$(GZIP) -d -c $(distdir).tar.gz | $(TAR) xf -
install_prefix=`cd $(dummy) && pwd`; \
cd $(distdir) \
&& ./configure --prefix="$$install_prefix"
$(MAKE) -C $(distdir) -q distprep
$(MAKE) -C $(distdir)
$(MAKE) -C $(distdir) install
$(MAKE) -C $(distdir) uninstall
@echo "checking whether \`$(MAKE) uninstall' works"
test `find $(dummy) ! -type d | wc -l` -eq 0
$(MAKE) -C $(distdir) dist
# Room for improvement: Check here whether this distribution tarball
# is sufficiently similar to the original one.
rm -rf $(distdir) $(dummy)
@echo "Distribution integrity checks out."
.PHONY: dist distdir distcheck docs install-docs world check-world install-world installcheck-world
================================================
FILE: HISTORY
================================================
Release notes for all versions of PostgreSQL can be found on-line at
https://www.postgresql.org/docs/current/static/release.html
Distribution file sets include release notes for their version and preceding
versions. Visit the file doc/src/sgml/html/release.html in an HTML browser.
================================================
FILE: INSTALL.PostgreSQL
================================================
To build computing node program from source, use build.sh directly or refer to it for instructions.
To build kunlun-storage from source, see kunlun-storage/INSTALL.kunlun.md for instructions.
To build cluster_mgr from source, see cluster_mgr/README.md for instructions.
To install a Kunlun distributed DBMS cluster, refer to INSTALL.kunlun.md for instructions.
PostgreSQL Installation from Source Code
__________________________________________________________________
This document describes the installation of PostgreSQL using this
source code distribution.
__________________________________________________________________
Short Version
./configure
make
su
make install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
The long version is the rest of this document.
__________________________________________________________________
Requirements
In general, a modern Unix-compatible platform should be able to run
PostgreSQL. The platforms that had received specific testing at the
time of release are listed in the section called "Supported Platforms"
below. In the "doc" subdirectory of the distribution there are several
platform-specific FAQ documents you might wish to consult if you are
having trouble.
The following software packages are required for building PostgreSQL:
* GNU make version 3.80 or newer is required; other make programs or
older GNU make versions will *not* work. (GNU make is sometimes
installed under the name "gmake".) To test for GNU make enter:
make --version
* You need an ISO/ANSI C compiler (at least C89-compliant). Recent
versions of GCC are recommended, but PostgreSQL is known to build
using a wide variety of compilers from different vendors.
* tar is required to unpack the source distribution, in addition to
either gzip or bzip2.
* The GNU Readline library is used by default. It allows psql (the
PostgreSQL command line SQL interpreter) to remember each command
you type, and allows you to use arrow keys to recall and edit
previous commands. This is very helpful and is strongly
recommended. If you don't want to use it then you must specify the
"--without-readline" option to "configure". As an alternative, you
can often use the BSD-licensed "libedit" library, originally
developed on NetBSD. The "libedit" library is GNU
Readline-compatible and is used if "libreadline" is not found, or
if "--with-libedit-preferred" is used as an option to "configure".
If you are using a package-based Linux distribution, be aware that
you need both the readline and readline-devel packages, if those
are separate in your distribution.
* The zlib compression library is used by default. If you don't want
to use it then you must specify the "--without-zlib" option to
"configure". Using this option disables support for compressed
archives in pg_dump and pg_restore.
The following packages are optional. They are not required in the
default configuration, but they are needed when certain build options
are enabled, as explained below:
* To build the server programming language PL/Perl you need a full
Perl installation, including the "libperl" library and the header
files. The minimum required version is Perl 5.8.3. Since PL/Perl
will be a shared library, the "libperl" library must be a shared
library also on most platforms. This appears to be the default in
recent Perl versions, but it was not in earlier versions, and in
any case it is the choice of whomever installed Perl at your site.
"configure" will fail if building PL/Perl is selected but it cannot
find a shared "libperl". In that case, you will have to rebuild and
install Perl manually to be able to build PL/Perl. During the
configuration process for Perl, request a shared library.
If you intend to make more than incidental use of PL/Perl, you
should ensure that the Perl installation was built with the
usemultiplicity option enabled (perl -V will show whether this is
the case).
* To build the PL/Python server programming language, you need a
Python installation with the header files and the distutils module.
The minimum required version is Python 2.4. Python 3 is supported
if it's version 3.1 or later; but see the PL/Python documentation
when using Python 3.
Since PL/Python will be a shared library, the "libpython" library
must be a shared library also on most platforms. This is not the
case in a default Python installation built from source, but a
shared library is available in many operating system distributions.
"configure" will fail if building PL/Python is selected but it
cannot find a shared "libpython". That might mean that you either
have to install additional packages or rebuild (part of) your
Python installation to provide this shared library. When building
from source, run Python's configure with the --enable-shared flag.
* To build the PL/Tcl procedural language, you of course need a Tcl
installation. The minimum required version is Tcl 8.4.
* To enable Native Language Support (NLS), that is, the ability to
display a program's messages in a language other than English, you
need an implementation of the Gettext API. Some operating systems
have this built-in (e.g., Linux, NetBSD, Solaris), for other
systems you can download an add-on package from
http://www.gnu.org/software/gettext/. If you are using the Gettext
implementation in the GNU C library then you will additionally need
the GNU Gettext package for some utility programs. For any of the
other implementations you will not need it.
* You need OpenSSL, if you want to support encrypted client
connections. The minimum required version is 0.9.8.
* You need Kerberos, OpenLDAP, and/or PAM, if you want to support
authentication using those services.
* To build the PostgreSQL documentation, there is a separate set of
requirements; see the main documentation's appendix on
documentation.
If you are building from a Git tree instead of using a released source
package, or if you want to do server development, you also need the
following packages:
* Flex and Bison are needed to build from a Git checkout, or if you
changed the actual scanner and parser definition files. If you need
them, be sure to get Flex 2.5.31 or later and Bison 1.875 or later.
Other lex and yacc programs cannot be used.
* Perl 5.8.3 or later is needed to build from a Git checkout, or if
you changed the input files for any of the build steps that use
Perl scripts. If building on Windows you will need Perl in any
case. Perl is also required to run some test suites.
If you need to get a GNU package, you can find it at your local GNU
mirror site (see https://www.gnu.org/prep/ftp for a list) or at
ftp://ftp.gnu.org/gnu/.
Also check that you have sufficient disk space. You will need about 100
MB for the source tree during compilation and about 20 MB for the
installation directory. An empty database cluster takes about 35 MB;
databases take about five times the amount of space that a flat text
file with the same data would take. If you are going to run the
regression tests you will temporarily need up to an extra 150 MB. Use
the "df" command to check free disk space.
__________________________________________________________________
Installation Procedure
1. Configuration
The first step of the installation procedure is to configure the
source tree for your system and choose the options you would like.
This is done by running the "configure" script. For a default
installation simply enter:
./configure
This script will run a number of tests to determine values for
various system dependent variables and detect any quirks of your
operating system, and finally will create several files in the
build tree to record what it found. You can also run "configure" in
a directory outside the source tree, if you want to keep the build
directory separate. This procedure is also called a VPATH build.
Here's how:
mkdir build_dir
cd build_dir
/path/to/source/tree/configure [options go here]
make
The default configuration will build the server and utilities, as
well as all client applications and interfaces that require only a
C compiler. All files will be installed under "/usr/local/pgsql" by
default.
You can customize the build and installation process by supplying
one or more of the following command line options to "configure":
--prefix=PREFIX
Install all files under the directory "PREFIX" instead of
"/usr/local/pgsql". The actual files will be installed
into various subdirectories; no files will ever be
installed directly into the "PREFIX" directory.
If you have special needs, you can also customize the
individual subdirectories with the following options.
However, if you leave these with their defaults, the
installation will be relocatable, meaning you can move the
directory after installation. (The man and doc locations
are not affected by this.)
For relocatable installs, you might want to use
"configure"'s --disable-rpath option. Also, you will need
to tell the operating system how to find the shared
libraries.
--exec-prefix=EXEC-PREFIX
You can install architecture-dependent files under a
different prefix, "EXEC-PREFIX", than what "PREFIX" was
set to. This can be useful to share
architecture-independent files between hosts. If you omit
this, then "EXEC-PREFIX" is set equal to "PREFIX" and both
architecture-dependent and independent files will be
installed under the same tree, which is probably what you
want.
--bindir=DIRECTORY
Specifies the directory for executable programs. The
default is "EXEC-PREFIX/bin", which normally means
"/usr/local/pgsql/bin".
--sysconfdir=DIRECTORY
Sets the directory for various configuration files,
"PREFIX/etc" by default.
--libdir=DIRECTORY
Sets the location to install libraries and dynamically
loadable modules. The default is "EXEC-PREFIX/lib".
--includedir=DIRECTORY
Sets the directory for installing C and C++ header files.
The default is "PREFIX/include".
--datarootdir=DIRECTORY
Sets the root directory for various types of read-only
data files. This only sets the default for some of the
following options. The default is "PREFIX/share".
--datadir=DIRECTORY
Sets the directory for read-only data files used by the
installed programs. The default is "DATAROOTDIR". Note
that this has nothing to do with where your database files
will be placed.
--localedir=DIRECTORY
Sets the directory for installing locale data, in
particular message translation catalog files. The default
is "DATAROOTDIR/locale".
--mandir=DIRECTORY
The man pages that come with PostgreSQL will be installed
under this directory, in their respective "manx"
subdirectories. The default is "DATAROOTDIR/man".
--docdir=DIRECTORY
Sets the root directory for installing documentation
files, except "man" pages. This only sets the default for
the following options. The default value for this option
is "DATAROOTDIR/doc/postgresql".
--htmldir=DIRECTORY
The HTML-formatted documentation for PostgreSQL will be
installed under this directory. The default is
"DATAROOTDIR".
Note:
Care has been taken to make it possible to install PostgreSQL into
shared installation locations (such as "/usr/local/include")
without interfering with the namespace of the rest of the system.
First, the string "/postgresql" is automatically appended to
datadir, sysconfdir, and docdir, unless the fully expanded
directory name already contains the string "postgres" or "pgsql".
For example, if you choose "/usr/local" as prefix, the
documentation will be installed in "/usr/local/doc/postgresql", but
if the prefix is "/opt/postgres", then it will be in
"/opt/postgres/doc". The public C header files of the client
interfaces are installed into includedir and are namespace-clean.
The internal header files and the server header files are installed
into private directories under includedir. See the documentation of
each interface for information about how to access its header
files. Finally, a private subdirectory will also be created, if
appropriate, under libdir for dynamically loadable modules.
--with-extra-version=STRING
Append "STRING" to the PostgreSQL version number. You can
use this, for example, to mark binaries built from
unreleased Git snapshots or containing custom patches with
an extra version string such as a "git describe"
identifier or a distribution package release number.
--with-includes=DIRECTORIES
"DIRECTORIES" is a colon-separated list of directories
that will be added to the list the compiler searches for
header files. If you have optional packages (such as GNU
Readline) installed in a non-standard location, you have
to use this option and probably also the corresponding
"--with-libraries" option.
Example:
--with-includes=/opt/gnu/include:/usr/sup/include.
--with-libraries=DIRECTORIES
"DIRECTORIES" is a colon-separated list of directories to
search for libraries. You will probably have to use this
option (and the corresponding "--with-includes" option) if
you have packages installed in non-standard locations.
Example: --with-libraries=/opt/gnu/lib:/usr/sup/lib.
--enable-nls[=LANGUAGES]
Enables Native Language Support (NLS), that is, the
ability to display a program's messages in a language
other than English. "LANGUAGES" is an optional
space-separated list of codes of the languages that you
want supported, for example --enable-nls='de fr'. (The
intersection between your list and the set of actually
provided translations will be computed automatically.) If
you do not specify a list, then all available translations
are installed.
To use this option, you will need an implementation of the
Gettext API; see above.
--with-pgport=NUMBER
Set "NUMBER" as the default port number for server and
clients. The default is 5432. The port can always be
changed later on, but if you specify it here then both
server and clients will have the same default compiled in,
which can be very convenient. Usually the only good reason
to select a non-default value is if you intend to run
multiple PostgreSQL servers on the same machine.
--with-perl
Build the PL/Perl server-side language.
--with-python
Build the PL/Python server-side language.
--with-tcl
Build the PL/Tcl server-side language.
--with-tclconfig=DIRECTORY
Tcl installs the file "tclConfig.sh", which contains
configuration information needed to build modules
interfacing to Tcl. This file is normally found
automatically at a well-known location, but if you want to
use a different version of Tcl you can specify the
directory in which to look for it.
--with-gssapi
Build with support for GSSAPI authentication. On many
systems, the GSSAPI (usually a part of the Kerberos
installation) system is not installed in a location that
is searched by default (e.g., "/usr/include", "/usr/lib"),
so you must use the options "--with-includes" and
"--with-libraries" in addition to this option. "configure"
will check for the required header files and libraries to
make sure that your GSSAPI installation is sufficient
before proceeding.
--with-krb-srvnam=NAME
The default name of the Kerberos service principal used by
GSSAPI. postgres is the default. There's usually no reason
to change this unless you have a Windows environment, in
which case it must be set to upper case POSTGRES.
--with-llvm
Build with support for LLVM based JIT compilation. This
requires the LLVM library to be installed. The minimum
required version of LLVM is currently 3.9.
"llvm-config" will be used to find the required
compilation options. "llvm-config", and then
"llvm-config-$major-$minor" for all supported versions,
will be searched on PATH. If that would not yield the
correct binary, use LLVM_CONFIG to specify a path to the
correct "llvm-config". For example
./configure ... --with-llvm LLVM_CONFIG='/path/to/llvm/bin/llvm-config'
LLVM support requires a compatible "clang" compiler
(specified, if necessary, using the CLANG environment
variable), and a working C++ compiler (specified, if
necessary, using the CXX environment variable).
--with-icu
Build with support for the ICU library. This requires the
ICU4C package to be installed. The minimum required
version of ICU4C is currently 4.2.
By default, pkg-config will be used to find the required
compilation options. This is supported for ICU4C version
4.6 and later. For older versions, or if pkg-config is not
available, the variables ICU_CFLAGS and ICU_LIBS can be
specified to "configure", like in this example:
./configure ... --with-icu ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/
where/lib -licui18n -licuuc -licudata'
(If ICU4C is in the default search path for the compiler,
then you still need to specify a nonempty string in order
to avoid use of pkg-config, for example, ICU_CFLAGS=' '.)
--with-openssl
Build with support for SSL (encrypted) connections. This
requires the OpenSSL package to be installed. "configure"
will check for the required header files and libraries to
make sure that your OpenSSL installation is sufficient
before proceeding.
--with-pam
Build with PAM (Pluggable Authentication Modules) support.
--with-bsd-auth
Build with BSD Authentication support. (The BSD
Authentication framework is currently only available on
OpenBSD.)
--with-ldap
Build with LDAP support for authentication and connection
parameter lookup (see the documentation about client
authentication and libpq for more information). On Unix,
this requires the OpenLDAP package to be installed. On
Windows, the default WinLDAP library is used. "configure"
will check for the required header files and libraries to
make sure that your OpenLDAP installation is sufficient
before proceeding.
--with-systemd
Build with support for systemd service notifications. This
improves integration if the server binary is started under
systemd but has no impact otherwise. libsystemd and the
associated header files need to be installed to be able to
use this option.
--without-readline
Prevents use of the Readline library (and libedit as
well). This option disables command-line editing and
history in psql, so it is not recommended.
--with-libedit-preferred
Favors the use of the BSD-licensed libedit library rather
than GPL-licensed Readline. This option is significant
only if you have both libraries installed; the default in
that case is to use Readline.
--with-bonjour
Build with Bonjour support. This requires Bonjour support
in your operating system. Recommended on macOS.
--with-uuid=LIBRARY
Build the uuid-ossp module (which provides functions to
generate UUIDs), using the specified UUID library.
"LIBRARY" must be one of:
o "bsd" to use the UUID functions found in FreeBSD, NetBSD,
and some other BSD-derived systems
o "e2fs" to use the UUID library created by the e2fsprogs
project; this library is present in most Linux systems
and in macOS, and can be obtained for other platforms as
well
o "ossp" to use the OSSP UUID library
--with-ossp-uuid
Obsolete equivalent of --with-uuid=ossp.
--with-libxml
Build with libxml (enables SQL/XML support). Libxml
version 2.6.23 or later is required for this feature.
Libxml installs a program "xml2-config" that can be used
to detect the required compiler and linker options.
PostgreSQL will use it automatically if found. To specify
a libxml installation at an unusual location, you can
either set the environment variable XML2_CONFIG to point
to the "xml2-config" program belonging to the
installation, or use the options "--with-includes" and
"--with-libraries".
--with-libxslt
Use libxslt when building the xml2 module. xml2 relies on
this library to perform XSL transformations of XML.
--disable-float4-byval
Disable passing float4 values "by value", causing them to
be passed "by reference" instead. This option costs
performance, but may be needed for compatibility with old
user-defined functions that are written in C and use the
"version 0" calling convention. A better long-term
solution is to update any such functions to use the
"version 1" calling convention.
--disable-float8-byval
Disable passing float8 values "by value", causing them to
be passed "by reference" instead. This option costs
performance, but may be needed for compatibility with old
user-defined functions that are written in C and use the
"version 0" calling convention. A better long-term
solution is to update any such functions to use the
"version 1" calling convention. Note that this option
affects not only float8, but also int8 and some related
types such as timestamp. On 32-bit platforms,
"--disable-float8-byval" is the default and it is not
allowed to select "--enable-float8-byval".
--with-segsize=SEGSIZE
Set the segment size, in gigabytes. Large tables are
divided into multiple operating-system files, each of size
equal to the segment size. This avoids problems with file
size limits that exist on many platforms. The default
segment size, 1 gigabyte, is safe on all supported
platforms. If your operating system has "largefile"
support (which most do, nowadays), you can use a larger
segment size. This can be helpful to reduce the number of
file descriptors consumed when working with very large
tables. But be careful not to select a value larger than
is supported by your platform and the file systems you
intend to use. Other tools you might wish to use, such as
tar, could also set limits on the usable file size. It is
recommended, though not absolutely required, that this
value be a power of 2. Note that changing this value
requires an initdb.
--with-blocksize=BLOCKSIZE
Set the block size, in kilobytes. This is the unit of
storage and I/O within tables. The default, 8 kilobytes,
is suitable for most situations; but other values may be
useful in special cases. The value must be a power of 2
between 1 and 32 (kilobytes). Note that changing this
value requires an initdb.
--with-wal-blocksize=BLOCKSIZE
Set the WAL block size, in kilobytes. This is the unit of
storage and I/O within the WAL log. The default, 8
kilobytes, is suitable for most situations; but other
values may be useful in special cases. The value must be a
power of 2 between 1 and 64 (kilobytes). Note that
changing this value requires an initdb.
--disable-spinlocks
Allow the build to succeed even if PostgreSQL has no CPU
spinlock support for the platform. The lack of spinlock
support will result in poor performance; therefore, this
option should only be used if the build aborts and informs
you that the platform lacks spinlock support. If this
option is required to build PostgreSQL on your platform,
please report the problem to the PostgreSQL developers.
--disable-strong-random
Allow the build to succeed even if PostgreSQL has no
support for strong random numbers on the platform. A
source of random numbers is needed for some authentication
protocols, as well as some routines in the pgcrypto
module. "--disable-strong-random" disables functionality
that requires cryptographically strong random numbers, and
substitutes a weak pseudo-random-number-generator for the
generation of authentication salt values and query cancel
keys. It may make authentication less secure.
--disable-thread-safety
Disable the thread-safety of client libraries. This
prevents concurrent threads in libpq and ECPG programs
from safely controlling their private connection handles.
--with-system-tzdata=DIRECTORY
PostgreSQL includes its own time zone database, which it
requires for date and time operations. This time zone
database is in fact compatible with the IANA time zone
database provided by many operating systems such as
FreeBSD, Linux, and Solaris, so it would be redundant to
install it again. When this option is used, the
system-supplied time zone database in "DIRECTORY" is used
instead of the one included in the PostgreSQL source
distribution. "DIRECTORY" must be specified as an absolute
path. "/usr/share/zoneinfo" is a likely directory on some
operating systems. Note that the installation routine will
not detect mismatching or erroneous time zone data. If you
use this option, you are advised to run the regression
tests to verify that the time zone data you have pointed
to works correctly with PostgreSQL.
This option is mainly aimed at binary package distributors
who know their target operating system well. The main
advantage of using this option is that the PostgreSQL
package won't need to be upgraded whenever any of the many
local daylight-saving time rules change. Another advantage
is that PostgreSQL can be cross-compiled more
straightforwardly if the time zone database files do not
need to be built during the installation.
--without-zlib
Prevents use of the Zlib library. This disables support
for compressed archives in pg_dump and pg_restore. This
option is only intended for those rare systems where this
library is not available.
--enable-debug
Compiles all programs and libraries with debugging
symbols. This means that you can run the programs in a
debugger to analyze problems. This enlarges the size of
the installed executables considerably, and on non-GCC
compilers it usually also disables compiler optimization,
causing slowdowns. However, having the symbols available
is extremely helpful for dealing with any problems that
might arise. Currently, this option is recommended for
production installations only if you use GCC. But you
should always have it on if you are doing development work
or running a beta version.
--enable-coverage
If using GCC, all programs and libraries are compiled with
code coverage testing instrumentation. When run, they
generate files in the build directory with code coverage
metrics. This option is for use only with GCC and when
doing development work.
--enable-profiling
If using GCC, all programs and libraries are compiled so
they can be profiled. On backend exit, a subdirectory will
be created that contains the "gmon.out" file for use in
profiling. This option is for use only with GCC and when
doing development work.
--enable-cassert
Enables assertion checks in the server, which test for
many "cannot happen" conditions. This is invaluable for
code development purposes, but the tests can slow down the
server significantly. Also, having the tests turned on
won't necessarily enhance the stability of your server!
The assertion checks are not categorized for severity, and
so what might be a relatively harmless bug will still lead
to server restarts if it triggers an assertion failure.
This option is not recommended for production use, but you
should have it on for development work or when running a
beta version.
--enable-depend
Enables automatic dependency tracking. With this option,
the makefiles are set up so that all affected object files
will be rebuilt when any header file is changed. This is
useful if you are doing development work, but is just
wasted overhead if you intend only to compile once and
install. At present, this option only works with GCC.
--enable-dtrace
Compiles PostgreSQL with support for the dynamic tracing
tool DTrace.
To point to the "dtrace" program, the environment variable
DTRACE can be set. This will often be necessary because
"dtrace" is typically installed under "/usr/sbin", which
might not be in the path.
Extra command-line options for the "dtrace" program can be
specified in the environment variable DTRACEFLAGS. On
Solaris, to include DTrace support in a 64-bit binary, you
must specify DTRACEFLAGS="-64" to configure. For example,
using the GCC compiler:
./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...
Using Sun's compiler:
./configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFL
AGS='-64' ...
--enable-tap-tests
Enable tests using the Perl TAP tools. This requires a
Perl installation and the Perl module IPC::Run.
If you prefer a C compiler different from the one "configure"
picks, you can set the environment variable CC to the program of
your choice. By default, "configure" will pick "gcc" if available,
else the platform's default (usually "cc"). Similarly, you can
override the default compiler flags if needed with the CFLAGS
variable.
You can specify environment variables on the "configure" command
line, for example:
./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'
Here is a list of the significant variables that can be set in this
manner:
BISON
Bison program
CC
C compiler
CFLAGS
options to pass to the C compiler
CLANG
path to "clang" program used to process source code for
inlining when compiling with --with-llvm
CPP
C preprocessor
CPPFLAGS
options to pass to the C preprocessor
CXX
C++ compiler
CXXFLAGS
options to pass to the C++ compiler
DTRACE
location of the "dtrace" program
DTRACEFLAGS
options to pass to the "dtrace" program
FLEX
Flex program
LDFLAGS
options to use when linking either executables or shared
libraries
LDFLAGS_EX
additional options for linking executables only
LDFLAGS_SL
additional options for linking shared libraries only
LLVM_CONFIG
"llvm-config" program used to locate the LLVM
installation.
MSGFMT
"msgfmt" program for native language support
PERL
Perl interpreter program. This will be used to determine
the dependencies for building PL/Perl. The default is
"perl".
PYTHON
Python interpreter program. This will be used to determine
the dependencies for building PL/Python. Also, whether
Python 2 or 3 is specified here (or otherwise implicitly
chosen) determines which variant of the PL/Python language
becomes available. See the PL/Python documentation for
more information. If this is not set, the following are
probed in this order: python python3 python2.
TCLSH
Tcl interpreter program. This will be used to determine
the dependencies for building PL/Tcl, and it will be
substituted into Tcl scripts.
XML2_CONFIG
"xml2-config" program used to locate the libxml
installation.
Sometimes it is useful to add compiler flags after-the-fact to the
set that were chosen by "configure". An important example is that
gcc's "-Werror" option cannot be included in the CFLAGS passed to
"configure", because it will break many of "configure"'s built-in
tests. To add such flags, include them in the COPT environment
variable while running "make". The contents of COPT are added to
both the CFLAGS and LDFLAGS options set up by "configure". For
example, you could do
make COPT='-Werror'
or
export COPT='-Werror'
make
Note:
When developing code inside the server, it is recommended to use
the configure options "--enable-cassert" (which turns on many
run-time error checks) and "--enable-debug" (which improves the
usefulness of debugging tools).
If using GCC, it is best to build with an optimization level of at
least "-O1", because using no optimization ("-O0") disables some
important compiler warnings (such as the use of uninitialized
variables). However, non-zero optimization levels can complicate
debugging because stepping through compiled code will usually not
match up one-to-one with source code lines. If you get confused
while trying to debug optimized code, recompile the specific files
of interest with "-O0". An easy way to do this is by passing an
option to make: "make PROFILE=-O0 file.o".
The COPT and PROFILE environment variables are actually handled
identically by the PostgreSQL makefiles. Which to use is a matter
of preference, but a common habit among developers is to use
PROFILE for one-time flag adjustments, while COPT might be kept set
all the time.
2. Build
To start the build, type either of:
make
make all
(Remember to use GNU make.) The build will take a few minutes
depending on your hardware. The last line displayed should be:
All of PostgreSQL successfully made. Ready to install.
If you want to build everything that can be built, including the
documentation (HTML and man pages), and the additional modules
("contrib"), type instead:
make world
The last line displayed should be:
PostgreSQL, contrib, and documentation successfully made. Ready to install.
If you want to invoke the build from another makefile rather than
manually, you must unset MAKELEVEL or set it to zero, for instance
like this:
build-postgresql:
$(MAKE) -C postgresql MAKELEVEL=0 all
Failure to do that can lead to strange error messages, typically
about missing header files.
3. Regression Tests
If you want to test the newly built server before you install it,
you can run the regression tests at this point. The regression
tests are a test suite to verify that PostgreSQL runs on your
machine in the way the developers expected it to. Type:
make check
(This won't work as root; do it as an unprivileged user.) See the
file "src/test/regress/README" and the documentation for detailed
information about interpreting the test results. You can repeat
this test at any later time by issuing the same command.
4. Installing the Files
Note:
If you are upgrading an existing system be sure to read the
documentation, which has instructions about upgrading a cluster.
To install PostgreSQL enter:
make install
This will install files into the directories that were specified in
Step 1. Make sure that you have appropriate permissions to write
into that area. Normally you need to do this step as root.
Alternatively, you can create the target directories in advance and
arrange for appropriate permissions to be granted.
To install the documentation (HTML and man pages), enter:
make install-docs
If you built the world above, type instead:
make install-world
This also installs the documentation.
You can use make install-strip instead of make install to strip the
executable files and libraries as they are installed. This will
save some space. If you built with debugging support, stripping
will effectively remove the debugging support, so it should only be
done if debugging is no longer needed. install-strip tries to do a
reasonable job saving space, but it does not have perfect knowledge
of how to strip every unneeded byte from an executable file, so if
you want to save all the disk space you possibly can, you will have
to do manual work.
The standard installation provides all the header files needed for
client application development as well as for server-side program
development, such as custom functions or data types written in C.
(Prior to PostgreSQL 8.0, a separate make install-all-headers
command was needed for the latter, but this step has been folded
into the standard install.)
Client-only installation: If you want to install only the client
applications and interface libraries, then you can use these
commands:
make -C src/bin install
make -C src/include install
make -C src/interfaces install
make -C doc install
"src/bin" has a few binaries for server-only use, but they are
small.
Uninstallation: To undo the installation use the command "make
uninstall". However, this will not remove any created directories.
Cleaning: After the installation you can free disk space by removing
the built files from the source tree with the command "make clean".
This will preserve the files made by the "configure" program, so that
you can rebuild everything with "make" later on. To reset the source
tree to the state in which it was distributed, use "make distclean". If
you are going to build for several platforms within the same source
tree you must do this and re-configure for each platform.
(Alternatively, use a separate build tree for each platform, so that
the source tree remains unmodified.)
If you perform a build and then discover that your "configure" options
were wrong, or if you change anything that "configure" investigates
(for example, software upgrades), then it's a good idea to do "make
distclean" before reconfiguring and rebuilding. Without this, your
changes in configuration choices might not propagate everywhere they
need to.
__________________________________________________________________
Post-Installation Setup
__________________________________________________________________
Shared Libraries
On some systems with shared libraries you need to tell the system how
to find the newly installed shared libraries. The systems on which this
is *not* necessary include FreeBSD, HP-UX, Linux, NetBSD, OpenBSD, and
Solaris.
The method to set the shared library search path varies between
platforms, but the most widely-used method is to set the environment
variable LD_LIBRARY_PATH like so: In Bourne shells ("sh", "ksh",
"bash", "zsh"):
LD_LIBRARY_PATH=/usr/local/pgsql/lib
export LD_LIBRARY_PATH
or in "csh" or "tcsh":
setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
Replace /usr/local/pgsql/lib with whatever you set "--libdir" to in
Step 1. You should put these commands into a shell start-up file such
as "/etc/profile" or "~/.bash_profile". Some good information about the
caveats associated with this method can be found at
http://xahlee.info/UnixResource_dir/_/ldpath.html.
On some systems it might be preferable to set the environment variable
LD_RUN_PATH *before* building.
On Cygwin, put the library directory in the PATH or move the ".dll"
files into the "bin" directory.
If in doubt, refer to the manual pages of your system (perhaps "ld.so"
or "rld"). If you later get a message like:
psql: error in loading shared libraries
libpq.so.2.1: cannot open shared object file: No such file or directory
then this step was necessary. Simply take care of it then.
If you are on Linux and you have root access, you can run:
/sbin/ldconfig /usr/local/pgsql/lib
(or equivalent directory) after installation to enable the run-time
linker to find the shared libraries faster. Refer to the manual page of
"ldconfig" for more information. On FreeBSD, NetBSD, and OpenBSD the
command is:
/sbin/ldconfig -m /usr/local/pgsql/lib
instead. Other systems are not known to have an equivalent command.
__________________________________________________________________
Environment Variables
If you installed into "/usr/local/pgsql" or some other location that is
not searched for programs by default, you should add
"/usr/local/pgsql/bin" (or whatever you set "--bindir" to in Step 1)
into your PATH. Strictly speaking, this is not necessary, but it will
make the use of PostgreSQL much more convenient.
To do this, add the following to your shell start-up file, such as
"~/.bash_profile" (or "/etc/profile", if you want it to affect all
users):
PATH=/usr/local/pgsql/bin:$PATH
export PATH
If you are using "csh" or "tcsh", then use this command:
set path = ( /usr/local/pgsql/bin $path )
To enable your system to find the man documentation, you need to add
lines like the following to a shell start-up file unless you installed
into a location that is searched by default:
MANPATH=/usr/local/pgsql/share/man:$MANPATH
export MANPATH
The environment variables PGHOST and PGPORT specify to client
applications the host and port of the database server, overriding the
compiled-in defaults. If you are going to run client applications
remotely then it is convenient if every user that plans to use the
database sets PGHOST. This is not required, however; the settings can
be communicated via command line options to most client programs.
__________________________________________________________________
Getting Started
The following is a quick summary of how to get PostgreSQL up and
running once installed. The main documentation contains more
information.
1. Create a user account for the PostgreSQL server. This is the user
the server will run as. For production use you should create a
separate, unprivileged account ("postgres" is commonly used). If
you do not have root access or just want to play around, your own
user account is enough, but running the server as root is a
security risk and will not work.
adduser postgres
2. Create a database installation with the "initdb" command. To run
"initdb" you must be logged in to your PostgreSQL server account.
It will not work as root.
root# mkdir /usr/local/pgsql/data
root# chown postgres /usr/local/pgsql/data
root# su - postgres
postgres$ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
The "-D" option specifies the location where the data will be
stored. You can use any path you want, it does not have to be under
the installation directory. Just make sure that the server account
can write to the directory (or create it, if it doesn't already
exist) before starting "initdb", as illustrated here.
3. At this point, if you did not use the "initdb" -A option, you might
want to modify "pg_hba.conf" to control local access to the server
before you start it. The default is to trust all local users.
4. The previous "initdb" step should have told you how to start up the
database server. Do so now. The command should look something like:
/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
This will start the server in the foreground. To put the server in
the background use something like:
nohup /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data \
</dev/null >>server.log 2>&1 </dev/null &
To stop a server running in the background you can type:
kill `cat /usr/local/pgsql/data/postmaster.pid`
5. Create a database:
createdb testdb
Then enter:
psql testdb
to connect to that database. At the prompt you can enter SQL
commands and start experimenting.
__________________________________________________________________
What Now?
* The PostgreSQL distribution contains a comprehensive documentation
set, which you should read sometime. After installation, the
documentation can be accessed by pointing your browser to
"/usr/local/pgsql/doc/html/index.html", unless you changed the
installation directories.
The first few chapters of the main documentation are the Tutorial,
which should be your first reading if you are completely new to SQL
databases. If you are familiar with database concepts then you want
to proceed with part on server administration, which contains
information about how to set up the database server, database
users, and authentication.
* Usually, you will want to modify your computer so that it will
automatically start the database server whenever it boots. Some
suggestions for this are in the documentation.
* Run the regression tests against the installed server (using "make
installcheck"). If you didn't run the tests before installation,
you should definitely do it now. This is also explained in the
documentation.
* By default, PostgreSQL is configured to run on minimal hardware.
This allows it to start up with almost any hardware configuration.
The default configuration is, however, not designed for optimum
performance. To achieve optimum performance, several server
parameters must be adjusted, the two most common being
shared_buffers and work_mem. Other parameters mentioned in the
documentation also affect performance.
__________________________________________________________________
Supported Platforms
A platform (that is, a CPU architecture and operating system
combination) is considered supported by the PostgreSQL development
community if the code contains provisions to work on that platform and
it has recently been verified to build and pass its regression tests on
that platform. Currently, most testing of platform compatibility is
done automatically by test machines in the PostgreSQL Build Farm. If
you are interested in using PostgreSQL on a platform that is not
represented in the build farm, but on which the code works or can be
made to work, you are strongly encouraged to set up a build farm member
machine so that continued compatibility can be assured.
In general, PostgreSQL can be expected to work on these CPU
architectures: x86, x86_64, IA64, PowerPC, PowerPC 64, S/390, S/390x,
Sparc, Sparc 64, ARM, MIPS, MIPSEL, and PA-RISC. Code support exists
for M68K, M32R, and VAX, but these architectures are not known to have
been tested recently. It is often possible to build on an unsupported
CPU type by configuring with "--disable-spinlocks", but performance
will be poor.
PostgreSQL can be expected to work on these operating systems: Linux
(all recent distributions), Windows (Win2000 SP4 and later), FreeBSD,
OpenBSD, NetBSD, macOS, AIX, HP/UX, and Solaris. Other Unix-like
systems may also work but are not currently being tested. In most
cases, all CPU architectures supported by a given operating system will
work. Look in the section called "Platform-specific Notes" below to see
if there is information specific to your operating system, particularly
if using an older system.
If you have installation problems on a platform that is known to be
supported according to recent build farm results, please report it to
<pgsql-bugs@lists.postgresql.org>. If you are interested in porting
PostgreSQL to a new platform, <pgsql-hackers@lists.postgresql.org> is
the appropriate place to discuss that.
__________________________________________________________________
Platform-specific Notes
This section documents additional platform-specific issues regarding
the installation and setup of PostgreSQL. Be sure to read the
installation instructions, and in particular the section called
"Requirements" as well. Also, check the file "src/test/regress/README"
and the documentation regarding the interpretation of regression test
results.
Platforms that are not covered here have no known platform-specific
installation issues.
__________________________________________________________________
AIX
PostgreSQL works on AIX, but getting it installed properly can be
challenging. AIX versions from 4.3.3 to 6.1 are considered supported.
You can use GCC or the native IBM compiler "xlc". In general, using
recent versions of AIX and PostgreSQL helps. Check the build farm for
up to date information about which versions of AIX are known to work.
The minimum recommended fix levels for supported AIX versions are:
AIX 4.3.3
Maintenance Level 11 + post ML11 bundle
AIX 5.1
Maintenance Level 9 + post ML9 bundle
AIX 5.2
Technology Level 10 Service Pack 3
AIX 5.3
Technology Level 7
AIX 6.1
Base Level
To check your current fix level, use "oslevel -r" in AIX 4.3.3 to AIX
5.2 ML 7, or "oslevel -s" in later versions.
Use the following "configure" flags in addition to your own if you have
installed Readline or libz in /usr/local:
--with-includes=/usr/local/include --with-libraries=/usr/local/lib.
__________________________________________________________________
GCC Issues
On AIX 5.3, there have been some problems getting PostgreSQL to compile
and run using GCC.
You will want to use a version of GCC subsequent to 3.3.2, particularly
if you use a prepackaged version. We had good success with 4.0.1.
Problems with earlier versions seem to have more to do with the way IBM
packaged GCC than with actual issues with GCC, so that if you compile
GCC yourself, you might well have success with an earlier version of
GCC.
__________________________________________________________________
Unix-Domain Sockets Broken
AIX 5.3 has a problem where sockaddr_storage is not defined to be large
enough. In version 5.3, IBM increased the size of sockaddr_un, the
address structure for Unix-domain sockets, but did not correspondingly
increase the size of sockaddr_storage. The result of this is that
attempts to use Unix-domain sockets with PostgreSQL lead to libpq
overflowing the data structure. TCP/IP connections work OK, but not
Unix-domain sockets, which prevents the regression tests from working.
The problem was reported to IBM, and is recorded as bug report
PMR29657. If you upgrade to maintenance level 5300-03 or later, that
will include this fix. A quick workaround is to alter _SS_MAXSIZE to
1025 in "/usr/include/sys/socket.h". In either case, recompile
PostgreSQL once you have the corrected header file.
__________________________________________________________________
Internet Address Issues
PostgreSQL relies on the system's getaddrinfo function to parse IP
addresses in listen_addresses, "pg_hba.conf", etc. Older versions of
AIX have assorted bugs in this function. If you have problems related
to these settings, updating to the appropriate AIX fix level shown
above should take care of it.
One user reports:
When implementing PostgreSQL version 8.1 on AIX 5.3, we periodically
ran into problems where the statistics collector would "mysteriously"
not come up successfully. This appears to be the result of unexpected
behavior in the IPv6 implementation. It looks like PostgreSQL and IPv6
do not play very well together on AIX 5.3.
Any of the following actions "fix" the problem.
* Delete the IPv6 address for localhost:
(as root)
# ifconfig lo0 inet6 ::1/0 delete
* Remove IPv6 from net services. The file "/etc/netsvc.conf" on AIX
is roughly equivalent to "/etc/nsswitch.conf" on Solaris/Linux. The
default, on AIX, is thus:
hosts=local,bind
Replace this with:
hosts=local4,bind4
to deactivate searching for IPv6 addresses.
Warning:
This is really a workaround for problems relating to immaturity of IPv6
support, which improved visibly during the course of AIX 5.3 releases.
It has worked with AIX version 5.3, but does not represent an elegant
solution to the problem. It has been reported that this workaround is
not only unnecessary, but causes problems on AIX 6.1, where IPv6
support has become more mature.
__________________________________________________________________
Memory Management
AIX can be somewhat peculiar with regards to the way it does memory
management. You can have a server with many multiples of gigabytes of
RAM free, but still get out of memory or address space errors when
running applications. One example is loading of extensions failing with
unusual errors. For example, running as the owner of the PostgreSQL
installation:
=# CREATE EXTENSION plperl;
ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": A memory address
is not in the address space for the process.
Running as a non-owner in the group possessing the PostgreSQL
installation:
=# CREATE EXTENSION plperl;
ERROR: could not load library "/opt/dbs/pgsql/lib/plperl.so": Bad address
Another example is out of memory errors in the PostgreSQL server logs,
with every memory allocation near or greater than 256 MB failing.
The overall cause of all these problems is the default bittedness and
memory model used by the server process. By default, all binaries built
on AIX are 32-bit. This does not depend upon hardware type or kernel in
use. These 32-bit processes are limited to 4 GB of memory laid out in
256 MB segments using one of a few models. The default allows for less
than 256 MB in the heap as it shares a single segment with the stack.
In the case of the plperl example, above, check your umask and the
permissions of the binaries in your PostgreSQL installation. The
binaries involved in that example were 32-bit and installed as mode 750
instead of 755. Due to the permissions being set in this fashion, only
the owner or a member of the possessing group can load the library.
Since it isn't world-readable, the loader places the object into the
process' heap instead of the shared library segments where it would
otherwise be placed.
The "ideal" solution for this is to use a 64-bit build of PostgreSQL,
but that is not always practical, because systems with 32-bit
processors can build, but not run, 64-bit binaries.
If a 32-bit binary is desired, set LDR_CNTRL to MAXDATA=0xn0000000,
where 1 <= n <= 8, before starting the PostgreSQL server, and try
different values and "postgresql.conf" settings to find a configuration
that works satisfactorily. This use of LDR_CNTRL tells AIX that you
want the server to have MAXDATA bytes set aside for the heap, allocated
in 256 MB segments. When you find a workable configuration, "ldedit"
can be used to modify the binaries so that they default to using the
desired heap size. PostgreSQL can also be rebuilt, passing configure
LDFLAGS="-Wl,-bmaxdata:0xn0000000" to achieve the same effect.
For a 64-bit build, set OBJECT_MODE to 64 and pass CC="gcc -maix64" and
LDFLAGS="-Wl,-bbigtoc" to "configure". (Options for "xlc" might
differ.) If you omit the export of OBJECT_MODE, your build may fail
with linker errors. When OBJECT_MODE is set, it tells AIX's build
utilities such as "ar", "as", and "ld" what type of objects to default
to handling.
By default, overcommit of paging space can happen. While we have not
seen this occur, AIX will kill processes when it runs out of memory and
the overcommit is accessed. The closest to this that we have seen is
fork failing because the system decided that there was not enough
memory for another process. Like many other parts of AIX, the paging
space allocation method and out-of-memory kill is configurable on a
system- or process-wide basis if this becomes a problem.
References and Resources
"Large Program Support". AIX Documentation: General Programming
Concepts: Writing and Debugging Programs.
"Program Address Space Overview". AIX Documentation: General
Programming Concepts: Writing and Debugging Programs.
"Performance Overview of the Virtual Memory Manager (VMM)". AIX
Documentation: Performance Management Guide.
"Page Space Allocation". AIX Documentation: Performance Management
Guide.
"Paging-space thresholds tuning". AIX Documentation: Performance
Management Guide.
Developing and Porting C and C++ Applications on AIX. IBM Redbook.
__________________________________________________________________
Cygwin
PostgreSQL can be built using Cygwin, a Linux-like environment for
Windows, but that method is inferior to the native Windows build and
running a server under Cygwin is no longer recommended.
When building from source, proceed according to the normal installation
procedure (i.e., ./configure; make; etc.), noting the following-Cygwin
specific differences:
* Set your path to use the Cygwin bin directory before the Windows
utilities. This will help prevent problems with compilation.
* The "adduser" command is not supported; use the appropriate user
management application on Windows NT, 2000, or XP. Otherwise, skip
this step.
* The "su" command is not supported; use ssh to simulate su on
Windows NT, 2000, or XP. Otherwise, skip this step.
* OpenSSL is not supported.
* Start "cygserver" for shared memory support. To do this, enter the
command /usr/sbin/cygserver &. This program needs to be running
anytime you start the PostgreSQL server or initialize a database
cluster ("initdb"). The default "cygserver" configuration may need
to be changed (e.g., increase SEMMNS) to prevent PostgreSQL from
failing due to a lack of system resources.
* Building might fail on some systems where a locale other than C is
in use. To fix this, set the locale to C by doing "export
LANG=C.utf8" before building, and then setting it back to the
previous setting, after you have installed PostgreSQL.
* The parallel regression tests (make check) can generate spurious
regression test failures due to overflowing the listen() backlog
queue which causes connection refused errors or hangs. You can
limit the number of connections using the make variable
MAX_CONNECTIONS thus:
make MAX_CONNECTIONS=5 check
(On some systems you can have up to about 10 simultaneous
connections).
It is possible to install "cygserver" and the PostgreSQL server as
Windows NT services. For information on how to do this, please refer to
the "README" document included with the PostgreSQL binary package on
Cygwin. It is installed in the directory "/usr/share/doc/Cygwin".
__________________________________________________________________
HP-UX
PostgreSQL 7.3+ should work on Series 700/800 PA-RISC machines running
HP-UX 10.X or 11.X, given appropriate system patch levels and build
tools. At least one developer routinely tests on HP-UX 10.20, and we
have reports of successful installations on HP-UX 11.00 and 11.11.
Aside from the PostgreSQL source distribution, you will need GNU make
(HP's make will not do), and either GCC or HP's full ANSI C compiler.
If you intend to build from Git sources rather than a distribution
tarball, you will also need Flex (GNU lex) and Bison (GNU yacc). We
also recommend making sure you are fairly up-to-date on HP patches. At
a minimum, if you are building 64 bit binaries on HP-UX 11.11 you may
need PHSS_30966 (11.11) or a successor patch otherwise "initdb" may
hang:
PHSS_30966 s700_800 ld(1) and linker tools cumulative patch
On general principles you should be current on libc and ld/dld patches,
as well as compiler patches if you are using HP's C compiler. See HP's
support sites such as ftp://us-ffs.external.hp.com/ for free copies of
their latest patches.
If you are building on a PA-RISC 2.0 machine and want to have 64-bit
binaries using GCC, you must use a GCC 64-bit version.
If you are building on a PA-RISC 2.0 machine and want the compiled
binaries to run on PA-RISC 1.1 machines you will need to specify
"+DAportable" in CFLAGS.
If you are building on a HP-UX Itanium machine, you will need the
latest HP ANSI C compiler with its dependent patch or successor
patches:
PHSS_30848 s700_800 HP C Compiler (A.05.57)
PHSS_30849 s700_800 u2comp/be/plugin library Patch
If you have both HP's C compiler and GCC's, then you might want to
explicitly select the compiler to use when you run "configure":
./configure CC=cc
for HP's C compiler, or
./configure CC=gcc
for GCC. If you omit this setting, then configure will pick "gcc" if it
has a choice.
The default install target location is "/usr/local/pgsql", which you
might want to change to something under "/opt". If so, use the
"--prefix" switch to "configure".
In the regression tests, there might be some low-order-digit
differences in the geometry tests, which vary depending on which
compiler and math library versions you use. Any other error is cause
for suspicion.
__________________________________________________________________
macOS
On recent macOS releases, it's necessary to embed the "sysroot" path in
the include switches used to find some system header files. This
results in the outputs of the configure script varying depending on
which SDK version was used during configure. That shouldn't pose any
problem in simple scenarios, but if you are trying to do something like
building an extension on a different machine than the server code was
built on, you may need to force use of a different sysroot path. To do
that, set PG_SYSROOT, for example
make PG_SYSROOT=/desired/path all
To find out the appropriate path on your machine, run
xcodebuild -version -sdk macosx Path
Note that building an extension using a different sysroot version than
was used to build the core server is not really recommended; in the
worst case it could result in hard-to-debug ABI inconsistencies.
You can also select a non-default sysroot path when configuring, by
specifying PG_SYSROOT to configure:
./configure ... PG_SYSROOT=/desired/path
macOS's "System Integrity Protection" (SIP) feature breaks make check,
because it prevents passing the needed setting of DYLD_LIBRARY_PATH
down to the executables being tested. You can work around that by doing
make install before make check. Most Postgres developers just turn off
SIP, though.
__________________________________________________________________
MinGW/Native Windows
PostgreSQL for Windows can be built using MinGW, a Unix-like build
environment for Microsoft operating systems, or using Microsoft's
Visual C++ compiler suite. The MinGW build variant uses the normal
build system described in this chapter; the Visual C++ build works
completely differently and is described in the documentation. It is a
fully native build and uses no additional software like MinGW. A
ready-made installer is available on the main PostgreSQL web site.
The native Windows port requires a 32 or 64-bit version of Windows 2000
or later. Earlier operating systems do not have sufficient
infrastructure (but Cygwin may be used on those). MinGW, the Unix-like
build tools, and MSYS, a collection of Unix tools required to run shell
scripts like "configure", can be downloaded from http://www.mingw.org/.
Neither is required to run the resulting binaries; they are needed only
for creating the binaries.
To build 64 bit binaries using MinGW, install the 64 bit tool set from
https://mingw-w64.org/, put its bin directory in the PATH, and run
"configure" with the "--host=x86_64-w64-mingw32" option.
After you have everything installed, it is suggested that you run psql
under "CMD.EXE", as the MSYS console has buffering issues.
__________________________________________________________________
Collecting Crash Dumps on Windows
If PostgreSQL on Windows crashes, it has the ability to generate
minidumps that can be used to track down the cause for the crash,
similar to core dumps on Unix. These dumps can be read using the
Windows Debugger Tools or using Visual Studio. To enable the generation
of dumps on Windows, create a subdirectory named "crashdumps" inside
the cluster data directory. The dumps will then be written into this
directory with a unique name based on the identifier of the crashing
process and the current time of the crash.
__________________________________________________________________
Solaris
PostgreSQL is well-supported on Solaris. The more up to date your
operating system, the fewer issues you will experience; details below.
__________________________________________________________________
Required Tools
You can build with either GCC or Sun's compiler suite. For better code
optimization, Sun's compiler is strongly recommended on the SPARC
architecture. We have heard reports of problems when using GCC 2.95.1;
GCC 2.95.3 or later is recommended. If you are using Sun's compiler, be
careful not to select "/usr/ucb/cc"; use "/opt/SUNWspro/bin/cc".
You can download Sun Studio from
https://www.oracle.com/technetwork/server-storage/solarisstudio/downloa
ds/. Many of GNU tools are integrated into Solaris 10, or they are
present on the Solaris companion CD. If you like packages for older
version of Solaris, you can find these tools at
http://www.sunfreeware.com. If you prefer sources, look at
https://www.gnu.org/prep/ftp.
__________________________________________________________________
configure Complains About a Failed Test Program
If "configure" complains about a failed test program, this is probably
a case of the run-time linker being unable to find some library,
probably libz, libreadline or some other non-standard library such as
libssl. To point it to the right location, set the LDFLAGS environment
variable on the "configure" command line, e.g.,
configure ... LDFLAGS="-R /usr/sfw/lib:/opt/sfw/lib:/usr/local/lib"
See the ld man page for more information.
__________________________________________________________________
64-bit Build Sometimes Crashes
On Solaris 7 and older, the 64-bit version of libc has a buggy
vsnprintf routine, which leads to erratic core dumps in PostgreSQL. The
simplest known workaround is to force PostgreSQL to use its own version
of vsnprintf rather than the library copy. To do this, after you run
"configure" edit a file produced by "configure": In
"src/Makefile.global", change the line
LIBOBJS =
to read
LIBOBJS = snprintf.o
(There might be other files already listed in this variable. Order does
not matter.) Then build as usual.
__________________________________________________________________
Compiling for Optimal Performance
On the SPARC architecture, Sun Studio is strongly recommended for
compilation. Try using the "-xO5" optimization flag to generate
significantly faster binaries. Do not use any flags that modify
behavior of floating-point operations and errno processing (e.g.,
"-fast"). These flags could raise some nonstandard PostgreSQL behavior
for example in the date/time computing.
If you do not have a reason to use 64-bit binaries on SPARC, prefer the
32-bit version. The 64-bit operations are slower and 64-bit binaries
are slower than the 32-bit variants. And on other hand, 32-bit code on
the AMD64 CPU family is not native, and that is why 32-bit code is
significant slower on this CPU family.
__________________________________________________________________
Using DTrace for Tracing PostgreSQL
Yes, using DTrace is possible. See the documentation for further
information.
If you see the linking of the "postgres" executable abort with an error
message like:
Undefined first referenced
symbol in file
AbortTransaction utils/probes.o
CommitTransaction utils/probes.o
ld: fatal: Symbol referencing errors. No output written to postgres
collect2: ld returned 1 exit status
make: *** [postgres] Error 1
your DTrace installation is too old to handle probes in static
functions. You need Solaris 10u4 or newer.
================================================
FILE: INSTALL.kunlun.md
================================================
# Installation Guides for Kunlun Distributed Database Cluster
This document helps users to install KunlunBase clusters.
For more information, resources, documentation of Kunlun distributed RDBMS, please visit [our website](www.kunlunbase.com).
One could obtain KunlunBase software by building its modules from source in this repository, or preferrably download the binaries or docker images and use it for free from [our download site](downloads.kunlunbase.com), because some of the features are not open source and are only available in the pre-built binaries.
Follow [this document](http://doc.kunlunbase.com/install_by_scripts.html) to install a KunlunBase cluster in a few steps using a script and a GUI web application, it's much easier, faster and more convenient than the instructions in this document.
To build computing node program from source, use build.sh directly or refer to it for instructions.
To build kunlun-storage from source, see kunlun-storage/INSTALL.kunlun.md for instructions.
To build cluster_mgr from source, see cluster_mgr/README.md for instructions.
Unzip the downloaded Kunlun-xx.xx.tgz file into a path, which is named Kunlun in this doc, i.e. Kunlun=`pwd`. If the computing node is built from source, the 'Kunlun' path is the installation path. Then follow the steps below, one after another.
## I. Prerequisites
Install these software first. Below statement supposes this file is in $Kunlun.
0. Linux running on a X86 architecture, and python2.7.
1. Kunlun-Storage and cluster_mgr which are both available in the binary Kunlun software package or can be built from source.
2. MySQL python connector, provided in $Kunlun/resources/mysql-connector-python-2.1.3.tar.gz
3. PostgreSQL python connector, provided in $Kunlun/resources/psycopg2-2.8.4.tar.gz
4. Set PATH to include kunlun-storage/bin so that the 'mysql' client program can be found by shell and python;
and set LD_LIBRARY_PATH to include $Kunlun/lib: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$Kunlun/lib(or lib64 for SLES 64-bit)
### Library dependencies
If you are using a kunlun computing node program built from source on the same Linux distribution and version as where it's being used, simply skip this step because there is no dependency issues.
All dynamic shared objects (*.so files) that programs in $Kunlun/bin depend on, are provided in $Kunlun/lib/deps directory. Try startup postgres (e.g. postgres --version) and see if your local Linux distro needs any of the provided *.so files. If so, copy the needed ones into $Kunlun/lib.
DO NOT copy everything in deps into lib at once, otherwise your linux OS or any software may not be able to work because of library version mismatches!
## II. Kunlun Installation Procedures
Follow below steps one by one to install a Kunlun distributed DBMS cluster.
### Installing Meta-data MySQL Cluster
A meta data cluster is a mysql binlog replication cluster that stores one or more Kunlun clusters' meta data. Users are required to use Kunlun-Storage for premium performance and reliability.
This step is only needed if you don't yet have a meta-data cluster to use. Multiple Kunlun clusters can share the same meta data cluster.
Install mysql instances of the meta-data cluster one after another using the install script and config template in Kunlun-Storage/dba_tools. And create a user for other components of the cluster to connect to the metadata cluster. The installation script in Kunlun-Storage already creates such a user 'pgx'.
The meta data cluster must be running during the installation and when any Kunlun cluster is running.
Store the connection info of all mysql instances of the meta data cluster in a config file of the same format as the template file in $Kunlun/scripts/meta-shard.json. In this doc we name the config file 'my-meta.json'. The config file my-meta.json will be used in following steps.
#### Metadata Cluster Config File Explained
The connection info of the meta data cluster should be stored in a json file of below format. Its format and meaning is explained here. The json file contains an array of one or more config objects, each object contains basic info about a Kunlun-Storage database instance. All these instances form the metadata cluster.
[
{
"ip": "127.0.0.1", IP of the computer server on which the db instance runs
"port": 4001, the db instance is listening on this port
"user": "abc", user name and password to connect to the db instance.
"password":"abc"
},
more config objects for other db instances of the meta data cluster.
]
### Installing Storage Shards
Install storage shards of the distributed database cluster, and create a user in each shard for other components of the cluster to connect to each of the shards. The installation script in Kunlun-Storage already creates such a user 'pgx'. Store their connection info in a config file of same format as $Kunlun/scripts/shards-config.json. In this file we name such a file 'my-shards.json'.
A storage shard and a meta-data mysql binlog replication cluster consists of one mysql primary node and N mysql replica nodes. Users are required to use Kunlun's dedicated Kunlun-Storage component, which contains fixes to all known mysql-8.0 XA bugs. Without such fixes, Kunlun clusters will not be crash safe and may lose committed transactions in the event of various hardware/software/network failures. Also, kunlun-storage contains certain features required by Kunlun's computing nodes.
In Kunlun-Storage/dba_tools, there are scripts and configuration template file with recomended settings for users to install such an instance with premium configurations. Refer to the docs Kunlun-Storage/INSTALL.kunlun.md to install db instances.
All the storage shards listed in the config file must be running during the installation otherwise installation will fail.
#### Storage Shard Config File Explained
The connection info of a storage shard should be stored in a json file of below format. Its format and meaning is explained here. The json file contains an array of one or more shard config objects, each object contains one shard's configs. In a shard's config, there are config objects of one or more db instances of the shard.
[
{
"shard_name": "shard1", name of the shard. storage shard names must be unique across a Kunlun cluster.
"shard_nodes":
[
{
"ip": "127.0.0.1", IP of the computer server on which the db instance runs
"port": 4101, the db instance is listening on this port
"user": "pgx", user name and password to connect to the db instance.
"password":"pgx_pwd"
},
more objects of db instances in shard1
]
}
, more shards' config objects
]
### Installing Computing Nodes
Install computing nodes of Kunlun distributed database cluster using "KunLun", i.e. this piece of software, using the script in $Kunlun/scripts/install_pg.py
One needs to prepare a config file using the template in $Kunlun/scripts/comp-nodes.json. In this file we name it 'my-comps.json', and it will be used in next steps too. When you fill my-comps.json properly, run install_pg.py using the filled config file:
`python install_pg.py --config=my-comps.json --install_ids=1,2,3`
Note that the `install_ids` argument specifies the computing nodes that one wants to install on current server, by its ID in the config file. It can be 'all', to install all computing nodes specified in the config file into current server; Or it can be a comma seperated list of computing IDs to only install such nodes here. If not specified, all computing nodes will be installed.
The install_pg.py will create the users you specified in the config file, this user will be used for cluster installation/uninstallation only. And you can create more users and assign proper priviledges to them. Refer to PostgreSQL documentation on how to do this.
To start a PostgreSQL or Kunlun process, use the script in $Kunlun/scripts/start_pg.py:
`python start_pg.py port=5401`
To shut it down, do:
`$Kunlun/bin/pg_ctl stop -D computing-node-datadir`
All the computing nodes listed in the config file must be running during the installation otherwise installation will fail.
#### Computing Node Config File Explained
The connection info of computing nodes should be stored in a json file of below format. Its format and meaning is explained here. The json file contains an array of one or more config objects, each object contains basic info about a computing node.
[
{
"id":1, ID of the node. must be unique in a Kunlun cluster.
"name":"comp1", name of the node. must be unique in a Kunlun cluster.
"ip":"127.0.0.1", IP of the computer server on which the computing node runs
"port":5401, the computing node is listening on this port
"user":"abc", user name and password to connect to the computing node
"password":"abc",
"datadir":"/data/pg_data_dir1" data directory of the node, the path must be a full path, i.e. starting with / . Only used when installing the computing node db instance. the target directory must be empty or non-existent.
}
, more config objects for other computing node of the cluster
]
## III. Bootstrapping
When meta data cluster, computing nodes and storage shards are all installed, we can bootstrap the meta data cluster, i.e. to create meta data tables and stored procedures in it.
Note that only bootstrap for a newly installed KunLun database cluster if its meta-data cluster is not initialized yet. The same meta data cluster can be used for multiple Kunlun clusters, and users only need to do this step once for the 1st Kunlun cluster.
`python bootstrap.py --config=./my-meta.json --bootstrap_sql=./meta_inuse.sql `
## IV. Initialize distrbuted database cluster
Note that the server where you run below script must be appended into the pg_hba.conf of every computing nodes first. See section VII. to do this.
Simply execute below command to do so.
`python create_cluster.py --shards_config ./my-shards.json --comps_config ./my-comps.json --meta_config ./my-meta.json --cluster_name clust1 --cluster_owner abc --cluster_biz test `
Now the cluster is installed properly and ready for use. You can startup the "Kunlun" processes for each computing node, and the mysqld processes for each storage shards and meta-data cluster, and connect to one of the computing nodes to interact with the Kunlun distributed database cluster.
If some time later you want to add more storage shards or computing nodes to the cluster, do the following:
## V. Add more shards to an existing cluster:
Note that the server where you run below script must be appended into the pg_hba.conf of every computing nodes of current Kunlun cluster first. See section VII. to do this.
Install more storage shards as above step #2 of preparation phase, then do below to add them into the Kunlun cluster 'clust1'.
You can add the new computing nodes in the old config file to keep all configs in one file, and do somethig like:
`python add_shards.py --config ./my-shards.json --meta_config ./my-meta.json --cluster_name clust1 --targets=shard3,shard4`
Here targets=shard3,shard4 specifies the names of the new shards to install.
Or you can store new shards' configs in a new config file and do:
`python add_shards.py --config ./my-more-shards.json --meta_config ./my-meta.json --cluster_name clust1 `
## VI. Add more computing nodes to an existing cluster:
Note that the server where you run below script must be appended into the pg_hba.conf of the computing nodes to add first. See section VII. to do this.
Install computing nodes as above step #3 of preparation phase, then do below to add them into the Kunlun cluster 'clust1'.
You can add the new computing nodes in the old config file to keep all configs in one file, and do somethig like:
`python add_comp_nodes.py --config ./my-comps.json --meta_config ./my-meta.json --cluster_name clust1 --targets=3,4`
Here targets=3,4 specifies the IDs of the new computing nodes to install.
Or you can store new nodes' configs in a new config file and do:
`python add_comp_nodes.py --config ./my-more-comps.json --meta_config ./my-meta.json --cluster_name clust1 `
## VII. Connecting to computing nodes from other servers
According to PostgreSQL, we have to add an entry for every computer server (ip-address, user-name, dbname) combination in order to connect to the PostgreSQL db instance from that server using the specified user name to the target database. After you finish the editing, do below command to make the changes effective.
`pg_ctl reload -D /db/datadir/path`
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: Makefile
================================================
# The PostgreSQL make files exploit features of GNU make that other
# makes do not have. Because it is a common mistake for users to try
# to build Postgres with a different make, we have this make file
# that, as a service, will look for a GNU make and invoke it, or show
# an error message if none could be found.
# If the user were using GNU make now, this file would not get used
# because GNU make uses a make file named "GNUmakefile" in preference
# to "Makefile" if it exists. PostgreSQL is shipped with a
# "GNUmakefile". If the user hasn't run the configure script yet, the
# GNUmakefile won't exist yet, so we catch that case as well.
# AIX make defaults to building *every* target of the first rule. Start with
# a single-target, empty rule to make the other targets non-default.
all:
all check install installdirs installcheck installcheck-parallel uninstall clean distclean maintainer-clean dist distcheck world check-world install-world installcheck-world:
@if [ ! -f GNUmakefile ] ; then \
echo "You need to run the 'configure' program first. See the file"; \
echo "'INSTALL' for installation instructions." ; \
false ; \
fi
@IFS=':' ; \
for dir in $$PATH; do \
for prog in gmake gnumake make; do \
if [ -f $$dir/$$prog ] && ( $$dir/$$prog -f /dev/null --version 2>/dev/null | grep GNU >/dev/null 2>&1 ) ; then \
GMAKE=$$dir/$$prog; \
break 2; \
fi; \
done; \
done; \
\
if [ x"$${GMAKE+set}" = xset ]; then \
echo "Using GNU make found at $${GMAKE}"; \
unset MAKELEVEL; \
$${GMAKE} $@ ; \
else \
echo "You must use GNU make to build PostgreSQL." ; \
false; \
fi
================================================
FILE: NOTICE
================================================
This source code is licensed under both the Apache 2.0 License as detailed in the
LICENSE file, and combined with Common Clause Condition 1.0 as detailed in the
Commons_Clause_License file, by ZettaDB inc, and/or equivalently the
泽拓科技(深圳)有限责任公司 incorporated in People's Republic of China.
================================================
FILE: README.PostgreSQL
================================================
See README to know about Kunlun distributed DBMS.
See ReleaseNotes.txt for the list of features released in each released version of Kunlun distributed DBMS.
To build computing node program from source, use build.sh directly or refer to it for instructions.
To build kunlun-storage from source, see kunlun-storage/INSTALL.kunlun.md for instructions.
To build cluster_mgr from source, see cluster_mgr/README for instructions.
To install a Kunlun distributed DBMS cluster, refer to INSTALL.kunlun.md for instructions.
=====================================
PostgreSQL Database Management System
=====================================
This directory contains the source code distribution of the PostgreSQL
database management system.
PostgreSQL is an advanced object-relational database management system
that supports an extended subset of the SQL standard, including
transactions, foreign keys, subqueries, triggers, user-defined types
and functions. This distribution also contains C language bindings.
PostgreSQL has many language interfaces, many of which are listed here:
https://www.postgresql.org/download
See the file INSTALL for instructions on how to build and install
PostgreSQL. That file also lists supported operating systems and
hardware platforms and contains information regarding any other
software packages that are required to build or run the PostgreSQL
system. Copyright and license information can be found in the
file COPYRIGHT. A comprehensive documentation set is included in this
distribution; it can be read as described in the installation
instructions.
The latest version of this software may be obtained at
https://www.postgresql.org/download/. For more information look at our
web site located at https://www.postgresql.org/.
================================================
FILE: README.md
================================================
# KunlunBase Introduction
## Directions
For more information and resources of KunlunBase, such as software, documentation, bug reports and features planned/under development, and release notes, please visit [our website](www.kunlunbase.com)
Download KunlunBase and use it for free at [our download site](http://downloads.kunlunbase.com/)
For latest release notes, see our [online release notes](http://doc.kunlunbase.com/Release_notes.html)
Follow [this document](http://doc.kunlunbase.com/install_by_scripts.html) to install a KunlunBase cluster in a few steps using a script and a GUI web application, it's much easier, faster and more convenient than building and installing its components manually one by one.
To build kunlun-server node program from source, use build.sh directly or refer to it for instructions.
To build kunlun-storage from source, see kunlun-storage/INSTALL.kunlun.md for instructions.
To build cluster_mgr from source, see cluster_mgr/README for instructions.
Refer to INSTALL.kunlun.md to install a KunlunBase cluster in a totally manual but inconvenient way.
## What is KunlunBase?
KunlunBase is a distributed relational database management system aimed to help users store and access massive amount (tera-bytes up to peta-bytes) of relational data and serve massive concurrent relational data access(read and/or write) workloads with stable low latency and high throughput. KunlunBase provides robust transaction ACID guarantees, high scalability, high availability, transparent data partitioning, elastic&transparent horizontal scale-out capabilities, and standard SQL plus MySQL and PostgreSQL DML SQL dialects. Clients can access distributed and/or partitioned data stored in KunlunBase the same way as using PostgreSQL and/or MySQL. All of these features altogether are known as NewSQL capabilities. In one word, KunlunBase is a NewSQL OLTP distributed RDBMS with complete OLAP functionality.
Users and applications could connect to KunlunBase using JDBC and ODBC, and C/C++ client libraries provided in community PostgreSQL and MySQL distributions, as well as PostgreSQL and MySQL client libraries for most programming languages, such as php/python/go/rust/ruby/c#/ASP/.net etc.
KunlunBase is SQL compatible, it can correctly execute all test cases in TPC-C, TPC-H and TPC-DS with excellent performance, and passes all SQL compatibility test cases contained in PostgreSQL and MySQL.
Consequently, users and applications can interact with KunlunBase exactly the same way they would do with a community MySQL and/or PostgreSQL database instance, using either standard SQL or private DML SQL extensions of MySQL and/or PostgreSQL, and get all the above NewSQL benefits without any work or effort on the client application side --- no need to modify application code or even rebuild it which were using MySQL or PostgreSQL. Furthermore, applications can utilize object relational mapping(ORM) tools like Hibernate and Mybatis to access relational data with KunlunBase so as to avoid manually writing SQL statements in application code, because of the excellent SQL compatibility of KunlunBase.
With KunlunBase, software application architects and developers can quickly design and develop robust, highly available and highly scalable information systems that are capable of processing and utilize hundreds of terabytes of data with little extra engineering effort --- all the technical&engineering challenges are conquered in KunlunBase, which greatly reduces the cost, difficulty, and timespan required to develop such powerful systems, eliminates the inherent risks originating from such challenges, and improves the overall quality and reliability(availability, robustness, stability, scalability, and performance) of such systems.
Visit www.kunlunbase.com to get the software, see its documentation, use cases, and interact with users in the forum at forum.kunlunbase.com.
## Architecture
A KunlunBase cluster consists of two types of components: one or more kunlun-server nodes, and one or more storage shards. And it also shares with other KunlunBase clusters a group of cluster_mgr instances and a metadata shard. A storage or metadata shard consists of one primary instance and two or more replica instances and KunlunBase guarantees high availability to all such shards as detailed below.
This piece of software is KunlunBase's kunlun-server component, it interacts with clients to for connection validation, access control, SQL query processing, global transaction management, global deadlock detection&resolution, and DDL replication, etc.
Kunlun-server is currently developped based on PostgreSQL-11.5. In order to support some advanced features such as automatic DDL synchronization, distributed transactions processing, etc, we modified PostgreSQL code extensively rather than simply using its FDW. We modified PostgreSQL in a modular and least intrusive way so that we can easily keep upgrading with official upstream PostgreSQL releases.
A kunlun-server instance listens on a PostgreSQL port and a MySQL port configured during cluster installation. And it accepts and validates client connections requests connected from an application with either PostgreSQL or MySQL protocols. And when a connection is validated and established, it communicates with the client using either PostgreSQL or MySQL protocols respectively.
A kunlun-server node receives SQL statements from connected client connections and execute them by interacting with the cluster's storage shards to read and/or write data. Users can add more kunlun-server nodes any time as their workloads grow, each and every kunlun-server node can serve user read/write requests. A KunlunBase cluster's kunlun-server nodes locally has all the meta-data of all database objects(tables, views, materialized views, sequences, stored procs/functions, users/roles, triggers, and priviledges etc), but they don't store user data locally. Instead, kunlun-server nodes store user data into storage shards.
To execute a client SQL query, a kunlun-server instance goes through standard PostgreSQL query processing steps --- it parses the client SQL query, optimizes it and as an extension for remote data(data stored in kunlun-storage shards), we developed extra plan nodes which form one or more SQL queries to send to the target storage shards containing portions of target data needed for the client SQL query. And if the query is a SELECT or an INSERT/DELETE/UPDATE...RETURNING statement instead of a bare INSERT/DELETE/UPDATE statement, the kunlun-server node gets partial results from all target storage shards, and assembles them properly into final result by executing the rest of the query plan, and reply the final result to the client.
User data is stored in one or more storage shards instead of kunlun-server nodes. Each storage shard stores a subset of all user data in the KunlunBase cluster, and data in different storage shards don't overlap(i.e. share nothing). Users can extend or shrink the NO. of shards as their data volumns and workloads grow or shrink, and initiate a series of table move operations to select the right group of tables on existing shards for KunlunBase to move to the newly added shards, with the guidance of KunlunBase.
A storage shard is a MySQL binlog replication cluster, which currently uses either MySQL group replication or our proprietary fullsync replication to achieve high availability.
In KunlunBase we require using our kunlun-storage software to deploy storage shards and metadata shard. Kunlun-storage is a deeply engineered branch of percona-mysql-8.0 with supporting features required by KunlunBase's components. Additionally, kunlun-storage contains fixes of all community MySQL-8.0 XA transaction crash safety bugs as well as kunlun-storage contains some performance improvement.
The primary node of each kunlun-storage shard receives from kunlun-server nodes DML SQL queries to insert/update/delete user data, or return target user data. And it executes such SQL queries and return results to the requesting kunlun-server node.
Also, KunlunBase supports automatical read-write-split(RWS) --- executing read only queries in replica nodes to storage shards in order to decrease resource contention in primary nodes and utilize computing resources where the replica nodes are deployed. Consequently kunlun-server nodes could also send SELECT queries to replicas of any kunlun-storage shards under user configured conditions for data consistency and replication latency.
A KunlunBase cluster needs a meta-data shard, which is also a kunlun-storage cluster. It stores the meta-data of one or more KunlunBase clusters.
Finally we have a cluster of cluster_mgr instances which maintain correct running status for one or more KunlunBase clusters, and do extra work related to high availability, scale out, cluster data backup and restore, cluster management(e.g. kunlun-server or kunlun-storage instance installation), and so on.
## Advantages
KunlunBase distributed database cluster is built for high scalability, high availability, ACID guarantees of distributed transactions, and full-fledged distributed query processing and elastic horizontal scalability, and compatibility with standard SQL besides the private DML SQL dialects of MySQL and PostgreSQL, as detailed below.
### Highly Scalable
KunlunBase clusters are highly scalable. It not only scales up but also scales out: users can add more kunlun-server nodes any time to have more query processing power, and every kunlun-server node is equivalent to its peers and can serve both write and read workloads; And users(DBAs) can add more storage shards for more data storage and transaction processing capability and KunlunBase will automatically move parts of user data to the new shards to balance workloads after users issue the table move jobs with guidance of KunlunBase's XPanel utility.
DBAs can also deploy more kunlun-server nodes for analytical OLAP workloads, so that instances running OLTP and OLAP workloads are totally seperated apart.
Also, KunlunBase supports read-write splits, so computer servers containing replica nodes of storage shards can be used to run read only queries. This is especially useful for OLAP workloads to avoid resource contention with OLTP workloads which are run on seperate kunlun-server nodes and primary nodes of storage shards.
### Highly Available(HA)
KunlunBase clusters are highly available, partial node failures won't harm the availability of the cluster. To be pricese, for any single storage shard or meta-data shard of 2*N+1 nodes, the shard can resist N simultaneous node failures and remain writable with no data loss; and it can remain readable as long as one kunlun-storage node is still active and running;
And for kunlun-server nodes, as long as there is one kunlun-server node working, a KunlunBase cluster can keep serving clients. The crash/stall/hang of one kunlun-server instance doesn't affect any other parts of a KunlunBase cluster. And a kunlun-server node doesn't need replicas for HA because its entire state can be rebuilt using the metadata shard.
DBAs can add an empty kunlun-server node at any time to a KunlunBase cluster and such a node will automatically synchronize itself to latest local state by communicate with the metadata cluster and replay the accumulated DDL logs of the cluster. When executing concurrent DDLs, kunlun-server nodes are well coordinated so that every kunlun-server node executes exactly the same sequence of DDL operations and their local states are identical always.
A storage or metadata shard consists of 2*N+1 (N > 0) kunlun-storage nodes, which does fullsync binlog replication from a shard's primary node to its replica nodes, so that for any transaction commit or prepare command, the primary node only replies success to the kunlun-server node when it receives ACKs from N replicas. If a primary node is gone, the cluster_mgr will quickly detect this within 5 seconds and elects a new primary node which has binlogs of all latest transactions, and make it the new primary node and switch all the rest replicas to replicate from the new primary node. The old primary node can later join the shard as a replica, or if it restarts quickly enough it can be the primary without such an election and switch-over.
The cluster_mgr cluster itself is also highly available, the primary node is gone, it automatically elects a new primary to take over the cluster maintenance work.
### Distributed Transaction Processing
KunlunBase distributed query processing aims to relieve users from having to write SQL queries according to their data's distribution, i.e. it partitions user data transparently. This is achieved partly via its distributed transaction processing features, and partly via its distributed query processing features.
With the help of these features, users can simply write SQL queries as if they were using a traditional standalone PostgreSQL or MySQL database, and they don't have to know or consider in which storage shards certain portions of data are stored in order to write a working SQL query and transaction.
KunlunBase automatically does distributed transaction processing using the robust and well validated two phase commit(2PC) protocol, and as long as storage shards is fully "XA resillient", a distributed transaction has ACID guarantees. However currently no official releases of MySQL community server is fully "XA resillient", they all have a list of unsupported XA features. [This doc](https://dev.mysql.com/doc/refman/8.0/en/xa-restrictions.html) and [this one](https://dev.mysql.com/doc/refman/5.7/en/xa-restrictions.html) has the full list of unsupported features that make official MySQL not XA resillient.
When you use official MySQL(including Percona-mysql), if one or more primary nodes and/or replica nodes go down or MySQL binlog replication is broken/stopped, it's possible that some distributed transactions lose partial committed changes or becomes inconsistent, or MySQL binlog replication fails to resume working.
In KunlunBase we provide kunlun-storage, which is an enhanced MySQL branch which proved to be fully XA resillient, and all these 'XA resillience' issues are well solved.
### Distributed Query Processing
As to SQL compatibility, our aim is to keep KunlunBase as SQL compatible as the PostgreSQL version kunlun-server is baded on(currently PostgreSQL-11.5), except the features that we explicitly removed, such as foreign keys, etc(detailed below).
KunlunBase can correctly execute test cases in TPC-C, TPC-H and TPC-DS with excellent performance, and passes all test cases contained in PostgreSQL-11.5 distribution, plus the extra huge amount of tests we added for our enhancement and extensions.
KunlunBase's distributed query processing is made as an integral part of PostgreSQL's query parse/optimization/execution process. Optimization of remote queries takes into account the network transfer cost of partial data from storage shards to the initiating kunlun-server node, and the extra cost inside kunlun-server node to process such partial results from storage shards. And we try to minimize the overall cost of remote query processing in our query optimizations.
KunlunBase can handle cross shard table joins and aggregates queries, and regular insert/delete/update/select statements, and it supports prepared statements of both MySQL and PostgreSQL syntax, sequences, and all regular DDLs in PostgreSQL syntax, and all MySQL private DML SQL syntax.
With transparent SQL compatibility, application developers can utilize standard SQL workflows and tool chains to streamline their workflow for premium efficiency and productivity. For example they can use ORM tools like hibernate or MyBatis to avoid writing SQL statements by hand in their application development, which would be impossible if they were using sharding middleware or doing sharding in application code or using some sharding middleware which support only simple SQL queries.
#### SQL features removed in KunlunBase
create table ... select from
select into ... from ...
foreign keys
triggers --- KunlunBase supports row level triggers since version 1.1.
All other standard SQL syntax will be supported.
#### SQL features to be supported later
1. multi-table update/delete statements --- supported in version 1.1
i.e. updating/deleting rows of multiple tables in one statement, and updating/deleting rows of one table by identifying target rows by joining other tables.
2. updating fields of partition columns
#### Standard SQL Data types supported
All standard SQL data types supported by PostgreSQL and/or MySQL
Some PostgreSQL extended data types, and
All private data types of MySQL, are supported, as detailed below.
##### All integer types and numeric types: bool, smallint, int, bigint, numeric(P,S), money, float/real, double;
##### All text types: char(N), varchar(N), text, blob, user defined enum types, and bit(N)/varbit(N))
##### Most date and/or time types
Including date, time, timetz, timestamp, timestamptz. The only exception is interval: interval is not yet supported and will be supported later.
##### Some PostgreSQL private types are supported: Name, Oid, CID, TID, XID, LSN, macaddr, macaddr8, cidr, uuid.
##### All private data types of MySQL, e.g. {tiny|medium|long}{text|blob|int}, datetime, etc
#### PostgreSQL specific SQL features that KunlunBase won't support
##### Cursors statements
DECLARE, FETCH, MOVE stmts, and the use of cursors in UPDATE/DELETE stmts, will never be supported, the result of using them is undefined.
##### unsupported table options
ON COMMIT clause in 'CREATE TABLE' is not supported.
create table using table inheritance is NOT supported. Using both of these stmts is behavior undefined.
##### Tablespaces
CREATE/ALTER TABLESPACE, and tablespace settings used anywhere including CREATE/ALTER database/table/index.
##### Indexing settings
Exclude, include, COLLATE, and partial indexing. Specifying them produces an error, they'll be never supported as restricted by mysql.
##### Storage settings for db/table/index
These include 'with oids' table option, the tablespace settings and table storage parameters for dbs, tables and indexes.
Since user tables are not 'stored' in kunlun-server nodes, no such storage related settings are supported.
Specifying 'WITH OIDS' setting and any storage parameter of tables other than the newly added 'shard' parameter, produces an error.
Storage parameters for indexes and attributes are simply ignored;
All tablespace settings are ignored.
#### PostgreSQL specific data types
Some PostgreSQL's private extensions are NOT and will never supported, including arrays, ranges, vectors, composite types, row types, table inheritance, table/relation types, etc.
##### User defined types
Domains and user defined types that derive from basic numeric or text types are not supported now but they may be supported in future; All other user defined domains/types except enum types will not be supported.
##### json and spatial types will be supported in future.
### Automatic DDL synchronization
KunlunBase supports automatic DDL synchronization, that is, any DDL statement executed in one kunlun-server node automatically takes effect on all kunlun-server nodes of the same cluster. And also the DDLs required to execute in relevant storage shards are automatically executed as part of the DDL statement execution. And such operations are made crash safe, so that if during the execution of such a DDL any kunlun-server node(s) or storage shard node(s) terminates/exits for any reason, the entire system data and metadata is consistent and integral. So this feature can greatly relieve DBA and devops engineers from repetitive and error prone routines and greatly improve their productivity.
For example, suppose we have connection conn1 connected to kunlun-server node CN1, and connection conn2 connected to kunlun-server node CN2. Now we create a table tx via conn1, during the DDL execution, the table is properly defined in CN1's catalog, and tx's storage table is automatically properly created in the selected (by kunlun-server or by user) storage shard, and after the "create table" statement completes, immediately(in configurable period of time) in CN2 and all other kunlun-server nodes we can use/access the table tx.
We name this feature 'automatic DDL synchronization'. All DDLs are well supported, such as create/drop/alter table/index/partition/sequence/view/materialized view/database/schema/user/role statements;
## Cautions
Do not modify anything (table, stored procedure, etc) in Kunlun_Metadata_DB database of the meta-data shard manually, otherwise KunlunBase may not work correctly and you may lose your data.
At the same time, do not manually modify any metadata tables(i.e. whose names start with pg_ , all in pg_catalog schema) in any kunlun-server nodes, such as pg_shard, pg_shard_node, etc, otherwise KunlunBase may not work correctly and you may lose your data. You can only modify system metadata using SQL commands and/or scripts provided in KunlunBase.
## Contact
You are welcome to give us feedbacks, bug reports and feature requests in this github page. Also please visit www.kunlunbase.com for more information about KunlunBase, visit downloads.kunlunbase.com to download docker images, built binaries and pdf docs about KunlunBase distributed database, and bugs.kunlunbase.com for the bugs and tasks we completed and plan to work on.
================================================
FILE: README_CN.md
================================================
# KunlunBase(昆仑分布式数据库)简介
昆仑分布式数据库集群(下文简称KunlunBase)是一个分布式关系数据库管理系统,面向TB和PB级别海量数据处理,帮助用户高吞吐量和低延时处理海量数据高并发读写请求。它提供健壮的事务ACID保障,高效易用的分布式查询处理,高可扩展性,高可用性和透明的数据分片存储和访问,业务层和终端用户无感知的水平扩展能力,以及在分布式的数据分片中实现SQL兼容性,是典型的 NewSQL分布式数据库系统,支持OLTP和OLAP负载。应用软件开发者按照使用单节点PostgreSQL 和MySQL 关系数据库相同的方法使用KunlunBase,就可以得到所有上述NewSQL数据库的优点,完全不需要考虑数据的分区方式等存储细节。这样,应用开发者就可以非常快速地开发健壮可靠的,高可用和高可扩展的信息系统,来处理TB乃至PB级海量数据。所有的海量数据管理的挑战和困难都由KunlunBase来解决,从而大大降低了开发分布式应用系统的时间成本和资金成本和技术难度,并且全面提升其产品质量,大大加快应用开发和变更过程中的上线进度。
用户应用系统可以使用多种方式连接到 KunlunBase,包括 JDBC and ODBC, 社区版的PostgreSQL 和 MySQL提供的C/C++ 客户端连接库,以及包括php/python/go/rust/ruby/c#/ASP/.net 在内的所有主流编程语言的 PostgreSQL 和 MySQL 客户端连接库。
KunlunBase 具备良好的SQL 兼容性, 可以优秀的性能通过 TPC-C, TPC-H and TPC-DS 测试,以及 PostgreSQL 和 MySQL的SQL兼容性测试.
因此,原本使用MySQL 或 PostgreSQL数据库的应用系统可以完全不需要任何代码修改或者重新构建,就可以与KunlunBase 集群协作和交互从而利用到KunlunBase强大的NewSQL能力。用户可以使用标准SQL语法,以及MySQL 或 PostgreSQL对DML SQL语法的扩展。这样,所有SQL生态圈工具都可以与KunlunBase协作,例如用户可以使用Hibernat和 Mybatis等对象关系映射(ORM)组件与KunlunBase交互,这样应用软件开发者就不需要写SQL语句来读写数据了,大大提升应用开发效率。
通过使用KunlunBase,应用软件架构师和开发者可以快速设计和开发健壮、高可靠、高可用、高可扩展的信息系统,来处理TB级数据,所有这些工作都不需要为数据的庞大规模做任何特殊的设计和开发,所有的技术挑战都由KunlunBase解决,这就大大降低了中大型应用系统开发的成本、难度和时间,并且提升应用系统的食量和可靠性。
## 架构
一个KunlunBase集群有3类组件构成:一个或者多个kunlun-server实例,一个或者多个storage shard(存储集群)以及一个metadata shard(元数据集群)。
本软件是KunlunBase的kunlun-server组件,基于PostgreSQL-11.5开发。为了实现自动的DDL同步及复制以及分布式事务,分布式查询处理等高级功能,我们大量地修改了PostgreSQL源代码,而不是直接使用其FDW接口。我们的代码保持了很好的模块化,方便将来可以继续跟随PostgreSQL版本更新。
kunlun-server 支持PostgreSQL连接协议和MySQL连接协议,每个kunlun-server实例同时监听一个PostgreSQL端口和一个MySQL端口来接收和验证用户的连接请求。连接请求验证通过后,就接收和处理连接上发来的查询并返回结果给客户端。用户可以根据工作负载来增减kunlun-server实例,每个kunlun-server实例彼此平等和独立,没有依赖关系,都可以处理用户连接和读写请求。kunlun-server含有每个数据表以及其他数据库对象的元数据,但是用户数据存储在存储shard中。执行一个SQL时,kunlun-server解析该语句,然后对它做分布式查询优化,然后通过与后端存储shard做交互来完成分布式查询执行。交互的方法就是根据SQL语句的需要和数据在后端shard的分布信息,为相关的后端存储shard生成SQL语句。如果执行的SQL语句是 SELECT 或者 INSERT/DELETE/UPDATE...RETURNING 而不是简单的 INSERT/DELETE/UPDATE, 那么kunlun-server会并发地发送语句然后接收结果,最后通过执行分布式查询计划来合并处理所有后端存储shard返回的结果,形成最终的查询结果,返回给客户端。
每个存储shard 存储着一部分用户表或者表分区,每个shard的数据子集没有交集;每个存储shard是一个MySQL binlog复制集群,通过标准的MySQL Group Replication(MGR) single master 模式或者基于KunlunBase企业版专有的fullsync (强同步)复制机制来实现高可用性。
kunlun-storage是KunlunBase的存储节点,它是我们基于percona-server-8.0深度优化开发的MySQL分支。用户必须使用kunlun-storage软件组建KunlunBase的存储集群和元数据集群,因为KunlunBase集群需要的关键功能只存在于kunlun-storage中,并且它还包含了社区版MySQL-8.0 XA事务处理的所有容灾缺陷的修复;最后,kunlun-storage 包含性能优化,在性能方面领先社区mysql。
一个shard的主节点接受来自kunlun-server的读写请求,执行请求并返回结果给kunlun-server;启用了备机读功能时,shard的备节点可以接收和处理来自kunlun-server的只读请求。用户可以根据数据量的增加和减少来增加或者减少存储shard,KunlunBase会自动把数据均匀分散到所有shard上面,从而达到自动和透明的高可扩展性。
元数据集群也是一个kunlun-storage实例组成的MGR集群,存储着一个KunlunBase集群的元数据。多个数据库集群可以共用同一个元数据集群。
最后,KunlunBase还有一个cluster_mgr实例组成的集群,它负责维护正确的集群和节点状态,控制备份恢复,扩容,集群管理(例如增删kunlun-server节点和kunlun-storage节点)等工作。
## 特点和优势
KunlunBase的主要设计目标是高可扩展性,高可用性和完备的容灾能力,高性能,分布式事务ACID保障,和透明易用的分布式查询处理。
### 高可扩展性
KunlunBase高可扩展,不仅垂直可扩展(scale up),而且水平可扩展(scale out):用户可以通过增加kunlun-server来提升查询处理性能,每个kunlun-server都可以服务读写请求;用户也可以增加更多的存储shard来存储更多的数据并获得更大的查询处理和事务处理能力。KunlunBase会自动把数据平滑地用户无感知的方式分散到新增的存储集群中,确保所有集群承担近乎平均的存储负载。
DBA还可以为OLAP负载专门部署一组kunlun-server实例,并且使用读写分离功能从存储集群的备机节点读取用户数据,这样,就可以使用完全不同的节点来处理OLTP负载和OLAP负载,避免OLAP负载影响OLTP负载的性能。
### 高可用性
KunlunBase集群具备高可用性,部分节点宕机不会导致KunlunBase集群不可用。对于一个拥有2N+1 个kunlun-storage节点的存储shard或者元数据集群来说,这个shard可以抵抗N个节点同时宕机并持续提供服务;任何kunlun-server 实例宕机并不会导致KunlunBase整体不可用,只要系统还有kunlun-server实例在运行,那么KunlunBase整体仍可以处理用户请求。一个kunlun-server实例宕机不会影响同一个KunlunBase集群内其他kunlun-server实例的正常工作。宕机的kunlun-server实例当时正在处理的事务会自动回滚,用户连接会断开,用户数据和系统元数据始终保持一致。
### 分布式事务处理
KunlunBase的分布式查询处理的目标是让用户在写查询语句时不需要考虑他的数据是如何在存储集群分布的。这部分得益于分布式事务处理功能,部分得益于分布式查询处理功能。有了这两大类功能,用户就可以像使用单机MySQL或者PostgreSQL那样写SQL查询语句,不需要知道其SQL语句所读写的任何部分的数据是如何分布在哪几个存储shard 这类问题,也就是说应用开发者完全不需要直接使用或者知道‘分布式事务处理’或者‘分布式查询处理’这样的概念,所有这些强大的功能都是在后台默默为用户服务的,给用户带来简单的使用体验。
KunlunBase基于久经考验的两阶段提交协议(2PC)来自动做分布式事务处理,事务提交时候根据需要做两阶段提交或者一阶段提交。只要存储shard是 ‘XA resilient’ 的,那么分布式事务就有ACID保障。 不过,目前MySQL官方发布的社区版本没有 ‘XA resilient’ 的,它们都有一些无法良好支持的XA事务处理特性。 [这个文档](https://dev.MySQL.com/doc/refman/8.0/en/xa-restrictions.html) 和 [这个文档](https://dev.MySQL.com/doc/refman/5.7/en/xa-restrictions.html)含有所有官方MySQL版本不支持的XA事务处理功能。 当用户使用官方社区版本时,如果一个或者多个主/备节点宕机或者binlog复制发生中断,或者主备连接断开,那么有可能一些分布式事务会部分丢失已提交的改动或者在多个存储shard的事务分支的提交状态不同(部分提交,部分回滚),或者binlog 复制无法恢复工作等问题。
所以用户必须使用kunlun-storage组建存储集群,它填补了所有官方MySQL版本的XA事务处理的空白,是完全 ‘XA resilient’ 的。
### 分布式查询处理
KunlunBase的SQL兼容性与PostgreSQL相同,支持聚集查询,多表连接,自查询,CTE,以及grouping sets,cube, roll up, window function等OLAP功能。除了我们主动去除的DDL功能(比如外键和触发器)之外。KunlunBase可以优秀的性能通过 TPC-C, TPC-H and TPC-DS 测试,以及 PostgreSQL 和 MySQL的SQL兼容性测试,以及我们额外增加的大量SQL功能测试.
KunlunBase的分布式查询处理被设计和实现成为PostgreSQL的查询处理流程的有机组成部分。查询优化会考虑到数据在存储shard和kunlun-server之间的网络传输代价,以及在kunlun-server内部的合并处理来自存储shard的子结果的额外的开销。在此基础之上,试图最小化整体的查询处理开销。
借助KunlunBase优秀的SQL兼容能力,应用程序开发者可以使用标准SQL工作流和工具链来提升其工作效率。例如用户可以使用Hibernat和 Mybatis等对象关系映射(ORM)组件与KunlunBase交互,这样应用软件开发者就不需要写SQL语句来读写数据了,大大提升应用开发效率。这对于分库分表中间件或者应用层分表来说,是完全做不到的。
### 自动DDL
KunlunBase集群支持自动DDL,也即是说,在一个kunlun-server执行一个DDL时候,它会自动在集群所有kunlun-server生效并且相关的存储集群上面需要为此DDL执行的DDL语句也会作为整体DDL语句的一部分被自动执行。并且这样的自动DDL是可以容灾的,DDL执行期间集群任何kunlun-server或者存储节点因为任何原因退出或者宕机,集群的用户数据和元数据的一致性和完整性可以得到保障。可以看出,这个功能可以大大滴把DBA和运维人员从重复和易错的繁重的运维劳动中解放出来,大大提升他们的工作效率。
例如,我们有两个连接conn1和conn2,分别连接着同一个集群的两个kunlun-serverCN1和CN2,现在我们在conn1中执行create table语句创建表tx,该语句执行期间,tx的会在CN1的catalog中被定义,tx在存储shard上面的表会在该DDL语句执行期间被妥善地在自动选定(会有多种策略)的shard上面创建好。该DDL语句执行成功后,立刻(可配置的若干秒)在CN2以及本集群所有kunlun-server上面我们就可以使用表tx,对它做增删改查等操作. 我把这个功能叫做‘自动DDL’。
所有涉及到存储shard的DDL语句目前都已经支持自动DDL,包括create/drop/alter table/partition/index/database/schema/sequence/materialized view。对于其他的DDL,用户在任何一个kunlun-server执行该语句,本集群所有kunlun-server上面都会生效。
## 注意事项
禁止手工修改元数据集群中的数据,以及计算节点中的元数据,而是执行 DDL 语句完成需要的功能。否则可能导致丢失用户数据等严重问题。
## 其他
访问我们的官网www.kunlunbase.com获取各类资源和文档,查看kunlunbase的bug报告和功能开发任务,以及下载KunlunBase软件程序。
## 联络和资源
KunlunBase讨论群咨询和讨论(QQ群,号码:336525623)或者访问bugs.zettadb.com 报告bug以及查看每个bug的详细信息,每一个报告了bug的朋友我们都会在contributors文件中列出以表达感谢。
KunlunBase已经开源,欢迎访问 https://github.com/zettadb 或者 https://gitee.com/zettadb/ 获取KunlunBase的各模块的源代码并且为Kunlun数据库项目加星来给予我们鼓励。
================================================
FILE: ReleaseNotes.md
================================================
# Introduction
For more information, resources, documentation of Kunlun distributed RDBMS, please visit www.kunlunbase.com
Download KunlunBase and use it for free at http://downloads.kunlunbase.com/
This document isn't maintained anymore, for latest release notes, see http://doc.kunlunbase.com/Release_notes.html
# Release Notes Kunlun version 0.8.3
## Summary
Completed adaption and development of essential distrbuted query optimization and execution of advanced SQL features against multiple tables and/or partitions scattered on multiple storage shards, including aggregation, multi-table join, sub-queries, window functions, stored procedures, etc. Also, fixed over 50 bugs for features such as distributed query processing, sequences, distributed DDL execution&replication, etc.
Starting from this version, Kunlun can reliably process all supported SQL queries including all supported DDL and DML, can do distributed transaction processing and distributed query optimization and execution. So it's great time start trying it out and do some POC testing.
## Kunlun Test Suite(KTS)
We built our Kunlun Test Suite(KTS) using PostgreSQL's original test suite, removing test cases around features that are not supported in Kunlun, such as foreign keys, triggers, check constraints, object database features(table/type inheritance, creating table from composite types, etc). And we also added many extra SQL tests into KTS to test all newly added features exhaustively.
Now Kunlun database has passed most of KTS test cases. There are about 50 bugs that are not fixed yet, which either belong to trivial/corner features or features scheduled for development in future versions. They will be fixed in the near future. All bug reports can be found in bugs.zettadb.com
## Bugs fixed in kunlun 0.8.3
10 pg_dump: 0 is outside the valid range for parameter
13 drop schema cascade fails when the schema has tables
14 Alter a cloumn type fails when the column has an index on it
16 Can not create index on text column
17 The command does not return the number of affected records in psql
21 Crashcase: select attrelid::regclass, attname, attnum from pg_attribute where attname = 'a' and (attrelid = 'mlparted'::regclass or attrelid = 'mlparted1'::regclass);
25 Create table with 'CONCURRENTLY' fails
28 Explain update on view fails
29 No target columns found in update statement UPDATE
30 Parser Bug: syntax error in select from view
31 ERROR: attribute number 2 exceeds number of columns 1
32 Bad output for table join results
33 Crash when releasing a savepoint
34 Primary index for partitioned table is not found
36 Warnings for relcache reference leak
39 Problem in alloc set ExecutorState: detected write past chunk end
41 Bad results for aggregates with subquery
42 rollback a readonly transaction make the progress crash
43 Lateral expression crash in table join queries
48 Bugs for processing the query using current_user
51 Errors for insert into select from
53 Unable to serialize where clause expression in statement UPDATE
54 The features should not be supported, but there is no error when creating/using it.
55 Misleading info when select postgres system column from a table
56 Record is not forbidden to insert into the wrong partitioned subtable
57 Fail to create temp table inside an explicit transaction
60 errors when explain select from a view
61 alter table change schema errors when it is current schema
64 Crash when alter table with 'SET GENERATED BY DEFAULT'
65 Bad results for column with 'GENERATED'
66 error in partition join query
67 Crash in partition join when SET enable_partitionwise_join to true
71 Add timestamp column fails when using now() as the default value
72 ERROR: can't specify non default null ordering for a column of a remote relation's index
74 Copy command is not supported yet
78 Better message when the type is not supported
81 Bad processing for join query
83 Crash when insert into using values of a function call
84 INTERSECT query result error
85 cluster_mgr mysql header dependence
90 Unexpected statements exist in ddl log
92 An implicit sequence may not be stored where its owner table is stored
110 Select from a complex view fails
111 Misleading info when executing 'create table of type'
112 create view with local check option does not produce error/warning output, but it does not really work
114 Update crash when involving CURRENT_USER and SESSION_USER
116 Using numeric without precision/scale will drop the digits after point
121 A constraint can not be added again after it is deleted
126 Update/delete statements sent to storage node is not correct when using returning clause
127 Some DDL statements are not logged into ddl_ops_log_clust1
# Release Notes Kunlun version 0.8.2
## 1. Stability and Robustness Improvement
Improved overall stability and performance of kunlun computing node.
## 2. Performance improvement
Query processing performance improvement.
# Release Notes Kunlun version 0.8.1
In this release we completed the following features:
## kunlun computing node
### 1. Sequences
Made PostgreSQL native sequence feature work with Kunlun architecture. A sequence metadata is stored in storage shard meta tables(kunlun_sysdb.sequences), and no matter it's created in which computing nodes, all computing nodes will have the sequence locally and be able to use it efficiently.
All PostgreSQL sequence features are supported including explicit create and use of sequences as well as implicit measures such as serial type, the 'generated as identity' option in 'create table' statement. Also implemented sequence grammar of Oracle and autoincrement grammar of MySQL.
### 2. All DDLs
Now we support all DDLs that we plan to support in Kunlun RDBMS, including "ALTER TABLE/INDEX/SEQUENCE statements", among others. Unsupported grammers will return error gracefully.
So now DDLs are complete in Kunlun.
### 3. Prepared statement
This is crucial for security and query processing performance.
### 4. Cross shard joins and subqueries
The functionality is working now, but it needs extra optimization work for premium performance in certain cases, will be done in the 0.8 milestone.
### 5. Aggregates and OLAP
The functionality is working now, but it needs extra optimization work for premium performance in certain cases, will be done in the 0.8 milestone.
### 6. insert/update/delete ... returning clause
This is very important if you need to get all fields of modified rows atomically.
### 7. Containerization
All Kunlun modules are released in docker images now and containers will continue to be one form of release for Kunlun in future.
# Release Notes Kunlun version 0.7
In this release we completed a group of very important features involving crash safety, auto failover and more.
## Kunlun-storage
Kunlun-storage development, in which all known XA bugs in official MySQL-8.0 are fixed. And also we enhanced its performance so that in standard sysbench performance tests, QPS improved by at most %50 and latency drops by at most 50%. See [this report](https://zhuanlan.zhihu.com/p/151664455) for details.
All other supporting features required for collaboration with computing nodes of a Kunlun DDC.
## Cluster_manager
Added cluster_manager program which maintains correct MGR status of storage shards and metadata shard of Kunlun DDCs that are registered in the same meta-data shard, so that all nodes of an MGR shard keeps running online and XA transaction branches left over by node crashes are correctly handled.
## Computing nodes
### Global deadlock detection and resolve
Global deadlocks that couldn't be handled by MySQL Innodb storage engine could now be correctly detected and resolved, so that Kunlun DDC could execute transactions in optimal performance.
### Adaption to MGR primary nodes auto-failover
When a storage shard/metadata shard's primary node changes for any reason, computing nodes can automatically discover the incident and adapt to it.
## Crash safety
Crash safety for computing nodes, storage shards and meta-data shard. In all now a Kunlun DDC could survive network partition, and/or node failures caused by any accidents.
# Release Notes Kunlun version 0.6
## I. Features
### 1. Data types supported
All standard SQL data types supported by PostgreSQL, and some PostgreSQL extended data types, are supported as below.
1.1 All integer types and numeric types: bool, smallint, int, bigint, numeric(P,S), money, float/real, double;
1.2 All text types: char(N), varchar(N), text, blob, user defined enum types, and bit(N)/varbit(N))
1.3 Most date and/or time types, including date, time, timetz, timestamp, timestamptz. interval is not yet supported.
1.4 Some PostgreSQL private types are supported: Name, Oid, CID, TID, XID, LSN, macaddr, macaddr8, cidr, uuid.
1.5 Some PostgreSQL's private extensions are NOT supported, including arrays, ranges, vectors, composite types, row types, table inheritance, table/relation types, etc.
1.6 Domains and user defined types that derive from basic numeric or text types are not supported now but they may be supported in future; All other user defined domains/types except enum types will not be supported.
### 2. Functions and operators supported
All standard SQL operators and functions, and most postgreSQL specific functions&operators are supported. Although MySQL doesn't support non-SQL-standard operators and functions of PostgreSQL, Kunlun can handle such queries correctly, some by converting to MySQL supported ones, some by computing locally inside computing nodes and only push down the operators and functions that MySQL can handle to storage shards.
### 3. Table sharding, using PostgreSQL table partitioning feature.
Partitions of a table partition may be stored in one or more storage shards, decided by the computing nodes. They are read/written as necessary, also decided by computing nodes.
### 4. Most common DDL and DML operations, as detailed below.
#### 4.1 DDLs
Create/drop table/index/database/schema are well supported.
These DDLs are well supported as being 'automatic' --- when a client sends such a DDL to one computing node execution, the database object(table, schema, database) will be automatically created on all computing nodes and target storage shards.
create table NAME (like table-template); is supported;
UNLOGGED tables are created as MyISAM tables in storage nodes.
A TEMPORARY table is stored in the computing node since it's only used throughout the session where it's created.
Unsupported clauses of these DDLs are listed below.
For all other DDLs, users have to execute the same DDL on each computing node instance for now, and such DDLs don't need storage shard actions. This may be made partly automatic in future, so that users need only to send the same such DDLs only once to Kunlun system and it will take effect on all computing nodes of the cluster.
#### 4.2 DMLs
Insert/delete/update/select stmts are well supported, with below exceptions.
update/delete don't support multi-table statements or 'returning' clause yet, will be supported in future.
insert/update don't support 'ON CONFLICT' clauses yet, will be supported in future.
#### Some distributed query processing
This is on-going effort, the ultimate goal is to support all of them in highly efficient manner.
### 5. Distributed transaction processing
This is transparently done inside Kunlun system, users don't need to do anything special, they simply issue transaction commands the same way as using PostgreSQL. In terms of transaction processing, users can simply take Kunlun as if they were using a PostgreSQL database.
With mysql community server as storage shard node, global deadlock detector can't work, so there can be global deadlocks which can't be resolved by innodb. One needs specialized version which will be released soon.
## II. PostgreSQL Features not supported yet
Some of these will be supported in the future, others will never be supported, as detailed below. For those that 'may be supported in future' or 'never supported', using it on current version causes undefined behavior and undefined result to your data and cluster, so never attempt on a production deployment. This is denoted as 'behavior undefined' below.
For local catalog tables, everything works just as in original PostgreSQL, all the stuff here is about user tables whose payload data is actually stored in storage shards.
In all we can roughly conclude that most of PostgreSQL's 'advanced' features and 'private extensions' are not supported now or never in future. We only expose and make use of the most commonly used features of PostgreSQL as Kunlun's functionality set.
### 1. DDLs Not Supported Yet
1.1 Alter table stmts
Some of them will be supported in future. For now, behavior undefined.
1.2 create table ... select from
never supported, per restriction by MySQL. For now, behavior undefined.
1.3 foreign keys
never supported, for performance reasons. Specifying them produces an error.
1.4 'generated as identity' in 'create table' stmt
may be supported in future. For now, behavior undefined.
1.5 db/table/index storage settings
These include 'with oids' table option, the tablespace settings and table storage parameters for dbs, tables and indexes.
Since user tables are not 'stored' in computing nodes, no such storage related settings are supported.
Specifying 'WITH OIDS' setting and any storage parameter of tables other than the newly added 'shard' parameter, produces an error.
Storage parameters for indexes and attributes are simply ignored;
All tablespace settings are ignored.
1.7. forbidden index settings/clauses in 'create index'
Exclude, include, COLLATE, and partial indexing. Specifying them produces an error, they'll be never supported as restricted by mysql.
Expressions as index key parts is not supported for now, may support it in future.
'concurrent' clause is ignored.
1.8 DEFAULT partition of a partitioned table
may be supported in future.
1.9 triggers, stored procedures
may be supported in future.
1.10 TABLESPACES
CREATE/ALTER TABLESPACE, and tablespace settings in anywhere including CREATE/ALTER database/table/index.(never supported)
Users can still create/alter/remove tablespaces, but these tablespaces will never be effectively used.
1.11 ALTER DATABASE
Rename database will never be supported, doing so produces an error.
Other features of 'alter database' may be supported in future.
1.12 Cursors
Cursors will never be supported, per the nature of table sharding.
So DECLARE, FETCH, MOVE stmts, and the use of cursors in UPDATE/DELETE stmts, will never be supported, the result of using them is undefined.
1.13 unsupported table options
ON COMMIT clause in 'CREATE TABLE' is not supported.
create table using table inheritance is NOT supported. Using both of these stmts is behavior undefined.
### 2. DMLs Not Supported Yet
2.1 multi-table join
This is on-going effort, some already working. It will be much better improved in future versions.
2.2 insert into ... select from
may be supported in future
2.3 access to system columns
System columns including OID, TableOid, xmin, xmax, txnid, etc are not available, since user data is not stores in PostgreSQL heap relations.
2.4 update/delete stmts
We don't support multi-table statements or 'returning' clause yet. It will be supported in future.
================================================
FILE: aclocal.m4
================================================
dnl aclocal.m4
m4_include([config/ac_func_accept_argtypes.m4])
m4_include([config/ax_prog_perl_modules.m4])
m4_include([config/ax_pthread.m4])
m4_include([config/c-compiler.m4])
m4_include([config/c-library.m4])
m4_include([config/check_decls.m4])
m4_include([config/docbook.m4])
m4_include([config/general.m4])
m4_include([config/libtool.m4])
m4_include([config/llvm.m4])
m4_include([config/perl.m4])
m4_include([config/pkg.m4])
m4_include([config/programs.m4])
m4_include([config/python.m4])
m4_include([config/tcl.m4])
================================================
FILE: build.sh
================================================
#! /bin/bash
# configure and build Kunlun computing node program.
# If you don't need to configure it, simply do make install.
# usage: build.sh <build-type> <prefix> Then build.sh install
# build-type: Release or Debug
# e.g. bash build.sh Release /home/dzw/mysql_installs/postgresql-11.5-rel
# then (probably run as root): bash build.sh install
export SRCROOT=`pwd`
action="$1"
usage(){
echo "Usage: build.sh <build-type> <prefix> Then build.sh install"
echo " build-type: Debug | Release"
exit 1
}
init() {
test "$1" = "" && usage
cd $SRCROOT
idir="$1"
echo "$idir" > installdir
cd $SRCROOT/resources
test -d mysql || tar -xzf mysql_client.tgz
# ln -s ./libmariadb.so.3 libmariadb.so
cd $SRCROOT/src/include/sharding
ln -s $SRCROOT/resources/mysql mysql
cd $SRCROOT
}
build() {
idir="$2"
init "$idir"
export LIBS=-lmariadb
export LDFLAGS=-L$SRCROOT/resources
if test "$1" = "Release"; then
export CFLAGS="-O2 -ggdb3"
export CXXFLAGS="-O2 -ggdb3"
./configure --with-openssl --with-icu --prefix="$idir"
# ./configure --with-openssl --with-icu --with-llvm --prefix="$idir"
elif test "$1" = "Debug"; then
export CFLAGS="-O0 -ggdb3 -DENABLE_DEBUG"
export CXXFLAGS="-O0 -ggdb3 -DENABLE_DEBUG "
./configure --with-openssl --with-icu --enable-debug --enable-cassert --prefix="$idir"
# ./configure --with-openssl --with-icu --with-llvm --enable-debug --enable-cassert --prefix="$idir"
# in current ubuntu-20.04 latest llvm there is build error.
else #defensive
usage
fi
cd $SRCROOT/src && make clean
cd $SRCROOT && make -j8 2> $SRCROOT/err.txt
}
install() {
test -f installdir || {
echo "installation directory is not set, call 'build.sh build' first!"
usage
}
idir=`cat installdir`
mkdir -p "$idir"
make install
bash ./post-install.sh "$idir"
}
if test "$action" = "Debug" -o "$action" = "Release"; then
test "$#" != 2 && usage
build "$1" "$2"
elif test "$action" = "install"; then
test "$#" != 1 && usage
install
else
usage
fi
================================================
FILE: config/Makefile
================================================
# config/Makefile
subdir = config
top_builddir = ..
include $(top_builddir)/src/Makefile.global
install: all installdirs
$(INSTALL_SCRIPT) $(srcdir)/install-sh '$(DESTDIR)$(pgxsdir)/config/install-sh'
$(INSTALL_SCRIPT) $(srcdir)/missing '$(DESTDIR)$(pgxsdir)/config/missing'
installdirs:
$(MKDIR_P) '$(DESTDIR)$(pgxsdir)/config'
uninstall:
rm -f '$(DESTDIR)$(pgxsdir)/config/install-sh'
rm -f '$(DESTDIR)$(pgxsdir)/config/missing'
================================================
FILE: config/ac_func_accept_argtypes.m4
================================================
# config/ac_func_accept_argtypes.m4
# This comes from the official Autoconf macro archive at
# <http://research.cys.de/autoconf-archive/>
dnl @synopsis AC_FUNC_ACCEPT_ARGTYPES
dnl
dnl Checks the data types of the three arguments to accept(). Results are
dnl placed into the symbols ACCEPT_TYPE_RETURN and ACCEPT_TYPE_ARG[123],
dnl consistent with the following example:
dnl
dnl #define ACCEPT_TYPE_RETURN int
dnl #define ACCEPT_TYPE_ARG1 int
dnl #define ACCEPT_TYPE_ARG2 struct sockaddr *
dnl #define ACCEPT_TYPE_ARG3 socklen_t
dnl
dnl NOTE: This is just a modified version of the AC_FUNC_SELECT_ARGTYPES
dnl macro. Credit for that one goes to David MacKenzie et. al.
dnl
dnl @version $Id: ac_func_accept_argtypes.m4,v 1.1 1999/12/03 11:29:29 simons Exp $
dnl @author Daniel Richard G. <skunk@mit.edu>
dnl
# PostgreSQL local changes: In the original version ACCEPT_TYPE_ARG3
# is a pointer type. That's kind of useless because then you can't
# use the macro to define a corresponding variable. We also make the
# reasonable(?) assumption that you can use arg3 for getsocktype etc.
# as well (i.e., anywhere POSIX.2 has socklen_t).
#
# arg2 can also be `const' (e.g., RH 4.2). Change the order of tests
# for arg3 so that `int' is first, in case there is no prototype at all.
#
# Solaris 7 and 8 have arg3 as 'void *' (disguised as 'Psocklen_t'
# which is *not* 'socklen_t *'). If we detect that, then we assume
# 'int' as the result, because that ought to work best.
#
# On Win32, accept() returns 'unsigned int PASCAL'
# Win64 uses SOCKET for return and arg1
AC_DEFUN([AC_FUNC_ACCEPT_ARGTYPES],
[AC_MSG_CHECKING([types of arguments for accept()])
AC_CACHE_VAL(ac_cv_func_accept_return,dnl
[AC_CACHE_VAL(ac_cv_func_accept_arg1,dnl
[AC_CACHE_VAL(ac_cv_func_accept_arg2,dnl
[AC_CACHE_VAL(ac_cv_func_accept_arg3,dnl
[for ac_cv_func_accept_return in 'int' 'unsigned int PASCAL' 'SOCKET WSAAPI'; do
for ac_cv_func_accept_arg1 in 'int' 'unsigned int' 'SOCKET'; do
for ac_cv_func_accept_arg2 in 'struct sockaddr *' 'const struct sockaddr *' 'void *'; do
for ac_cv_func_accept_arg3 in 'int' 'size_t' 'socklen_t' 'unsigned int' 'void'; do
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[#include <sys/types.h>
#include <sys/socket.h>
extern $ac_cv_func_accept_return accept ($ac_cv_func_accept_arg1, $ac_cv_func_accept_arg2, $ac_cv_func_accept_arg3 *);])],
[ac_not_found=no; break 4], [ac_not_found=yes])
done
done
done
done
if test "$ac_not_found" = yes; then
AC_MSG_ERROR([could not determine argument types])
fi
if test "$ac_cv_func_accept_arg3" = "void"; then
ac_cv_func_accept_arg3=int
fi
])dnl AC_CACHE_VAL
])dnl AC_CACHE_VAL
])dnl AC_CACHE_VAL
])dnl AC_CACHE_VAL
AC_MSG_RESULT([$ac_cv_func_accept_return, $ac_cv_func_accept_arg1, $ac_cv_func_accept_arg2, $ac_cv_func_accept_arg3 *])
AC_DEFINE_UNQUOTED(ACCEPT_TYPE_RETURN, $ac_cv_func_accept_return,
[Define to the return type of 'accept'])
AC_DEFINE_UNQUOTED(ACCEPT_TYPE_ARG1, $ac_cv_func_accept_arg1,
[Define to the type of arg 1 of 'accept'])
AC_DEFINE_UNQUOTED(ACCEPT_TYPE_ARG2, $ac_cv_func_accept_arg2,
[Define to the type of arg 2 of 'accept'])
AC_DEFINE_UNQUOTED(ACCEPT_TYPE_ARG3, $ac_cv_func_accept_arg3,
[Define to the type of arg 3 of 'accept'])
])
================================================
FILE: config/ax_prog_perl_modules.m4
================================================
# ===========================================================================
# https://www.gnu.org/software/autoconf-archive/ax_prog_perl_modules.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_PROG_PERL_MODULES([MODULES], [ACTION-IF-TRUE], [ACTION-IF-FALSE])
#
# DESCRIPTION
#
# Checks to see if the given perl modules are available. If true the shell
# commands in ACTION-IF-TRUE are executed. If not the shell commands in
# ACTION-IF-FALSE are run. Note if $PERL is not set (for example by
# calling AC_CHECK_PROG, or AC_PATH_PROG), AC_CHECK_PROG(PERL, perl, perl)
# will be run.
#
# MODULES is a space separated list of module names. To check for a
# minimum version of a module, append the version number to the module
# name, separated by an equals sign.
#
# Example:
#
# AX_PROG_PERL_MODULES( Text::Wrap Net::LDAP=1.0.3, ,
# AC_MSG_WARN(Need some Perl modules)
#
# LICENSE
#
# Copyright (c) 2009 Dean Povey <povey@wedgetail.com>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 8
AU_ALIAS([AC_PROG_PERL_MODULES], [AX_PROG_PERL_MODULES])
AC_DEFUN([AX_PROG_PERL_MODULES],[dnl
m4_define([ax_perl_modules])
m4_foreach([ax_perl_module], m4_split(m4_normalize([$1])),
[
m4_append([ax_perl_modules],
[']m4_bpatsubst(ax_perl_module,=,[ ])[' ])
])
# Make sure we have perl
if test -z "$PERL"; then
AC_CHECK_PROG(PERL,perl,perl)
fi
if test "x$PERL" != x; then
ax_perl_modules_failed=0
for ax_perl_module in ax_perl_modules; do
AC_MSG_CHECKING(for perl module $ax_perl_module)
# Would be nice to log result here, but can't rely on autoconf internals
$PERL -e "use $ax_perl_module; exit" > /dev/null 2>&1
if test $? -ne 0; then
AC_MSG_RESULT(no);
ax_perl_modules_failed=1
else
AC_MSG_RESULT(ok);
fi
done
# Run optional shell commands
if test "$ax_perl_modules_failed" = 0; then
:
$2
else
:
$3
fi
else
AC_MSG_WARN(could not find perl)
fi])dnl
================================================
FILE: config/ax_pthread.m4
================================================
# ===========================================================================
# http://www.gnu.org/software/autoconf-archive/ax_pthread.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
#
# DESCRIPTION
#
# This macro figures out how to build C programs using POSIX threads. It
# sets the PTHREAD_LIBS output variable to the threads library and linker
# flags, and the PTHREAD_CFLAGS output variable to any special C compiler
# flags that are needed. (The user can also force certain compiler
# flags/libs to be tested by setting these environment variables.)
#
# Also sets PTHREAD_CC to any special C compiler that is needed for
# multi-threaded programs (defaults to the value of CC otherwise). (This
# is necessary on AIX to use the special cc_r compiler alias.)
#
# NOTE: You are assumed to not only compile your program with these flags,
# but also link it with them as well. e.g. you should link with
# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
#
# If you are only building threads programs, you may wish to use these
# variables in your default LIBS, CFLAGS, and CC:
#
# LIBS="$PTHREAD_LIBS $LIBS"
# CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# CC="$PTHREAD_CC"
#
# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
# (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
#
# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
# PTHREAD_PRIO_INHERIT symbol is defined when compiling with
# PTHREAD_CFLAGS.
#
# ACTION-IF-FOUND is a list of shell commands to run if a threads library
# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it
# is not found. If ACTION-IF-FOUND is not specified, the default action
# will define HAVE_PTHREAD.
#
# Please let the authors know if this macro fails on any platform, or if
# you have any other suggestions or comments. This macro was based on work
# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help
# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by
# Alejandro Forero Cuervo to the autoconf macro repository. We are also
# grateful for the helpful feedback of numerous users.
#
# Updated for Autoconf 2.68 by Daniel Richard G.
#
# LICENSE
#
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2011 Daniel Richard G. <skunk@iSKUNK.ORG>
#
# This program is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation, either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 21
AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
AC_DEFUN([AX_PTHREAD], [
AC_REQUIRE([AC_CANONICAL_HOST])
AC_REQUIRE([AC_PROG_CC])
AC_LANG_PUSH([C])
ax_pthread_ok=no
# We used to check for pthread.h first, but this fails if pthread.h
# requires special compiler flags (e.g. on Tru64 or Sequent).
# It gets checked for in the link test anyway.
# First of all, check if the user has set any of the PTHREAD_LIBS,
# etcetera environment variables, and if threads linking works using
# them:
if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
AC_MSG_RESULT([$ax_pthread_ok])
if test x"$ax_pthread_ok" = xno; then
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
fi
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
fi
# We must check for the threads library under a number of different
# names; the ordering is very important because some systems
# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
# libraries is broken (non-POSIX).
# Create a list of thread flags to try. Items starting with a "-" are
# C compiler flags, and other items are library names, except for "none"
# which indicates that we try without any flags at all, and "pthread-config"
# which is a program returning the flags for the Pth emulation library.
ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt -mthreads pthread --thread-safe pthread-config"
# The ordering *is* (sometimes) important. Some notes on the
# individual items follow:
# pthreads: AIX (must check this before -lpthread)
# none: in case threads are in libc; should be tried before -Kthread and
# other compiler flags to prevent continual compiler warnings
# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
# -pthreads: Solaris/gcc
# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
# doesn't hurt to check since this sometimes defines pthreads and
# -D_REENTRANT too), HP C (must be checked before -lpthread, which
# is present but should not be used directly)
# -mthreads: Mingw32/gcc, Lynx/gcc
# pthread: Linux, etcetera
# --thread-safe: KAI C++
# pthread-config: use pthread-config program (for GNU Pth library)
case $host_os in
hpux*)
# From the cc(1) man page: "[-mt] Sets various -D flags to enable
# multi-threading and also sets -lpthread."
ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
;;
openedition*)
# IBM z/OS requires a feature-test macro to be defined in order to
# enable POSIX threads at all, so give the user a hint if this is
# not set. (We don't define these ourselves, as they can affect
# other portions of the system API in unpredictable ways.)
AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
[
# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
AX_PTHREAD_ZOS_MISSING
# endif
],
[AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
;;
solaris*)
# Newer versions of Solaris require the "-mt -lpthread" pair, and we
# check that first. On some older versions, libc contains stubbed
# (non-functional) versions of the pthreads routines, so link-based
# tests will erroneously succeed. (We need to link with -pthreads/-mt/
# -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
# a function called by this macro, so we could check for that, but
# who knows whether they'll stub that too in a future libc.) So
# we'll look for -pthreads and -lpthread shortly thereafter.
ax_pthread_flags="-mt,pthread -pthreads -pthread pthread $ax_pthread_flags"
;;
esac
# Older versions of Clang only give a warning instead of an error for an
# unrecognized option, unless we specify -Werror. (We throw in some extra
# Clang warning flags for good measure.)
AC_CACHE_CHECK([if compiler needs certain flags to reject unknown flags],
[ax_cv_PTHREAD_REJECT_UNKNOWN],
[ax_cv_PTHREAD_REJECT_UNKNOWN=unknown
save_CFLAGS="$CFLAGS"
ax_pthread_extra_flags="-Wunknown-warning-option -Wunused-command-line-argument"
CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wfoobaz -foobaz"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
[ax_cv_PTHREAD_REJECT_UNKNOWN="-Werror $ax_pthread_extra_flags"],
[ax_cv_PTHREAD_REJECT_UNKNOWN=no])
CFLAGS="$save_CFLAGS"
])
ax_pthread_extra_flags=
AS_IF([test "x$ax_cv_PTHREAD_REJECT_UNKNOWN" != "xno"],
[ax_pthread_extra_flags="$ax_cv_PTHREAD_REJECT_UNKNOWN"])
if test x"$ax_pthread_ok" = xno; then
for flag in $ax_pthread_flags; do
case $flag in
none)
AC_MSG_CHECKING([whether pthreads work without any flags])
;;
-mt,pthread)
AC_MSG_CHECKING([whether pthreads work with -mt -lpthread])
PTHREAD_CFLAGS="-mt"
PTHREAD_LIBS="-lpthread"
;;
-*)
AC_MSG_CHECKING([whether pthreads work with $flag])
PTHREAD_CFLAGS="$flag"
;;
pthread-config)
AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
if test x"$ax_pthread_config" = xno; then continue; fi
PTHREAD_CFLAGS="`pthread-config --cflags`"
PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
;;
*)
AC_MSG_CHECKING([for the pthreads library -l$flag])
PTHREAD_LIBS="-l$flag"
;;
esac
save_LIBS="$LIBS"
save_CFLAGS="$CFLAGS"
LIBS="$PTHREAD_LIBS $LIBS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
# Check for various functions. We must include pthread.h,
# since some functions may be macros. (On the Sequent, we
# need a special flag -Kthread to make this header compile.)
# We check for pthread_join because it is in -lpthread on IRIX
# while pthread_create is in libc. We check for pthread_attr_init
# due to DEC craziness with -lpthreads. We check for
# pthread_cleanup_push because it is one of the few pthread
# functions on Solaris that doesn't have a non-functional libc stub.
# We try pthread_create on general principles.
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
static void routine(void *a) { a = 0; }
static void *start_routine(void *a) { return a; }],
[pthread_t th; pthread_attr_t attr;
pthread_create(&th, 0, start_routine, 0);
pthread_join(th, 0);
pthread_attr_init(&attr);
pthread_cleanup_push(routine, 0);
pthread_cleanup_pop(0) /* ; */])],
[ax_pthread_ok=yes],
[])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
AC_MSG_RESULT([$ax_pthread_ok])
if test "x$ax_pthread_ok" = xyes; then
break;
fi
PTHREAD_LIBS=""
PTHREAD_CFLAGS=""
done
fi
# Various other checks:
if test "x$ax_pthread_ok" = xyes; then
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
# Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
AC_CACHE_CHECK([for joinable pthread attribute],
[ax_cv_PTHREAD_JOINABLE_ATTR],
[ax_cv_PTHREAD_JOINABLE_ATTR=unknown
for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
[int attr = $attr; return attr /* ; */])],
[ax_cv_PTHREAD_JOINABLE_ATTR=$attr; break],
[])
done
])
AS_IF([test "$ax_cv_PTHREAD_JOINABLE_ATTR" != unknown && \
test "$ax_cv_PTHREAD_JOINABLE_ATTR" != PTHREAD_CREATE_JOINABLE],
[AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
[$ax_cv_PTHREAD_JOINABLE_ATTR],
[Define to necessary symbol if this constant
uses a non-standard name on your system.])])
AC_CACHE_CHECK([if more special flags are required for pthreads],
[ax_cv_PTHREAD_SPECIAL_FLAGS],
[ax_cv_PTHREAD_SPECIAL_FLAGS=no
ax_pthread_special_flags_added=no
AC_EGREP_CPP([AX_PTHREAD_NEED_SPECIAL_FLAG],
[
# if !defined(_REENTRANT) && !defined(_THREAD_SAFE)
AX_PTHREAD_NEED_SPECIAL_FLAG
# endif
],
[case $host_os in
aix* | freebsd*)
ax_cv_PTHREAD_SPECIAL_FLAGS="-D_THREAD_SAFE"
;;
darwin* | hpux* | osf* | solaris*)
ax_cv_PTHREAD_SPECIAL_FLAGS="-D_REENTRANT"
;;
esac
])
])
AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
test "x$ax_pthread_special_flags_added" != "xyes"],
[PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
ax_pthread_special_flags_added=yes])
AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
[ax_cv_PTHREAD_PRIO_INHERIT],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
[[int i = PTHREAD_PRIO_INHERIT;]])],
[ax_cv_PTHREAD_PRIO_INHERIT=yes],
[ax_cv_PTHREAD_PRIO_INHERIT=no])
])
AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
[AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
LIBS="$save_LIBS"
CFLAGS="$save_CFLAGS"
# More AIX lossage: compile with *_r variant
if test "x$GCC" != xyes; then
case $host_os in
aix*)
AS_CASE(["x/$CC"],
[x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
[#handle absolute path differently from PATH based program lookup
AS_CASE(["x$CC"],
[x/*],
[AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
[AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
;;
esac
fi
fi
test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
AC_SUBST([PTHREAD_LIBS])
AC_SUBST([PTHREAD_CFLAGS])
AC_SUBST([PTHREAD_CC])
# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
if test x"$ax_pthread_ok" = xyes; then
ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
:
else
ax_pthread_ok=no
$2
fi
AC_LANG_POP
])dnl AX_PTHREAD
================================================
FILE: config/c-compiler.m4
================================================
# Macros to detect C compiler features
# config/c-compiler.m4
# PGAC_C_SIGNED
# -------------
# Check if the C compiler understands signed types.
AC_DEFUN([PGAC_C_SIGNED],
[AC_CACHE_CHECK(for signed types, pgac_cv_c_signed,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
[signed char c; signed short s; signed int i;])],
[pgac_cv_c_signed=yes],
[pgac_cv_c_signed=no])])
if test x"$pgac_cv_c_signed" = xno ; then
AC_DEFINE(signed,, [Define to empty if the C compiler does not understand signed types.])
fi])# PGAC_C_SIGNED
# PGAC_C_PRINTF_ARCHETYPE
# -----------------------
# Set the format archetype used by gcc to check printf type functions. We
# prefer "gnu_printf", which includes what glibc uses, such as %m for error
# strings and %lld for 64 bit long longs. GCC 4.4 introduced it. It makes a
# dramatic difference on Windows.
AC_DEFUN([PGAC_PRINTF_ARCHETYPE],
[AC_CACHE_CHECK([for printf format archetype], pgac_cv_printf_archetype,
[ac_save_c_werror_flag=$ac_c_werror_flag
ac_c_werror_flag=yes
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[extern int
pgac_write(int ignore, const char *fmt,...)
__attribute__((format(gnu_printf, 2, 3)));], [])],
[pgac_cv_printf_archetype=gnu_printf],
[pgac_cv_printf_archetype=printf])
ac_c_werror_flag=$ac_save_c_werror_flag])
AC_DEFINE_UNQUOTED([PG_PRINTF_ATTRIBUTE], [$pgac_cv_printf_archetype],
[Define to gnu_printf if compiler supports it, else printf.])
])# PGAC_PRINTF_ARCHETYPE
# PGAC_TYPE_64BIT_INT(TYPE)
# -------------------------
# Check if TYPE is a working 64 bit integer type. Set HAVE_TYPE_64 to
# yes or no respectively, and define HAVE_TYPE_64 if yes.
AC_DEFUN([PGAC_TYPE_64BIT_INT],
[define([Ac_define], [translit([have_$1_64], [a-z *], [A-Z_P])])dnl
define([Ac_cachevar], [translit([pgac_cv_type_$1_64], [ *], [_p])])dnl
AC_CACHE_CHECK([whether $1 is 64 bits], [Ac_cachevar],
[AC_RUN_IFELSE([AC_LANG_SOURCE(
[typedef $1 ac_int64;
/*
* These are globals to discourage the compiler from folding all the
* arithmetic tests down to compile-time constants.
*/
ac_int64 a = 20000001;
ac_int64 b = 40000005;
int does_int64_work()
{
ac_int64 c,d;
if (sizeof(ac_int64) != 8)
return 0; /* definitely not the right size */
/* Do perfunctory checks to see if 64-bit arithmetic seems to work */
c = a * b;
d = (c + b) / b;
if (d != a+1)
return 0;
return 1;
}
int
main() {
return (! does_int64_work());
}])],
[Ac_cachevar=yes],
[Ac_cachevar=no],
[# If cross-compiling, check the size reported by the compiler and
# trust that the arithmetic works.
AC_COMPILE_IFELSE([AC_LANG_BOOL_COMPILE_TRY([], [sizeof($1) == 8])],
Ac_cachevar=yes,
Ac_cachevar=no)])])
Ac_define=$Ac_cachevar
if test x"$Ac_cachevar" = xyes ; then
AC_DEFINE(Ac_define, 1, [Define to 1 if `]$1[' works and is 64 bits.])
fi
undefine([Ac_define])dnl
undefine([Ac_cachevar])dnl
])# PGAC_TYPE_64BIT_INT
# PGAC_TYPE_128BIT_INT
# ---------------------
# Check if __int128 is a working 128 bit integer type, and if so
# define PG_INT128_TYPE to that typename, and define ALIGNOF_PG_INT128_TYPE
# as its alignment requirement.
#
# This currently only detects a GCC/clang extension, but support for other
# environments may be added in the future.
#
# For the moment we only test for support for 128bit math; support for
# 128bit literals and snprintf is not required.
AC_DEFUN([PGAC_TYPE_128BIT_INT],
[AC_CACHE_CHECK([for __int128], [pgac_cv__128bit_int],
[AC_LINK_IFELSE([AC_LANG_PROGRAM([
/*
* We don't actually run this test, just link it to verify that any support
* functions needed for __int128 are present.
*
* These are globals to discourage the compiler from folding all the
* arithmetic tests down to compile-time constants. We do not have
* convenient support for 128bit literals at this point...
*/
__int128 a = 48828125;
__int128 b = 97656250;
],[
__int128 c,d;
a = (a << 12) + 1; /* 200000000001 */
b = (b << 12) + 5; /* 400000000005 */
/* try the most relevant arithmetic ops */
c = a * b;
d = (c + b) / b;
/* must use the results, else compiler may optimize arithmetic away */
if (d != a+1)
return 1;
])],
[pgac_cv__128bit_int=yes],
[pgac_cv__128bit_int=no])])
if test x"$pgac_cv__128bit_int" = xyes ; then
# Use of non-default alignment with __int128 tickles bugs in some compilers.
# If not cross-compiling, we can test for bugs and disable use of __int128
# with buggy compilers. If cross-compiling, hope for the best.
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83925
AC_CACHE_CHECK([for __int128 alignment bug], [pgac_cv__128bit_int_bug],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([
/* This must match the corresponding code in c.h: */
#if defined(__GNUC__) || defined(__SUNPRO_C) || defined(__IBMC__)
#define pg_attribute_aligned(a) __attribute__((aligned(a)))
#endif
typedef __int128 int128a
#if defined(pg_attribute_aligned)
pg_attribute_aligned(8)
#endif
;
int128a holder;
void pass_by_val(void *buffer, int128a par) { holder = par; }
],[
long int i64 = 97656225L << 12;
int128a q;
pass_by_val(main, (int128a) i64);
q = (int128a) i64;
if (q != holder)
return 1;
])],
[pgac_cv__128bit_int_bug=ok],
[pgac_cv__128bit_int_bug=broken],
[pgac_cv__128bit_int_bug="assuming ok"])])
if test x"$pgac_cv__128bit_int_bug" != xbroken ; then
AC_DEFINE(PG_INT128_TYPE, __int128, [Define to the name of a signed 128-bit integer type.])
AC_CHECK_ALIGNOF(PG_INT128_TYPE)
fi
fi])# PGAC_TYPE_128BIT_INT
# PGAC_C_FUNCNAME_SUPPORT
# -----------------------
# Check if the C compiler understands __func__ (C99) or __FUNCTION__ (gcc).
# Define HAVE_FUNCNAME__FUNC or HAVE_FUNCNAME__FUNCTION accordingly.
AC_DEFUN([PGAC_C_FUNCNAME_SUPPORT],
[AC_CACHE_CHECK(for __func__, pgac_cv_funcname_func_support,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>],
[printf("%s\n", __func__);])],
[pgac_cv_funcname_func_support=yes],
[pgac_cv_funcname_func_support=no])])
if test x"$pgac_cv_funcname_func_support" = xyes ; then
AC_DEFINE(HAVE_FUNCNAME__FUNC, 1,
[Define to 1 if your compiler understands __func__.])
else
AC_CACHE_CHECK(for __FUNCTION__, pgac_cv_funcname_function_support,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>],
[printf("%s\n", __FUNCTION__);])],
[pgac_cv_funcname_function_support=yes],
[pgac_cv_funcname_function_support=no])])
if test x"$pgac_cv_funcname_function_support" = xyes ; then
AC_DEFINE(HAVE_FUNCNAME__FUNCTION, 1,
[Define to 1 if your compiler understands __FUNCTION__.])
fi
fi])# PGAC_C_FUNCNAME_SUPPORT
# PGAC_C_STATIC_ASSERT
# --------------------
# Check if the C compiler understands _Static_assert(),
# and define HAVE__STATIC_ASSERT if so.
#
# We actually check the syntax ({ _Static_assert(...) }), because we need
# gcc-style compound expressions to be able to wrap the thing into macros.
AC_DEFUN([PGAC_C_STATIC_ASSERT],
[AC_CACHE_CHECK(for _Static_assert, pgac_cv__static_assert,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([],
[({ _Static_assert(1, "foo"); })])],
[pgac_cv__static_assert=yes],
[pgac_cv__static_assert=no])])
if test x"$pgac_cv__static_assert" = xyes ; then
AC_DEFINE(HAVE__STATIC_ASSERT, 1,
[Define to 1 if your compiler understands _Static_assert.])
fi])# PGAC_C_STATIC_ASSERT
# PGAC_C_TYPEOF
# -------------
# Check if the C compiler understands typeof or a variant. Define
# HAVE_TYPEOF if so, and define 'typeof' to the actual key word.
#
AC_DEFUN([PGAC_C_TYPEOF],
[AC_CACHE_CHECK(for typeof, pgac_cv_c_typeof,
[pgac_cv_c_typeof=no
for pgac_kw in typeof __typeof__ decltype; do
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
[int x = 0;
$pgac_kw(x) y;
y = x;
return y;])],
[pgac_cv_c_typeof=$pgac_kw])
test "$pgac_cv_c_typeof" != no && break
done])
if test "$pgac_cv_c_typeof" != no; then
AC_DEFINE(HAVE_TYPEOF, 1,
[Define to 1 if your compiler understands `typeof' or something similar.])
if test "$pgac_cv_c_typeof" != typeof; then
AC_DEFINE_UNQUOTED(typeof, $pgac_cv_c_typeof, [Define to how the compiler spells `typeof'.])
fi
fi])# PGAC_C_TYPEOF
# PGAC_C_TYPES_COMPATIBLE
# -----------------------
# Check if the C compiler understands __builtin_types_compatible_p,
# and define HAVE__BUILTIN_TYPES_COMPATIBLE_P if so.
#
# We check usage with __typeof__, though it's unlikely any compiler would
# have the former and not the latter.
AC_DEFUN([PGAC_C_TYPES_COMPATIBLE],
[AC_CACHE_CHECK(for __builtin_types_compatible_p, pgac_cv__types_compatible,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
[[ int x; static int y[__builtin_types_compatible_p(__typeof__(x), int)]; ]])],
[pgac_cv__types_compatible=yes],
[pgac_cv__types_compatible=no])])
if test x"$pgac_cv__types_compatible" = xyes ; then
AC_DEFINE(HAVE__BUILTIN_TYPES_COMPATIBLE_P, 1,
[Define to 1 if your compiler understands __builtin_types_compatible_p.])
fi])# PGAC_C_TYPES_COMPATIBLE
# PGAC_C_BUILTIN_BSWAP16
# -------------------------
# Check if the C compiler understands __builtin_bswap16(),
# and define HAVE__BUILTIN_BSWAP16 if so.
AC_DEFUN([PGAC_C_BUILTIN_BSWAP16],
[AC_CACHE_CHECK(for __builtin_bswap16, pgac_cv__builtin_bswap16,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[static unsigned long int x = __builtin_bswap16(0xaabb);]
)],
[pgac_cv__builtin_bswap16=yes],
[pgac_cv__builtin_bswap16=no])])
if test x"$pgac_cv__builtin_bswap16" = xyes ; then
AC_DEFINE(HAVE__BUILTIN_BSWAP16, 1,
[Define to 1 if your compiler understands __builtin_bswap16.])
fi])# PGAC_C_BUILTIN_BSWAP16
# PGAC_C_BUILTIN_BSWAP32
# -------------------------
# Check if the C compiler understands __builtin_bswap32(),
# and define HAVE__BUILTIN_BSWAP32 if so.
AC_DEFUN([PGAC_C_BUILTIN_BSWAP32],
[AC_CACHE_CHECK(for __builtin_bswap32, pgac_cv__builtin_bswap32,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[static unsigned long int x = __builtin_bswap32(0xaabbccdd);]
)],
[pgac_cv__builtin_bswap32=yes],
[pgac_cv__builtin_bswap32=no])])
if test x"$pgac_cv__builtin_bswap32" = xyes ; then
AC_DEFINE(HAVE__BUILTIN_BSWAP32, 1,
[Define to 1 if your compiler understands __builtin_bswap32.])
fi])# PGAC_C_BUILTIN_BSWAP32
# PGAC_C_BUILTIN_BSWAP64
# -------------------------
# Check if the C compiler understands __builtin_bswap64(),
# and define HAVE__BUILTIN_BSWAP64 if so.
AC_DEFUN([PGAC_C_BUILTIN_BSWAP64],
[AC_CACHE_CHECK(for __builtin_bswap64, pgac_cv__builtin_bswap64,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[static unsigned long int x = __builtin_bswap64(0xaabbccddeeff0011);]
)],
[pgac_cv__builtin_bswap64=yes],
[pgac_cv__builtin_bswap64=no])])
if test x"$pgac_cv__builtin_bswap64" = xyes ; then
AC_DEFINE(HAVE__BUILTIN_BSWAP64, 1,
[Define to 1 if your compiler understands __builtin_bswap64.])
fi])# PGAC_C_BUILTIN_BSWAP64
# PGAC_C_BUILTIN_CONSTANT_P
# -------------------------
# Check if the C compiler understands __builtin_constant_p(),
# and define HAVE__BUILTIN_CONSTANT_P if so.
# We need __builtin_constant_p("string literal") to be true, but some older
# compilers don't think that, so test for that case explicitly.
AC_DEFUN([PGAC_C_BUILTIN_CONSTANT_P],
[AC_CACHE_CHECK(for __builtin_constant_p, pgac_cv__builtin_constant_p,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
[[static int x;
static int y[__builtin_constant_p(x) ? x : 1];
static int z[__builtin_constant_p("string literal") ? 1 : x];
]]
)],
[pgac_cv__builtin_constant_p=yes],
[pgac_cv__builtin_constant_p=no])])
if test x"$pgac_cv__builtin_constant_p" = xyes ; then
AC_DEFINE(HAVE__BUILTIN_CONSTANT_P, 1,
[Define to 1 if your compiler understands __builtin_constant_p.])
fi])# PGAC_C_BUILTIN_CONSTANT_P
# PGAC_C_BUILTIN_OP_OVERFLOW
# -------------------------
# Check if the C compiler understands __builtin_$op_overflow(),
# and define HAVE__BUILTIN_OP_OVERFLOW if so.
#
# Check for the most complicated case, 64 bit multiplication, as a
# proxy for all of the operations. To detect the case where the compiler
# knows the function but library support is missing, we must link not just
# compile, and store the results in global variables so the compiler doesn't
# optimize away the call.
AC_DEFUN([PGAC_C_BUILTIN_OP_OVERFLOW],
[AC_CACHE_CHECK(for __builtin_mul_overflow, pgac_cv__builtin_op_overflow,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([
PG_INT64_TYPE a = 1;
PG_INT64_TYPE b = 1;
PG_INT64_TYPE result;
int oflo;
],
[oflo = __builtin_mul_overflow(a, b, &result);])],
[pgac_cv__builtin_op_overflow=yes],
[pgac_cv__builtin_op_overflow=no])])
if test x"$pgac_cv__builtin_op_overflow" = xyes ; then
AC_DEFINE(HAVE__BUILTIN_OP_OVERFLOW, 1,
[Define to 1 if your compiler understands __builtin_$op_overflow.])
fi])# PGAC_C_BUILTIN_OP_OVERFLOW
# PGAC_C_BUILTIN_UNREACHABLE
# --------------------------
# Check if the C compiler understands __builtin_unreachable(),
# and define HAVE__BUILTIN_UNREACHABLE if so.
#
# NB: Don't get the idea of putting a for(;;); or such before the
# __builtin_unreachable() call. Some compilers would remove it before linking
# and only a warning instead of an error would be produced.
AC_DEFUN([PGAC_C_BUILTIN_UNREACHABLE],
[AC_CACHE_CHECK(for __builtin_unreachable, pgac_cv__builtin_unreachable,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([],
[__builtin_unreachable();])],
[pgac_cv__builtin_unreachable=yes],
[pgac_cv__builtin_unreachable=no])])
if test x"$pgac_cv__builtin_unreachable" = xyes ; then
AC_DEFINE(HAVE__BUILTIN_UNREACHABLE, 1,
[Define to 1 if your compiler understands __builtin_unreachable.])
fi])# PGAC_C_BUILTIN_UNREACHABLE
# PGAC_C_COMPUTED_GOTO
# -----------------------
# Check if the C compiler knows computed gotos (gcc extension, also
# available in at least clang). If so, define HAVE_COMPUTED_GOTO.
#
# Checking whether computed gotos are supported syntax-wise ought to
# be enough, as the syntax is otherwise illegal.
AC_DEFUN([PGAC_C_COMPUTED_GO
Showing preview only (252K chars total). Download the full file or copy to clipboard to get everything.
gitextract_klg1g4ez/
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── CODE_OF_CONDUCT.md
├── COPYRIGHT
├── Commons_Clause_License
├── GNUmakefile.in
├── HISTORY
├── INSTALL.PostgreSQL
├── INSTALL.kunlun.md
├── LICENSE
├── Makefile
├── NOTICE
├── README.PostgreSQL
├── README.md
├── README_CN.md
├── ReleaseNotes.md
├── aclocal.m4
├── build.sh
├── config/
│ ├── Makefile
│ ├── ac_func_accept_argtypes.m4
│ ├── ax_prog_perl_modules.m4
│ ├── ax_pthread.m4
│ ├── c-compiler.m4
│ ├── c-library.m4
│ ├── check_decls.m4
│ ├── config.guess
│ ├── config.sub
│ ├── docbook.m4
│ ├── general.m4
│ ├── install-sh
│ ├── libtool.m4
│ ├── llvm.m4
│ ├── missing
│ ├── perl.m4
│ ├── pkg.m4
│ ├── prep_buildtree
│ ├── programs.m4
│ ├── python.m4
│ └── tcl.m4
├── configure
├── configure.in
├── contrib/
│ ├── Makefile
│ ├── README
│ ├── adminpack/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── adminpack--1.0--1.1.sql
│ │ ├── adminpack--1.0.sql
│ │ ├── adminpack--1.1--2.0.sql
│ │ ├── adminpack.c
│ │ ├── adminpack.control
│ │ ├── expected/
│ │ │ └── adminpack.out
│ │ └── sql/
│ │ └── adminpack.sql
│ ├── amcheck/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── amcheck--1.0--1.1.sql
│ │ ├── amcheck--1.0.sql
│ │ ├── amcheck.control
│ │ ├── expected/
│ │ │ ├── check.out
│ │ │ └── check_btree.out
│ │ ├── sql/
│ │ │ ├── check.sql
│ │ │ └── check_btree.sql
│ │ └── verify_nbtree.c
│ ├── auth_delay/
│ │ ├── Makefile
│ │ └── auth_delay.c
│ ├── auto_explain/
│ │ ├── Makefile
│ │ └── auto_explain.c
│ ├── bloom/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── blcost.c
│ │ ├── blinsert.c
│ │ ├── bloom--1.0.sql
│ │ ├── bloom.control
│ │ ├── bloom.h
│ │ ├── blscan.c
│ │ ├── blutils.c
│ │ ├── blvacuum.c
│ │ ├── blvalidate.c
│ │ ├── expected/
│ │ │ └── bloom.out
│ │ ├── sql/
│ │ │ └── bloom.sql
│ │ └── t/
│ │ └── 001_wal.pl
│ ├── btree_gin/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── btree_gin--1.0--1.1.sql
│ │ ├── btree_gin--1.0.sql
│ │ ├── btree_gin--1.1--1.2.sql
│ │ ├── btree_gin--1.2--1.3.sql
│ │ ├── btree_gin--unpackaged--1.0.sql
│ │ ├── btree_gin.c
│ │ ├── btree_gin.control
│ │ ├── expected/
│ │ │ ├── bit.out
│ │ │ ├── bool.out
│ │ │ ├── bpchar.out
│ │ │ ├── bytea.out
│ │ │ ├── char.out
│ │ │ ├── cidr.out
│ │ │ ├── date.out
│ │ │ ├── enum.out
│ │ │ ├── float4.out
│ │ │ ├── float8.out
│ │ │ ├── inet.out
│ │ │ ├── install_btree_gin.out
│ │ │ ├── int2.out
│ │ │ ├── int4.out
│ │ │ ├── int8.out
│ │ │ ├── interval.out
│ │ │ ├── macaddr.out
│ │ │ ├── macaddr8.out
│ │ │ ├── money.out
│ │ │ ├── name.out
│ │ │ ├── numeric.out
│ │ │ ├── oid.out
│ │ │ ├── text.out
│ │ │ ├── time.out
│ │ │ ├── timestamp.out
│ │ │ ├── timestamptz.out
│ │ │ ├── timetz.out
│ │ │ ├── uuid.out
│ │ │ ├── varbit.out
│ │ │ └── varchar.out
│ │ └── sql/
│ │ ├── bit.sql
│ │ ├── bool.sql
│ │ ├── bpchar.sql
│ │ ├── bytea.sql
│ │ ├── char.sql
│ │ ├── cidr.sql
│ │ ├── date.sql
│ │ ├── enum.sql
│ │ ├── float4.sql
│ │ ├── float8.sql
│ │ ├── inet.sql
│ │ ├── install_btree_gin.sql
│ │ ├── int2.sql
│ │ ├── int4.sql
│ │ ├── int8.sql
│ │ ├── interval.sql
│ │ ├── macaddr.sql
│ │ ├── macaddr8.sql
│ │ ├── money.sql
│ │ ├── name.sql
│ │ ├── numeric.sql
│ │ ├── oid.sql
│ │ ├── text.sql
│ │ ├── time.sql
│ │ ├── timestamp.sql
│ │ ├── timestamptz.sql
│ │ ├── timetz.sql
│ │ ├── uuid.sql
│ │ ├── varbit.sql
│ │ └── varchar.sql
│ ├── btree_gist/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── btree_bit.c
│ │ ├── btree_bytea.c
│ │ ├── btree_cash.c
│ │ ├── btree_date.c
│ │ ├── btree_enum.c
│ │ ├── btree_float4.c
│ │ ├── btree_float8.c
│ │ ├── btree_gist--1.0--1.1.sql
│ │ ├── btree_gist--1.1--1.2.sql
│ │ ├── btree_gist--1.2--1.3.sql
│ │ ├── btree_gist--1.2.sql
│ │ ├── btree_gist--1.3--1.4.sql
│ │ ├── btree_gist--1.4--1.5.sql
│ │ ├── btree_gist--unpackaged--1.0.sql
│ │ ├── btree_gist.c
│ │ ├── btree_gist.control
│ │ ├── btree_gist.h
│ │ ├── btree_inet.c
│ │ ├── btree_int2.c
│ │ ├── btree_int4.c
│ │ ├── btree_int8.c
│ │ ├── btree_interval.c
│ │ ├── btree_macaddr.c
│ │ ├── btree_macaddr8.c
│ │ ├── btree_numeric.c
│ │ ├── btree_oid.c
│ │ ├── btree_text.c
│ │ ├── btree_time.c
│ │ ├── btree_ts.c
│ │ ├── btree_utils_num.c
│ │ ├── btree_utils_num.h
│ │ ├── btree_utils_var.c
│ │ ├── btree_utils_var.h
│ │ ├── btree_uuid.c
│ │ ├── data/
│ │ │ ├── bit.data
│ │ │ ├── cash.data
│ │ │ ├── char.data
│ │ │ ├── date.data
│ │ │ ├── enum.data
│ │ │ ├── float4.data
│ │ │ ├── float8.data
│ │ │ ├── inet.data
│ │ │ ├── int2.data
│ │ │ ├── int4.data
│ │ │ ├── int8.data
│ │ │ ├── interval.data
│ │ │ ├── macaddr.data
│ │ │ ├── numeric.data
│ │ │ ├── text.data
│ │ │ ├── time.data
│ │ │ ├── timestamp.data
│ │ │ ├── timestamptz.data
│ │ │ ├── timetz.data
│ │ │ ├── uuid.data
│ │ │ └── varbit.data
│ │ ├── expected/
│ │ │ ├── bit.out
│ │ │ ├── bytea.out
│ │ │ ├── cash.out
│ │ │ ├── char.out
│ │ │ ├── char_1.out
│ │ │ ├── cidr.out
│ │ │ ├── date.out
│ │ │ ├── enum.out
│ │ │ ├── float4.out
│ │ │ ├── float8.out
│ │ │ ├── inet.out
│ │ │ ├── init.out
│ │ │ ├── int2.out
│ │ │ ├── int4.out
│ │ │ ├── int8.out
│ │ │ ├── interval.out
│ │ │ ├── macaddr.out
│ │ │ ├── macaddr8.out
│ │ │ ├── not_equal.out
│ │ │ ├── numeric.out
│ │ │ ├── oid.out
│ │ │ ├── text.out
│ │ │ ├── text_1.out
│ │ │ ├── time.out
│ │ │ ├── timestamp.out
│ │ │ ├── timestamptz.out
│ │ │ ├── timetz.out
│ │ │ ├── uuid.out
│ │ │ ├── varbit.out
│ │ │ ├── varchar.out
│ │ │ └── varchar_1.out
│ │ └── sql/
│ │ ├── bit.sql
│ │ ├── bytea.sql
│ │ ├── cash.sql
│ │ ├── char.sql
│ │ ├── cidr.sql
│ │ ├── date.sql
│ │ ├── enum.sql
│ │ ├── float4.sql
│ │ ├── float8.sql
│ │ ├── inet.sql
│ │ ├── init.sql
│ │ ├── int2.sql
│ │ ├── int4.sql
│ │ ├── int8.sql
│ │ ├── interval.sql
│ │ ├── macaddr.sql
│ │ ├── macaddr8.sql
│ │ ├── not_equal.sql
│ │ ├── numeric.sql
│ │ ├── oid.sql
│ │ ├── text.sql
│ │ ├── time.sql
│ │ ├── timestamp.sql
│ │ ├── timestamptz.sql
│ │ ├── timetz.sql
│ │ ├── uuid.sql
│ │ ├── varbit.sql
│ │ └── varchar.sql
│ ├── citext/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── citext--1.0--1.1.sql
│ │ ├── citext--1.1--1.2.sql
│ │ ├── citext--1.2--1.3.sql
│ │ ├── citext--1.3--1.4.sql
│ │ ├── citext--1.4--1.5.sql
│ │ ├── citext--1.4.sql
│ │ ├── citext--unpackaged--1.0.sql
│ │ ├── citext.c
│ │ ├── citext.control
│ │ ├── expected/
│ │ │ ├── citext.out
│ │ │ └── citext_1.out
│ │ └── sql/
│ │ └── citext.sql
│ ├── contrib-global.mk
│ ├── cube/
│ │ ├── .gitignore
│ │ ├── CHANGES
│ │ ├── Makefile
│ │ ├── cube--1.0--1.1.sql
│ │ ├── cube--1.1--1.2.sql
│ │ ├── cube--1.2--1.3.sql
│ │ ├── cube--1.2.sql
│ │ ├── cube--1.3--1.4.sql
│ │ ├── cube--unpackaged--1.0.sql
│ │ ├── cube.c
│ │ ├── cube.control
│ │ ├── cubedata.h
│ │ ├── cubeparse.y
│ │ ├── cubescan.l
│ │ ├── data/
│ │ │ └── test_cube.data
│ │ ├── expected/
│ │ │ ├── cube.out
│ │ │ ├── cube_sci.out
│ │ │ └── cube_sci_1.out
│ │ └── sql/
│ │ ├── cube.sql
│ │ └── cube_sci.sql
│ ├── dblink/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dblink--1.0--1.1.sql
│ │ ├── dblink--1.1--1.2.sql
│ │ ├── dblink--1.2.sql
│ │ ├── dblink--unpackaged--1.0.sql
│ │ ├── dblink.c
│ │ ├── dblink.control
│ │ ├── expected/
│ │ │ ├── .gitignore
│ │ │ └── dblink.out
│ │ ├── input/
│ │ │ └── paths.source
│ │ ├── output/
│ │ │ └── paths.source
│ │ ├── pg_service.conf
│ │ └── sql/
│ │ ├── .gitignore
│ │ └── dblink.sql
│ ├── dict_int/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dict_int--1.0.sql
│ │ ├── dict_int--unpackaged--1.0.sql
│ │ ├── dict_int.c
│ │ ├── dict_int.control
│ │ ├── expected/
│ │ │ └── dict_int.out
│ │ └── sql/
│ │ └── dict_int.sql
│ ├── dict_xsyn/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dict_xsyn--1.0.sql
│ │ ├── dict_xsyn--unpackaged--1.0.sql
│ │ ├── dict_xsyn.c
│ │ ├── dict_xsyn.control
│ │ ├── expected/
│ │ │ └── dict_xsyn.out
│ │ ├── sql/
│ │ │ └── dict_xsyn.sql
│ │ └── xsyn_sample.rules
│ ├── earthdistance/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── earthdistance--1.0--1.1.sql
│ │ ├── earthdistance--1.1.sql
│ │ ├── earthdistance--unpackaged--1.0.sql
│ │ ├── earthdistance.c
│ │ ├── earthdistance.control
│ │ ├── expected/
│ │ │ └── earthdistance.out
│ │ └── sql/
│ │ └── earthdistance.sql
│ ├── file_fdw/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ ├── agg.bad
│ │ │ ├── agg.csv
│ │ │ ├── agg.data
│ │ │ ├── list1.csv
│ │ │ ├── list2.bad
│ │ │ ├── list2.csv
│ │ │ └── text.csv
│ │ ├── expected/
│ │ │ └── .gitignore
│ │ ├── file_fdw--1.0.sql
│ │ ├── file_fdw.c
│ │ ├── file_fdw.control
│ │ ├── input/
│ │ │ └── file_fdw.source
│ │ ├── output/
│ │ │ └── file_fdw.source
│ │ └── sql/
│ │ └── .gitignore
│ ├── fuzzystrmatch/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── dmetaphone.c
│ │ ├── expected/
│ │ │ └── fuzzystrmatch.out
│ │ ├── fuzzystrmatch--1.0--1.1.sql
│ │ ├── fuzzystrmatch--1.1.sql
│ │ ├── fuzzystrmatch--unpackaged--1.0.sql
│ │ ├── fuzzystrmatch.c
│ │ ├── fuzzystrmatch.control
│ │ └── sql/
│ │ └── fuzzystrmatch.sql
│ ├── hstore/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ └── hstore.data
│ │ ├── expected/
│ │ │ └── hstore.out
│ │ ├── hstore--1.0--1.1.sql
│ │ ├── hstore--1.1--1.2.sql
│ │ ├── hstore--1.2--1.3.sql
│ │ ├── hstore--1.3--1.4.sql
│ │ ├── hstore--1.4--1.5.sql
│ │ ├── hstore--1.4.sql
│ │ ├── hstore--unpackaged--1.0.sql
│ │ ├── hstore.control
│ │ ├── hstore.h
│ │ ├── hstore_compat.c
│ │ ├── hstore_gin.c
│ │ ├── hstore_gist.c
│ │ ├── hstore_io.c
│ │ ├── hstore_op.c
│ │ └── sql/
│ │ └── hstore.sql
│ ├── hstore_plperl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── create_transform.out
│ │ │ ├── hstore_plperl.out
│ │ │ └── hstore_plperlu.out
│ │ ├── hstore_plperl--1.0.sql
│ │ ├── hstore_plperl.c
│ │ ├── hstore_plperl.control
│ │ ├── hstore_plperlu--1.0.sql
│ │ ├── hstore_plperlu.control
│ │ └── sql/
│ │ ├── create_transform.sql
│ │ ├── hstore_plperl.sql
│ │ └── hstore_plperlu.sql
│ ├── hstore_plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── hstore_plpython.out
│ │ ├── hstore_plpython.c
│ │ ├── hstore_plpython2u--1.0.sql
│ │ ├── hstore_plpython2u.control
│ │ ├── hstore_plpython3u--1.0.sql
│ │ ├── hstore_plpython3u.control
│ │ ├── hstore_plpythonu--1.0.sql
│ │ ├── hstore_plpythonu.control
│ │ └── sql/
│ │ └── hstore_plpython.sql
│ ├── intagg/
│ │ ├── Makefile
│ │ ├── intagg--1.0--1.1.sql
│ │ ├── intagg--1.1.sql
│ │ ├── intagg--unpackaged--1.0.sql
│ │ └── intagg.control
│ ├── intarray/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── _int.h
│ │ ├── _int_bool.c
│ │ ├── _int_gin.c
│ │ ├── _int_gist.c
│ │ ├── _int_op.c
│ │ ├── _int_selfuncs.c
│ │ ├── _int_tool.c
│ │ ├── _intbig_gist.c
│ │ ├── bench/
│ │ │ ├── bench.pl
│ │ │ └── create_test.pl
│ │ ├── data/
│ │ │ └── test__int.data
│ │ ├── expected/
│ │ │ └── _int.out
│ │ ├── intarray--1.0--1.1.sql
│ │ ├── intarray--1.1--1.2.sql
│ │ ├── intarray--1.2.sql
│ │ ├── intarray--unpackaged--1.0.sql
│ │ ├── intarray.control
│ │ └── sql/
│ │ └── _int.sql
│ ├── isn/
│ │ ├── .gitignore
│ │ ├── EAN13.h
│ │ ├── ISBN.h
│ │ ├── ISMN.h
│ │ ├── ISSN.h
│ │ ├── Makefile
│ │ ├── UPC.h
│ │ ├── expected/
│ │ │ └── isn.out
│ │ ├── isn--1.0--1.1.sql
│ │ ├── isn--1.1--1.2.sql
│ │ ├── isn--1.1.sql
│ │ ├── isn--unpackaged--1.0.sql
│ │ ├── isn.c
│ │ ├── isn.control
│ │ ├── isn.h
│ │ └── sql/
│ │ └── isn.sql
│ ├── jsonb_plperl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── jsonb_plperl.out
│ │ │ └── jsonb_plperlu.out
│ │ ├── jsonb_plperl--1.0.sql
│ │ ├── jsonb_plperl.c
│ │ ├── jsonb_plperl.control
│ │ ├── jsonb_plperlu--1.0.sql
│ │ ├── jsonb_plperlu.control
│ │ └── sql/
│ │ ├── jsonb_plperl.sql
│ │ └── jsonb_plperlu.sql
│ ├── jsonb_plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── jsonb_plpython.out
│ │ ├── jsonb_plpython.c
│ │ ├── jsonb_plpython2u--1.0.sql
│ │ ├── jsonb_plpython2u.control
│ │ ├── jsonb_plpython3u--1.0.sql
│ │ ├── jsonb_plpython3u.control
│ │ ├── jsonb_plpythonu--1.0.sql
│ │ ├── jsonb_plpythonu.control
│ │ └── sql/
│ │ └── jsonb_plpython.sql
│ ├── lo/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── lo.out
│ │ ├── lo--1.0--1.1.sql
│ │ ├── lo--1.1.sql
│ │ ├── lo--unpackaged--1.0.sql
│ │ ├── lo.c
│ │ ├── lo.control
│ │ ├── lo_test.sql
│ │ └── sql/
│ │ └── lo.sql
│ ├── ltree/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── _ltree_gist.c
│ │ ├── _ltree_op.c
│ │ ├── crc32.c
│ │ ├── crc32.h
│ │ ├── data/
│ │ │ ├── _ltree.data
│ │ │ └── ltree.data
│ │ ├── expected/
│ │ │ └── ltree.out
│ │ ├── lquery_op.c
│ │ ├── ltree--1.0--1.1.sql
│ │ ├── ltree--1.1.sql
│ │ ├── ltree--unpackaged--1.0.sql
│ │ ├── ltree.control
│ │ ├── ltree.h
│ │ ├── ltree_gist.c
│ │ ├── ltree_io.c
│ │ ├── ltree_op.c
│ │ ├── ltreetest.sql
│ │ ├── ltxtquery_io.c
│ │ ├── ltxtquery_op.c
│ │ └── sql/
│ │ └── ltree.sql
│ ├── ltree_plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── ltree_plpython.out
│ │ ├── ltree_plpython.c
│ │ ├── ltree_plpython2u--1.0.sql
│ │ ├── ltree_plpython2u.control
│ │ ├── ltree_plpython3u--1.0.sql
│ │ ├── ltree_plpython3u.control
│ │ ├── ltree_plpythonu--1.0.sql
│ │ ├── ltree_plpythonu.control
│ │ └── sql/
│ │ └── ltree_plpython.sql
│ ├── oid2name/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ └── oid2name.c
│ ├── pageinspect/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── brinfuncs.c
│ │ ├── btreefuncs.c
│ │ ├── expected/
│ │ │ ├── brin.out
│ │ │ ├── btree.out
│ │ │ ├── gin.out
│ │ │ ├── hash.out
│ │ │ └── page.out
│ │ ├── fsmfuncs.c
│ │ ├── ginfuncs.c
│ │ ├── hashfuncs.c
│ │ ├── heapfuncs.c
│ │ ├── pageinspect--1.0--1.1.sql
│ │ ├── pageinspect--1.1--1.2.sql
│ │ ├── pageinspect--1.2--1.3.sql
│ │ ├── pageinspect--1.3--1.4.sql
│ │ ├── pageinspect--1.4--1.5.sql
│ │ ├── pageinspect--1.5--1.6.sql
│ │ ├── pageinspect--1.5.sql
│ │ ├── pageinspect--1.6--1.7.sql
│ │ ├── pageinspect--unpackaged--1.0.sql
│ │ ├── pageinspect.control
│ │ ├── pageinspect.h
│ │ ├── rawpage.c
│ │ └── sql/
│ │ ├── brin.sql
│ │ ├── btree.sql
│ │ ├── gin.sql
│ │ ├── hash.sql
│ │ └── page.sql
│ ├── passwordcheck/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── passwordcheck.out
│ │ ├── passwordcheck.c
│ │ └── sql/
│ │ └── passwordcheck.sql
│ ├── pg_buffercache/
│ │ ├── Makefile
│ │ ├── pg_buffercache--1.0--1.1.sql
│ │ ├── pg_buffercache--1.1--1.2.sql
│ │ ├── pg_buffercache--1.2--1.3.sql
│ │ ├── pg_buffercache--1.2.sql
│ │ ├── pg_buffercache--unpackaged--1.0.sql
│ │ ├── pg_buffercache.control
│ │ └── pg_buffercache_pages.c
│ ├── pg_freespacemap/
│ │ ├── Makefile
│ │ ├── pg_freespacemap--1.0--1.1.sql
│ │ ├── pg_freespacemap--1.1--1.2.sql
│ │ ├── pg_freespacemap--1.1.sql
│ │ ├── pg_freespacemap--unpackaged--1.0.sql
│ │ ├── pg_freespacemap.c
│ │ └── pg_freespacemap.control
│ ├── pg_prewarm/
│ │ ├── Makefile
│ │ ├── autoprewarm.c
│ │ ├── pg_prewarm--1.0--1.1.sql
│ │ ├── pg_prewarm--1.1--1.2.sql
│ │ ├── pg_prewarm--1.1.sql
│ │ ├── pg_prewarm.c
│ │ └── pg_prewarm.control
│ ├── pg_standby/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ └── pg_standby.c
│ ├── pg_stat_statements/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── pg_stat_statements.out
│ │ ├── pg_stat_statements--1.0--1.1.sql
│ │ ├── pg_stat_statements--1.1--1.2.sql
│ │ ├── pg_stat_statements--1.2--1.3.sql
│ │ ├── pg_stat_statements--1.3--1.4.sql
│ │ ├── pg_stat_statements--1.4--1.5.sql
│ │ ├── pg_stat_statements--1.4.sql
│ │ ├── pg_stat_statements--1.5--1.6.sql
│ │ ├── pg_stat_statements--unpackaged--1.0.sql
│ │ ├── pg_stat_statements.c
│ │ ├── pg_stat_statements.conf
│ │ ├── pg_stat_statements.control
│ │ └── sql/
│ │ └── pg_stat_statements.sql
│ ├── pg_trgm/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ ├── trgm.data
│ │ │ └── trgm2.data
│ │ ├── expected/
│ │ │ ├── pg_strict_word_trgm.out
│ │ │ ├── pg_trgm.out
│ │ │ └── pg_word_trgm.out
│ │ ├── pg_trgm--1.0--1.1.sql
│ │ ├── pg_trgm--1.1--1.2.sql
│ │ ├── pg_trgm--1.2--1.3.sql
│ │ ├── pg_trgm--1.3--1.4.sql
│ │ ├── pg_trgm--1.3.sql
│ │ ├── pg_trgm--unpackaged--1.0.sql
│ │ ├── pg_trgm.control
│ │ ├── sql/
│ │ │ ├── pg_strict_word_trgm.sql
│ │ │ ├── pg_trgm.sql
│ │ │ └── pg_word_trgm.sql
│ │ ├── trgm.h
│ │ ├── trgm_gin.c
│ │ ├── trgm_gist.c
│ │ ├── trgm_op.c
│ │ └── trgm_regexp.c
│ ├── pg_visibility/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── pg_visibility.out
│ │ ├── pg_visibility--1.0--1.1.sql
│ │ ├── pg_visibility--1.1--1.2.sql
│ │ ├── pg_visibility--1.1.sql
│ │ ├── pg_visibility.c
│ │ ├── pg_visibility.control
│ │ └── sql/
│ │ └── pg_visibility.sql
│ ├── pgcrypto/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── blf.c
│ │ ├── blf.h
│ │ ├── crypt-blowfish.c
│ │ ├── crypt-des.c
│ │ ├── crypt-gensalt.c
│ │ ├── crypt-md5.c
│ │ ├── expected/
│ │ │ ├── 3des.out
│ │ │ ├── blowfish.out
│ │ │ ├── cast5.out
│ │ │ ├── crypt-blowfish.out
│ │ │ ├── crypt-des.out
│ │ │ ├── crypt-md5.out
│ │ │ ├── crypt-xdes.out
│ │ │ ├── des.out
│ │ │ ├── hmac-md5.out
│ │ │ ├── hmac-sha1.out
│ │ │ ├── init.out
│ │ │ ├── md5.out
│ │ │ ├── pgp-armor.out
│ │ │ ├── pgp-compression.out
│ │ │ ├── pgp-compression_1.out
│ │ │ ├── pgp-decrypt.out
│ │ │ ├── pgp-decrypt_1.out
│ │ │ ├── pgp-encrypt.out
│ │ │ ├── pgp-encrypt_1.out
│ │ │ ├── pgp-info.out
│ │ │ ├── pgp-pubkey-decrypt.out
│ │ │ ├── pgp-pubkey-encrypt.out
│ │ │ ├── pgp-pubkey-encrypt_1.out
│ │ │ ├── pgp-zlib-DISABLED.out
│ │ │ ├── rijndael.out
│ │ │ ├── sha1.out
│ │ │ └── sha2.out
│ │ ├── imath.c
│ │ ├── imath.h
│ │ ├── internal-sha2.c
│ │ ├── internal.c
│ │ ├── mbuf.c
│ │ ├── mbuf.h
│ │ ├── md5.c
│ │ ├── md5.h
│ │ ├── openssl.c
│ │ ├── pgcrypto--1.0--1.1.sql
│ │ ├── pgcrypto--1.1--1.2.sql
│ │ ├── pgcrypto--1.2--1.3.sql
│ │ ├── pgcrypto--1.3.sql
│ │ ├── pgcrypto--unpackaged--1.0.sql
│ │ ├── pgcrypto.c
│ │ ├── pgcrypto.control
│ │ ├── pgcrypto.h
│ │ ├── pgp-armor.c
│ │ ├── pgp-cfb.c
│ │ ├── pgp-compress.c
│ │ ├── pgp-decrypt.c
│ │ ├── pgp-encrypt.c
│ │ ├── pgp-info.c
│ │ ├── pgp-mpi-internal.c
│ │ ├── pgp-mpi-openssl.c
│ │ ├── pgp-mpi.c
│ │ ├── pgp-pgsql.c
│ │ ├── pgp-pubdec.c
│ │ ├── pgp-pubenc.c
│ │ ├── pgp-pubkey.c
│ │ ├── pgp-s2k.c
│ │ ├── pgp.c
│ │ ├── pgp.h
│ │ ├── px-crypt.c
│ │ ├── px-crypt.h
│ │ ├── px-hmac.c
│ │ ├── px.c
│ │ ├── px.h
│ │ ├── rijndael.c
│ │ ├── rijndael.h
│ │ ├── rijndael.tbl
│ │ ├── sha1.c
│ │ ├── sha1.h
│ │ └── sql/
│ │ ├── 3des.sql
│ │ ├── blowfish.sql
│ │ ├── cast5.sql
│ │ ├── crypt-blowfish.sql
│ │ ├── crypt-des.sql
│ │ ├── crypt-md5.sql
│ │ ├── crypt-xdes.sql
│ │ ├── des.sql
│ │ ├── hmac-md5.sql
│ │ ├── hmac-sha1.sql
│ │ ├── init.sql
│ │ ├── md5.sql
│ │ ├── pgp-armor.sql
│ │ ├── pgp-compression.sql
│ │ ├── pgp-decrypt.sql
│ │ ├── pgp-encrypt.sql
│ │ ├── pgp-info.sql
│ │ ├── pgp-pubkey-decrypt.sql
│ │ ├── pgp-pubkey-encrypt.sql
│ │ ├── pgp-zlib-DISABLED.sql
│ │ ├── rijndael.sql
│ │ ├── sha1.sql
│ │ └── sha2.sql
│ ├── pgrowlocks/
│ │ ├── Makefile
│ │ ├── pgrowlocks--1.0--1.1.sql
│ │ ├── pgrowlocks--1.1--1.2.sql
│ │ ├── pgrowlocks--1.2.sql
│ │ ├── pgrowlocks--unpackaged--1.0.sql
│ │ ├── pgrowlocks.c
│ │ └── pgrowlocks.control
│ ├── pgstattuple/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── pgstattuple.out
│ │ ├── pgstatapprox.c
│ │ ├── pgstatindex.c
│ │ ├── pgstattuple--1.0--1.1.sql
│ │ ├── pgstattuple--1.1--1.2.sql
│ │ ├── pgstattuple--1.2--1.3.sql
│ │ ├── pgstattuple--1.3--1.4.sql
│ │ ├── pgstattuple--1.4--1.5.sql
│ │ ├── pgstattuple--1.4.sql
│ │ ├── pgstattuple--unpackaged--1.0.sql
│ │ ├── pgstattuple.c
│ │ ├── pgstattuple.control
│ │ └── sql/
│ │ └── pgstattuple.sql
│ ├── postgres_fdw/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── connection.c
│ │ ├── deparse.c
│ │ ├── expected/
│ │ │ └── postgres_fdw.out
│ │ ├── option.c
│ │ ├── postgres_fdw--1.0.sql
│ │ ├── postgres_fdw.c
│ │ ├── postgres_fdw.control
│ │ ├── postgres_fdw.h
│ │ ├── shippable.c
│ │ └── sql/
│ │ └── postgres_fdw.sql
│ ├── seg/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ └── test_seg.data
│ │ ├── expected/
│ │ │ ├── seg.out
│ │ │ └── seg_1.out
│ │ ├── seg--1.0--1.1.sql
│ │ ├── seg--1.1--1.2.sql
│ │ ├── seg--1.1.sql
│ │ ├── seg--1.2--1.3.sql
│ │ ├── seg--unpackaged--1.0.sql
│ │ ├── seg-validate.pl
│ │ ├── seg.c
│ │ ├── seg.control
│ │ ├── segdata.h
│ │ ├── segparse.y
│ │ ├── segscan.l
│ │ ├── sort-segments.pl
│ │ └── sql/
│ │ └── seg.sql
│ ├── sepgsql/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── database.c
│ │ ├── dml.c
│ │ ├── expected/
│ │ │ ├── alter.out
│ │ │ ├── ddl.out
│ │ │ ├── dml.out
│ │ │ ├── label.out
│ │ │ └── misc.out
│ │ ├── hooks.c
│ │ ├── label.c
│ │ ├── launcher
│ │ ├── proc.c
│ │ ├── relation.c
│ │ ├── schema.c
│ │ ├── selinux.c
│ │ ├── sepgsql-regtest.te
│ │ ├── sepgsql.h
│ │ ├── sepgsql.sql.in
│ │ ├── sql/
│ │ │ ├── alter.sql
│ │ │ ├── ddl.sql
│ │ │ ├── dml.sql
│ │ │ ├── label.sql
│ │ │ └── misc.sql
│ │ ├── test_sepgsql
│ │ └── uavc.c
│ ├── spi/
│ │ ├── Makefile
│ │ ├── autoinc--1.0.sql
│ │ ├── autoinc--unpackaged--1.0.sql
│ │ ├── autoinc.c
│ │ ├── autoinc.control
│ │ ├── autoinc.example
│ │ ├── insert_username--1.0.sql
│ │ ├── insert_username--unpackaged--1.0.sql
│ │ ├── insert_username.c
│ │ ├── insert_username.control
│ │ ├── insert_username.example
│ │ ├── moddatetime--1.0.sql
│ │ ├── moddatetime--unpackaged--1.0.sql
│ │ ├── moddatetime.c
│ │ ├── moddatetime.control
│ │ ├── moddatetime.example
│ │ ├── refint--1.0.sql
│ │ ├── refint--unpackaged--1.0.sql
│ │ ├── refint.c
│ │ ├── refint.control
│ │ ├── refint.example
│ │ ├── timetravel--1.0.sql
│ │ ├── timetravel--unpackaged--1.0.sql
│ │ ├── timetravel.c
│ │ ├── timetravel.control
│ │ └── timetravel.example
│ ├── sslinfo/
│ │ ├── Makefile
│ │ ├── sslinfo--1.0--1.1.sql
│ │ ├── sslinfo--1.1--1.2.sql
│ │ ├── sslinfo--1.2.sql
│ │ ├── sslinfo--unpackaged--1.0.sql
│ │ ├── sslinfo.c
│ │ └── sslinfo.control
│ ├── start-scripts/
│ │ ├── freebsd
│ │ ├── linux
│ │ └── macos/
│ │ ├── README
│ │ ├── org.postgresql.postgres.plist
│ │ └── postgres-wrapper.sh
│ ├── tablefunc/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── data/
│ │ │ ├── connectby_int.data
│ │ │ ├── connectby_text.data
│ │ │ └── ct.data
│ │ ├── expected/
│ │ │ └── tablefunc.out
│ │ ├── sql/
│ │ │ └── tablefunc.sql
│ │ ├── tablefunc--1.0.sql
│ │ ├── tablefunc--unpackaged--1.0.sql
│ │ ├── tablefunc.c
│ │ ├── tablefunc.control
│ │ └── tablefunc.h
│ ├── tcn/
│ │ ├── Makefile
│ │ ├── tcn--1.0.sql
│ │ ├── tcn.c
│ │ └── tcn.control
│ ├── test_decoding/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── binary.out
│ │ │ ├── concurrent_ddl_dml.out
│ │ │ ├── ddl.out
│ │ │ ├── decoding_in_xact.out
│ │ │ ├── decoding_into_rel.out
│ │ │ ├── delayed_startup.out
│ │ │ ├── messages.out
│ │ │ ├── mxact.out
│ │ │ ├── oldest_xmin.out
│ │ │ ├── ondisk_startup.out
│ │ │ ├── permissions.out
│ │ │ ├── prepared.out
│ │ │ ├── replorigin.out
│ │ │ ├── rewrite.out
│ │ │ ├── slot.out
│ │ │ ├── snapshot_transfer.out
│ │ │ ├── spill.out
│ │ │ ├── time.out
│ │ │ ├── toast.out
│ │ │ ├── truncate.out
│ │ │ └── xact.out
│ │ ├── logical.conf
│ │ ├── specs/
│ │ │ ├── concurrent_ddl_dml.spec
│ │ │ ├── delayed_startup.spec
│ │ │ ├── mxact.spec
│ │ │ ├── oldest_xmin.spec
│ │ │ ├── ondisk_startup.spec
│ │ │ └── snapshot_transfer.spec
│ │ ├── sql/
│ │ │ ├── binary.sql
│ │ │ ├── ddl.sql
│ │ │ ├── decoding_in_xact.sql
│ │ │ ├── decoding_into_rel.sql
│ │ │ ├── messages.sql
│ │ │ ├── permissions.sql
│ │ │ ├── prepared.sql
│ │ │ ├── replorigin.sql
│ │ │ ├── rewrite.sql
│ │ │ ├── slot.sql
│ │ │ ├── spill.sql
│ │ │ ├── time.sql
│ │ │ ├── toast.sql
│ │ │ ├── truncate.sql
│ │ │ └── xact.sql
│ │ └── test_decoding.c
│ ├── tsm_system_rows/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── tsm_system_rows.out
│ │ ├── sql/
│ │ │ └── tsm_system_rows.sql
│ │ ├── tsm_system_rows--1.0.sql
│ │ ├── tsm_system_rows.c
│ │ └── tsm_system_rows.control
│ ├── tsm_system_time/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── tsm_system_time.out
│ │ ├── sql/
│ │ │ └── tsm_system_time.sql
│ │ ├── tsm_system_time--1.0.sql
│ │ ├── tsm_system_time.c
│ │ └── tsm_system_time.control
│ ├── unaccent/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── unaccent.out
│ │ ├── generate_unaccent_rules.py
│ │ ├── sql/
│ │ │ └── unaccent.sql
│ │ ├── unaccent--1.0--1.1.sql
│ │ ├── unaccent--1.1.sql
│ │ ├── unaccent--unpackaged--1.0.sql
│ │ ├── unaccent.c
│ │ ├── unaccent.control
│ │ └── unaccent.rules
│ ├── uuid-ossp/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ └── uuid_ossp.out
│ │ ├── sql/
│ │ │ └── uuid_ossp.sql
│ │ ├── uuid-ossp--1.0--1.1.sql
│ │ ├── uuid-ossp--1.1.sql
│ │ ├── uuid-ossp--unpackaged--1.0.sql
│ │ ├── uuid-ossp.c
│ │ └── uuid-ossp.control
│ ├── vacuumlo/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ └── vacuumlo.c
│ └── xml2/
│ ├── .gitignore
│ ├── Makefile
│ ├── expected/
│ │ ├── xml2.out
│ │ └── xml2_1.out
│ ├── sql/
│ │ └── xml2.sql
│ ├── xml2--1.0--1.1.sql
│ ├── xml2--1.1.sql
│ ├── xml2--unpackaged--1.0.sql
│ ├── xml2.control
│ ├── xpath.c
│ └── xslt_proc.c
├── doc/
│ ├── KNOWN_BUGS
│ ├── MISSING_FEATURES
│ ├── Makefile
│ ├── TODO
│ ├── bug.template
│ └── src/
│ ├── Makefile
│ └── sgml/
│ ├── .gitignore
│ ├── Makefile
│ ├── README.links
│ ├── acronyms.sgml
│ ├── adminpack.sgml
│ ├── advanced.sgml
│ ├── amcheck.sgml
│ ├── arch-dev.sgml
│ ├── array.sgml
│ ├── auth-delay.sgml
│ ├── auto-explain.sgml
│ ├── backup.sgml
│ ├── bgworker.sgml
│ ├── biblio.sgml
│ ├── bki.sgml
│ ├── bloom.sgml
│ ├── brin.sgml
│ ├── btree-gin.sgml
│ ├── btree-gist.sgml
│ ├── btree.sgml
│ ├── catalogs.sgml
│ ├── charset.sgml
│ ├── citext.sgml
│ ├── client-auth.sgml
│ ├── config.sgml
│ ├── contrib-spi.sgml
│ ├── contrib.sgml
│ ├── cube.sgml
│ ├── custom-scan.sgml
│ ├── datatype.sgml
│ ├── datetime.sgml
│ ├── dblink.sgml
│ ├── ddl.sgml
│ ├── dfunc.sgml
│ ├── dict-int.sgml
│ ├── dict-xsyn.sgml
│ ├── diskusage.sgml
│ ├── dml.sgml
│ ├── docguide.sgml
│ ├── earthdistance.sgml
│ ├── ecpg.sgml
│ ├── errcodes.sgml
│ ├── event-trigger.sgml
│ ├── extend.sgml
│ ├── external-projects.sgml
│ ├── fdwhandler.sgml
│ ├── features.sgml
│ ├── file-fdw.sgml
│ ├── filelist.sgml
│ ├── func.sgml
│ ├── fuzzystrmatch.sgml
│ ├── generate-errcodes-table.pl
│ ├── generic-wal.sgml
│ ├── geqo.sgml
│ ├── gin.sgml
│ ├── gist.sgml
│ ├── high-availability.sgml
│ ├── history.sgml
│ ├── hstore.sgml
│ ├── indexam.sgml
│ ├── indices.sgml
│ ├── info.sgml
│ ├── information_schema.sgml
│ ├── install-windows.sgml
│ ├── installation.sgml
│ ├── intagg.sgml
│ ├── intarray.sgml
│ ├── intro.sgml
│ ├── isn.sgml
│ ├── jit.sgml
│ ├── json.sgml
│ ├── keywords.sgml
│ ├── legal.sgml
│ ├── libpq.sgml
│ ├── lo.sgml
│ ├── lobj.sgml
│ ├── logical-replication.sgml
│ ├── logicaldecoding.sgml
│ ├── ltree.sgml
│ ├── maintenance.sgml
│ ├── manage-ag.sgml
│ ├── mk_feature_tables.pl
│ ├── monitoring.sgml
│ ├── mvcc.sgml
│ ├── nls.sgml
│ ├── notation.sgml
│ ├── oid2name.sgml
│ ├── pageinspect.sgml
│ ├── parallel.sgml
│ ├── passwordcheck.sgml
│ ├── perform.sgml
│ ├── pgbuffercache.sgml
│ ├── pgcrypto.sgml
│ ├── pgfreespacemap.sgml
│ ├── pgprewarm.sgml
│ ├── pgrowlocks.sgml
│ ├── pgstandby.sgml
│ ├── pgstatstatements.sgml
│ ├── pgstattuple.sgml
│ ├── pgtrgm.sgml
│ ├── pgvisibility.sgml
│ ├── planstats.sgml
│ ├── plhandler.sgml
│ ├── plperl.sgml
│ ├── plpgsql.sgml
│ ├── plpython.sgml
│ ├── pltcl.sgml
│ ├── postgres-fdw.sgml
│ ├── postgres.sgml
│ ├── problems.sgml
│ ├── protocol.sgml
│ ├── queries.sgml
│ ├── query.sgml
│ ├── rangetypes.sgml
│ ├── recovery-config.sgml
│ ├── ref/
│ │ ├── abort.sgml
│ │ ├── allfiles.sgml
│ │ ├── alter_aggregate.sgml
│ │ ├── alter_collation.sgml
│ │ ├── alter_conversion.sgml
│ │ ├── alter_database.sgml
│ │ ├── alter_default_privileges.sgml
│ │ ├── alter_domain.sgml
│ │ ├── alter_event_trigger.sgml
│ │ ├── alter_extension.sgml
│ │ ├── alter_foreign_data_wrapper.sgml
│ │ ├── alter_foreign_table.sgml
│ │ ├── alter_function.sgml
│ │ ├── alter_group.sgml
│ │ ├── alter_index.sgml
│ │ ├── alter_language.sgml
│ │ ├── alter_large_object.sgml
│ │ ├── alter_materialized_view.sgml
│ │ ├── alter_opclass.sgml
│ │ ├── alter_operator.sgml
│ │ ├── alter_opfamily.sgml
│ │ ├── alter_policy.sgml
│ │ ├── alter_procedure.sgml
│ │ ├── alter_publication.sgml
│ │ ├── alter_role.sgml
│ │ ├── alter_routine.sgml
│ │ ├── alter_rule.sgml
│ │ ├── alter_schema.sgml
│ │ ├── alter_sequence.sgml
│ │ ├── alter_server.sgml
│ │ ├── alter_statistics.sgml
│ │ ├── alter_subscription.sgml
│ │ ├── alter_system.sgml
│ │ ├── alter_table.sgml
│ │ ├── alter_tablespace.sgml
│ │ ├── alter_trigger.sgml
│ │ ├── alter_tsconfig.sgml
│ │ ├── alter_tsdictionary.sgml
│ │ ├── alter_tsparser.sgml
│ │ ├── alter_tstemplate.sgml
│ │ ├── alter_type.sgml
│ │ ├── alter_user.sgml
│ │ ├── alter_user_mapping.sgml
│ │ ├── alter_view.sgml
│ │ ├── analyze.sgml
│ │ ├── begin.sgml
│ │ ├── call.sgml
│ │ ├── checkpoint.sgml
│ │ ├── close.sgml
│ │ ├── cluster.sgml
│ │ ├── clusterdb.sgml
│ │ ├── comment.sgml
│ │ ├── commit.sgml
│ │ ├── commit_prepared.sgml
│ │ ├── copy.sgml
│ │ ├── create_access_method.sgml
│ │ ├── create_aggregate.sgml
│ │ ├── create_cast.sgml
│ │ ├── create_collation.sgml
│ │ ├── create_conversion.sgml
│ │ ├── create_database.sgml
│ │ ├── create_domain.sgml
│ │ ├── create_event_trigger.sgml
│ │ ├── create_extension.sgml
│ │ ├── create_foreign_data_wrapper.sgml
│ │ ├── create_foreign_table.sgml
│ │ ├── create_function.sgml
│ │ ├── create_group.sgml
│ │ ├── create_index.sgml
│ │ ├── create_language.sgml
│ │ ├── create_materialized_view.sgml
│ │ ├── create_opclass.sgml
│ │ ├── create_operator.sgml
│ │ ├── create_opfamily.sgml
│ │ ├── create_policy.sgml
│ │ ├── create_procedure.sgml
│ │ ├── create_publication.sgml
│ │ ├── create_role.sgml
│ │ ├── create_rule.sgml
│ │ ├── create_schema.sgml
│ │ ├── create_sequence.sgml
│ │ ├── create_server.sgml
│ │ ├── create_statistics.sgml
│ │ ├── create_subscription.sgml
│ │ ├── create_table.sgml
│ │ ├── create_table_as.sgml
│ │ ├── create_tablespace.sgml
│ │ ├── create_transform.sgml
│ │ ├── create_trigger.sgml
│ │ ├── create_tsconfig.sgml
│ │ ├── create_tsdictionary.sgml
│ │ ├── create_tsparser.sgml
│ │ ├── create_tstemplate.sgml
│ │ ├── create_type.sgml
│ │ ├── create_user.sgml
│ │ ├── create_user_mapping.sgml
│ │ ├── create_view.sgml
│ │ ├── createdb.sgml
│ │ ├── createuser.sgml
│ │ ├── deallocate.sgml
│ │ ├── declare.sgml
│ │ ├── delete.sgml
│ │ ├── discard.sgml
│ │ ├── do.sgml
│ │ ├── drop_access_method.sgml
│ │ ├── drop_aggregate.sgml
│ │ ├── drop_cast.sgml
│ │ ├── drop_collation.sgml
│ │ ├── drop_conversion.sgml
│ │ ├── drop_database.sgml
│ │ ├── drop_domain.sgml
│ │ ├── drop_event_trigger.sgml
│ │ ├── drop_extension.sgml
│ │ ├── drop_foreign_data_wrapper.sgml
│ │ ├── drop_foreign_table.sgml
│ │ ├── drop_function.sgml
│ │ ├── drop_group.sgml
│ │ ├── drop_index.sgml
│ │ ├── drop_language.sgml
│ │ ├── drop_materialized_view.sgml
│ │ ├── drop_opclass.sgml
│ │ ├── drop_operator.sgml
│ │ ├── drop_opfamily.sgml
│ │ ├── drop_owned.sgml
│ │ ├── drop_policy.sgml
│ │ ├── drop_procedure.sgml
│ │ ├── drop_publication.sgml
│ │ ├── drop_role.sgml
│ │ ├── drop_routine.sgml
│ │ ├── drop_rule.sgml
│ │ ├── drop_schema.sgml
│ │ ├── drop_sequence.sgml
│ │ ├── drop_server.sgml
│ │ ├── drop_statistics.sgml
│ │ ├── drop_subscription.sgml
│ │ ├── drop_table.sgml
│ │ ├── drop_tablespace.sgml
│ │ ├── drop_transform.sgml
│ │ ├── drop_trigger.sgml
│ │ ├── drop_tsconfig.sgml
│ │ ├── drop_tsdictionary.sgml
│ │ ├── drop_tsparser.sgml
│ │ ├── drop_tstemplate.sgml
│ │ ├── drop_type.sgml
│ │ ├── drop_user.sgml
│ │ ├── drop_user_mapping.sgml
│ │ ├── drop_view.sgml
│ │ ├── dropdb.sgml
│ │ ├── dropuser.sgml
│ │ ├── ecpg-ref.sgml
│ │ ├── end.sgml
│ │ ├── execute.sgml
│ │ ├── explain.sgml
│ │ ├── fetch.sgml
│ │ ├── grant.sgml
│ │ ├── import_foreign_schema.sgml
│ │ ├── initdb.sgml
│ │ ├── insert.sgml
│ │ ├── listen.sgml
│ │ ├── load.sgml
│ │ ├── lock.sgml
│ │ ├── move.sgml
│ │ ├── notify.sgml
│ │ ├── pg_basebackup.sgml
│ │ ├── pg_config-ref.sgml
│ │ ├── pg_controldata.sgml
│ │ ├── pg_ctl-ref.sgml
│ │ ├── pg_dump.sgml
│ │ ├── pg_dumpall.sgml
│ │ ├── pg_isready.sgml
│ │ ├── pg_receivewal.sgml
│ │ ├── pg_recvlogical.sgml
│ │ ├── pg_resetwal.sgml
│ │ ├── pg_restore.sgml
│ │ ├── pg_rewind.sgml
│ │ ├── pg_verify_checksums.sgml
│ │ ├── pg_waldump.sgml
│ │ ├── pgarchivecleanup.sgml
│ │ ├── pgbench.sgml
│ │ ├── pgtestfsync.sgml
│ │ ├── pgtesttiming.sgml
│ │ ├── pgupgrade.sgml
│ │ ├── postgres-ref.sgml
│ │ ├── postmaster.sgml
│ │ ├── prepare.sgml
│ │ ├── prepare_transaction.sgml
│ │ ├── psql-ref.sgml
│ │ ├── reassign_owned.sgml
│ │ ├── refresh_materialized_view.sgml
│ │ ├── reindex.sgml
│ │ ├── reindexdb.sgml
│ │ ├── release_savepoint.sgml
│ │ ├── reset.sgml
│ │ ├── revoke.sgml
│ │ ├── rollback.sgml
│ │ ├── rollback_prepared.sgml
│ │ ├── rollback_to.sgml
│ │ ├── savepoint.sgml
│ │ ├── security_label.sgml
│ │ ├── select.sgml
│ │ ├── select_into.sgml
│ │ ├── set.sgml
│ │ ├── set_constraints.sgml
│ │ ├── set_role.sgml
│ │ ├── set_session_auth.sgml
│ │ ├── set_transaction.sgml
│ │ ├── show.sgml
│ │ ├── start_transaction.sgml
│ │ ├── truncate.sgml
│ │ ├── unlisten.sgml
│ │ ├── update.sgml
│ │ ├── vacuum.sgml
│ │ ├── vacuumdb.sgml
│ │ └── values.sgml
│ ├── reference.sgml
│ ├── regress.sgml
│ ├── release-11.sgml
│ ├── release.sgml
│ ├── replication-origins.sgml
│ ├── rowtypes.sgml
│ ├── rules.sgml
│ ├── runtime.sgml
│ ├── seg.sgml
│ ├── sepgsql.sgml
│ ├── sourcerepo.sgml
│ ├── sources.sgml
│ ├── spgist.sgml
│ ├── spi.sgml
│ ├── sslinfo.sgml
│ ├── standalone-install.xml
│ ├── standalone-profile.xsl
│ ├── start.sgml
│ ├── storage.sgml
│ ├── stylesheet-common.xsl
│ ├── stylesheet-fo.xsl
│ ├── stylesheet-hh.xsl
│ ├── stylesheet-html-common.xsl
│ ├── stylesheet-html-nochunk.xsl
│ ├── stylesheet-man.xsl
│ ├── stylesheet-speedup-common.xsl
│ ├── stylesheet-speedup-xhtml.xsl
│ ├── stylesheet-text.xsl
│ ├── stylesheet.css
│ ├── stylesheet.xsl
│ ├── syntax.sgml
│ ├── tablefunc.sgml
│ ├── tablesample-method.sgml
│ ├── tcn.sgml
│ ├── test-decoding.sgml
│ ├── textsearch.sgml
│ ├── trigger.sgml
│ ├── tsm-system-rows.sgml
│ ├── tsm-system-time.sgml
│ ├── typeconv.sgml
│ ├── unaccent.sgml
│ ├── user-manag.sgml
│ ├── uuid-ossp.sgml
│ ├── vacuumlo.sgml
│ ├── wal.sgml
│ ├── xaggr.sgml
│ ├── xfunc.sgml
│ ├── xindex.sgml
│ ├── xml2.sgml
│ ├── xoper.sgml
│ ├── xplang.sgml
│ └── xtypes.sgml
├── post-install.sh
├── resources/
│ ├── mysql_client.tgz
│ ├── postgresql-42.2.16.jar
│ └── postgresql.conf
├── scripts/
│ ├── add_comp_nodes.py
│ ├── add_comp_self.py
│ ├── add_shards.py
│ ├── bootstrap.py
│ ├── common.py
│ ├── comp-nodes.json
│ ├── create_cluster.py
│ ├── install_pg.py
│ ├── meta-shard.json
│ ├── meta_inuse.sql
│ ├── shards-config.json
│ ├── start_pg.py
│ └── stop_pg.py
└── src/
├── .gitignore
├── DEVELOPERS
├── Makefile
├── Makefile.global.in
├── Makefile.shlib
├── backend/
│ ├── .gitignore
│ ├── Makefile
│ ├── access/
│ │ ├── Makefile
│ │ ├── brin/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── brin.c
│ │ │ ├── brin_inclusion.c
│ │ │ ├── brin_minmax.c
│ │ │ ├── brin_pageops.c
│ │ │ ├── brin_revmap.c
│ │ │ ├── brin_tuple.c
│ │ │ ├── brin_validate.c
│ │ │ └── brin_xlog.c
│ │ ├── common/
│ │ │ ├── Makefile
│ │ │ ├── bufmask.c
│ │ │ ├── heaptuple.c
│ │ │ ├── indextuple.c
│ │ │ ├── printsimple.c
│ │ │ ├── printtup.c
│ │ │ ├── reloptions.c
│ │ │ ├── remotetup.c
│ │ │ ├── scankey.c
│ │ │ ├── session.c
│ │ │ ├── tupconvert.c
│ │ │ └── tupdesc.c
│ │ ├── gin/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── ginarrayproc.c
│ │ │ ├── ginbtree.c
│ │ │ ├── ginbulk.c
│ │ │ ├── gindatapage.c
│ │ │ ├── ginentrypage.c
│ │ │ ├── ginfast.c
│ │ │ ├── ginget.c
│ │ │ ├── gininsert.c
│ │ │ ├── ginlogic.c
│ │ │ ├── ginpostinglist.c
│ │ │ ├── ginscan.c
│ │ │ ├── ginutil.c
│ │ │ ├── ginvacuum.c
│ │ │ ├── ginvalidate.c
│ │ │ └── ginxlog.c
│ │ ├── gist/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── gist.c
│ │ │ ├── gistbuild.c
│ │ │ ├── gistbuildbuffers.c
│ │ │ ├── gistget.c
│ │ │ ├── gistproc.c
│ │ │ ├── gistscan.c
│ │ │ ├── gistsplit.c
│ │ │ ├── gistutil.c
│ │ │ ├── gistvacuum.c
│ │ │ ├── gistvalidate.c
│ │ │ └── gistxlog.c
│ │ ├── hash/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── hash.c
│ │ │ ├── hash_xlog.c
│ │ │ ├── hashfunc.c
│ │ │ ├── hashinsert.c
│ │ │ ├── hashovfl.c
│ │ │ ├── hashpage.c
│ │ │ ├── hashsearch.c
│ │ │ ├── hashsort.c
│ │ │ ├── hashutil.c
│ │ │ └── hashvalidate.c
│ │ ├── heap/
│ │ │ ├── Makefile
│ │ │ ├── README.HOT
│ │ │ ├── README.tuplock
│ │ │ ├── heapam.c
│ │ │ ├── hio.c
│ │ │ ├── pruneheap.c
│ │ │ ├── rewriteheap.c
│ │ │ ├── syncscan.c
│ │ │ ├── tuptoaster.c
│ │ │ └── visibilitymap.c
│ │ ├── index/
│ │ │ ├── Makefile
│ │ │ ├── amapi.c
│ │ │ ├── amvalidate.c
│ │ │ ├── genam.c
│ │ │ └── indexam.c
│ │ ├── nbtree/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── nbtcompare.c
│ │ │ ├── nbtinsert.c
│ │ │ ├── nbtpage.c
│ │ │ ├── nbtree.c
│ │ │ ├── nbtsearch.c
│ │ │ ├── nbtsort.c
│ │ │ ├── nbtutils.c
│ │ │ ├── nbtvalidate.c
│ │ │ └── nbtxlog.c
│ │ ├── remote/
│ │ │ ├── Makefile
│ │ │ ├── dml.c
│ │ │ ├── meta.c
│ │ │ └── remote_xact.c
│ │ ├── rmgrdesc/
│ │ │ ├── Makefile
│ │ │ ├── brindesc.c
│ │ │ ├── clogdesc.c
│ │ │ ├── committsdesc.c
│ │ │ ├── dbasedesc.c
│ │ │ ├── genericdesc.c
│ │ │ ├── gindesc.c
│ │ │ ├── gistdesc.c
│ │ │ ├── hashdesc.c
│ │ │ ├── heapdesc.c
│ │ │ ├── logicalmsgdesc.c
│ │ │ ├── mxactdesc.c
│ │ │ ├── nbtdesc.c
│ │ │ ├── relmapdesc.c
│ │ │ ├── replorigindesc.c
│ │ │ ├── seqdesc.c
│ │ │ ├── smgrdesc.c
│ │ │ ├── spgdesc.c
│ │ │ ├── standbydesc.c
│ │ │ ├── tblspcdesc.c
│ │ │ ├── xactdesc.c
│ │ │ └── xlogdesc.c
│ │ ├── spgist/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── spgdoinsert.c
│ │ │ ├── spginsert.c
│ │ │ ├── spgkdtreeproc.c
│ │ │ ├── spgquadtreeproc.c
│ │ │ ├── spgscan.c
│ │ │ ├── spgtextproc.c
│ │ │ ├── spgutils.c
│ │ │ ├── spgvacuum.c
│ │ │ ├── spgvalidate.c
│ │ │ └── spgxlog.c
│ │ ├── tablesample/
│ │ │ ├── Makefile
│ │ │ ├── bernoulli.c
│ │ │ ├── system.c
│ │ │ └── tablesample.c
│ │ └── transam/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── README.parallel
│ │ ├── clog.c
│ │ ├── commit_ts.c
│ │ ├── generic_xlog.c
│ │ ├── multixact.c
│ │ ├── parallel.c
│ │ ├── recovery.conf.sample
│ │ ├── rmgr.c
│ │ ├── slru.c
│ │ ├── subtrans.c
│ │ ├── timeline.c
│ │ ├── transam.c
│ │ ├── twophase.c
│ │ ├── twophase_rmgr.c
│ │ ├── varsup.c
│ │ ├── xact.c
│ │ ├── xlog.c
│ │ ├── xlogarchive.c
│ │ ├── xlogfuncs.c
│ │ ├── xloginsert.c
│ │ ├── xlogreader.c
│ │ └── xlogutils.c
│ ├── bootstrap/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── bootparse.y
│ │ ├── bootscanner.l
│ │ └── bootstrap.c
│ ├── catalog/
│ │ ├── .gitignore
│ │ ├── Catalog.pm
│ │ ├── Makefile
│ │ ├── aclchk.c
│ │ ├── catalog.c
│ │ ├── dependency.c
│ │ ├── genbki.pl
│ │ ├── heap.c
│ │ ├── index.c
│ │ ├── indexing.c
│ │ ├── information_schema.sql
│ │ ├── namespace.c
│ │ ├── objectaccess.c
│ │ ├── objectaddress.c
│ │ ├── partition.c
│ │ ├── pg_aggregate.c
│ │ ├── pg_collation.c
│ │ ├── pg_constraint.c
│ │ ├── pg_conversion.c
│ │ ├── pg_db_role_setting.c
│ │ ├── pg_depend.c
│ │ ├── pg_enum.c
│ │ ├── pg_inherits.c
│ │ ├── pg_largeobject.c
│ │ ├── pg_namespace.c
│ │ ├── pg_operator.c
│ │ ├── pg_proc.c
│ │ ├── pg_publication.c
│ │ ├── pg_range.c
│ │ ├── pg_sharding.c
│ │ ├── pg_shdepend.c
│ │ ├── pg_subscription.c
│ │ ├── pg_type.c
│ │ ├── postgres.description
│ │ ├── sql_feature_packages.txt
│ │ ├── sql_features.txt
│ │ ├── storage.c
│ │ ├── system_views.sql
│ │ └── toasting.c
│ ├── commands/
│ │ ├── Makefile
│ │ ├── aggregatecmds.c
│ │ ├── alter.c
│ │ ├── amcmds.c
│ │ ├── analyze.c
│ │ ├── async.c
│ │ ├── cluster.c
│ │ ├── collationcmds.c
│ │ ├── comment.c
│ │ ├── constraint.c
│ │ ├── conversioncmds.c
│ │ ├── copy.c
│ │ ├── createas.c
│ │ ├── dbcommands.c
│ │ ├── define.c
│ │ ├── discard.c
│ │ ├── dropcmds.c
│ │ ├── event_trigger.c
│ │ ├── explain.c
│ │ ├── extension.c
│ │ ├── foreigncmds.c
│ │ ├── functioncmds.c
│ │ ├── indexcmds.c
│ │ ├── lockcmds.c
│ │ ├── matview.c
│ │ ├── opclasscmds.c
│ │ ├── operatorcmds.c
│ │ ├── policy.c
│ │ ├── portalcmds.c
│ │ ├── prepare.c
│ │ ├── proclang.c
│ │ ├── publicationcmds.c
│ │ ├── schemacmds.c
│ │ ├── seclabel.c
│ │ ├── sequence.c
│ │ ├── statscmds.c
│ │ ├── subscriptioncmds.c
│ │ ├── tablecmds.c
│ │ ├── tablespace.c
│ │ ├── trigger.c
│ │ ├── tsearchcmds.c
│ │ ├── typecmds.c
│ │ ├── user.c
│ │ ├── vacuum.c
│ │ ├── vacuumlazy.c
│ │ ├── variable.c
│ │ └── view.c
│ ├── common.mk
│ ├── executor/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── execAmi.c
│ │ ├── execCurrent.c
│ │ ├── execExpr.c
│ │ ├── execExprInterp.c
│ │ ├── execGrouping.c
│ │ ├── execIndexing.c
│ │ ├── execJunk.c
│ │ ├── execMain.c
│ │ ├── execParallel.c
│ │ ├── execPartition.c
│ │ ├── execProcnode.c
│ │ ├── execRemote.c
│ │ ├── execReplication.c
│ │ ├── execSRF.c
│ │ ├── execScan.c
│ │ ├── execTuples.c
│ │ ├── execUtils.c
│ │ ├── functions.c
│ │ ├── instrument.c
│ │ ├── nodeAgg.c
│ │ ├── nodeAppend.c
│ │ ├── nodeBitmapAnd.c
│ │ ├── nodeBitmapHeapscan.c
│ │ ├── nodeBitmapIndexscan.c
│ │ ├── nodeBitmapOr.c
│ │ ├── nodeCtescan.c
│ │ ├── nodeCustom.c
│ │ ├── nodeForeignscan.c
│ │ ├── nodeFunctionscan.c
│ │ ├── nodeGather.c
│ │ ├── nodeGatherMerge.c
│ │ ├── nodeGroup.c
│ │ ├── nodeHash.c
│ │ ├── nodeHashjoin.c
│ │ ├── nodeIndexonlyscan.c
│ │ ├── nodeIndexscan.c
│ │ ├── nodeLimit.c
│ │ ├── nodeLockRows.c
│ │ ├── nodeMaterial.c
│ │ ├── nodeMergeAppend.c
│ │ ├── nodeMergejoin.c
│ │ ├── nodeModifyTable.c
│ │ ├── nodeNamedtuplestorescan.c
│ │ ├── nodeNestloop.c
│ │ ├── nodeProjectSet.c
│ │ ├── nodeRecursiveunion.c
│ │ ├── nodeRemotescan.c
│ │ ├── nodeResult.c
│ │ ├── nodeSamplescan.c
│ │ ├── nodeSeqscan.c
│ │ ├── nodeSetOp.c
│ │ ├── nodeSort.c
│ │ ├── nodeSubplan.c
│ │ ├── nodeSubqueryscan.c
│ │ ├── nodeTableFuncscan.c
│ │ ├── nodeTidscan.c
│ │ ├── nodeUnique.c
│ │ ├── nodeValuesscan.c
│ │ ├── nodeWindowAgg.c
│ │ ├── nodeWorktablescan.c
│ │ ├── remoteScanUtils.c
│ │ ├── spi.c
│ │ ├── tqueue.c
│ │ └── tstoreReceiver.c
│ ├── foreign/
│ │ ├── Makefile
│ │ └── foreign.c
│ ├── jit/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── jit.c
│ │ └── llvm/
│ │ ├── Makefile
│ │ ├── llvmjit.c
│ │ ├── llvmjit_deform.c
│ │ ├── llvmjit_error.cpp
│ │ ├── llvmjit_expr.c
│ │ ├── llvmjit_inline.cpp
│ │ ├── llvmjit_types.c
│ │ └── llvmjit_wrap.cpp
│ ├── lib/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── binaryheap.c
│ │ ├── bipartite_match.c
│ │ ├── bloomfilter.c
│ │ ├── dshash.c
│ │ ├── hyperloglog.c
│ │ ├── ilist.c
│ │ ├── knapsack.c
│ │ ├── pairingheap.c
│ │ ├── rbtree.c
│ │ └── stringinfo.c
│ ├── libpq/
│ │ ├── Makefile
│ │ ├── README.SSL
│ │ ├── auth-scram.c
│ │ ├── auth.c
│ │ ├── be-fsstubs.c
│ │ ├── be-secure-common.c
│ │ ├── be-secure-openssl.c
│ │ ├── be-secure.c
│ │ ├── crypt.c
│ │ ├── hba.c
│ │ ├── ifaddr.c
│ │ ├── pg_hba.conf.sample
│ │ ├── pg_ident.conf.sample
│ │ ├── pqcomm.c
│ │ ├── pqformat.c
│ │ ├── pqmq.c
│ │ └── pqsignal.c
│ ├── main/
│ │ ├── Makefile
│ │ └── main.c
│ ├── nls.mk
│ ├── nodes/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── bitmapset.c
│ │ ├── copyfuncs.c
│ │ ├── equalfuncs.c
│ │ ├── extensible.c
│ │ ├── list.c
│ │ ├── makefuncs.c
│ │ ├── nodeFuncs.c
│ │ ├── nodes.c
│ │ ├── outfuncs.c
│ │ ├── params.c
│ │ ├── print.c
│ │ ├── read.c
│ │ ├── readfuncs.c
│ │ ├── remote_input.c
│ │ ├── remote_print.c
│ │ ├── remote_print2.c
│ │ ├── remote_type_funcs.c
│ │ ├── tidbitmap.c
│ │ └── value.c
│ ├── optimizer/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── geqo/
│ │ │ ├── Makefile
│ │ │ ├── geqo_copy.c
│ │ │ ├── geqo_cx.c
│ │ │ ├── geqo_erx.c
│ │ │ ├── geqo_eval.c
│ │ │ ├── geqo_main.c
│ │ │ ├── geqo_misc.c
│ │ │ ├── geqo_mutation.c
│ │ │ ├── geqo_ox1.c
│ │ │ ├── geqo_ox2.c
│ │ │ ├── geqo_pmx.c
│ │ │ ├── geqo_pool.c
│ │ │ ├── geqo_px.c
│ │ │ ├── geqo_random.c
│ │ │ ├── geqo_recombination.c
│ │ │ └── geqo_selection.c
│ │ ├── path/
│ │ │ ├── Makefile
│ │ │ ├── allpaths.c
│ │ │ ├── clausesel.c
│ │ │ ├── costsize.c
│ │ │ ├── equivclass.c
│ │ │ ├── indxpath.c
│ │ │ ├── joinpath.c
│ │ │ ├── joinrels.c
│ │ │ ├── pathkeys.c
│ │ │ └── tidpath.c
│ │ ├── plan/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── analyzejoins.c
│ │ │ ├── createplan.c
│ │ │ ├── initsplan.c
│ │ │ ├── planagg.c
│ │ │ ├── planmain.c
│ │ │ ├── planner.c
│ │ │ ├── planremote.c
│ │ │ ├── setrefs.c
│ │ │ └── subselect.c
│ │ ├── prep/
│ │ │ ├── Makefile
│ │ │ ├── prepjointree.c
│ │ │ ├── prepqual.c
│ │ │ ├── preptlist.c
│ │ │ └── prepunion.c
│ │ └── util/
│ │ ├── Makefile
│ │ ├── clauses.c
│ │ ├── joininfo.c
│ │ ├── orclauses.c
│ │ ├── paramassign.c
│ │ ├── pathnode.c
│ │ ├── placeholder.c
│ │ ├── plancat.c
│ │ ├── predtest.c
│ │ ├── relnode.c
│ │ ├── restrictinfo.c
│ │ ├── tlist.c
│ │ └── var.c
│ ├── parser/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── analyze.c
│ │ ├── check_keywords.pl
│ │ ├── gram.y
│ │ ├── parse_agg.c
│ │ ├── parse_clause.c
│ │ ├── parse_coerce.c
│ │ ├── parse_collate.c
│ │ ├── parse_cte.c
│ │ ├── parse_enr.c
│ │ ├── parse_expr.c
│ │ ├── parse_func.c
│ │ ├── parse_node.c
│ │ ├── parse_oper.c
│ │ ├── parse_param.c
│ │ ├── parse_relation.c
│ │ ├── parse_target.c
│ │ ├── parse_type.c
│ │ ├── parse_utilcmd.c
│ │ ├── parser.c
│ │ ├── scan.l
│ │ └── scansup.c
│ ├── partitioning/
│ │ ├── Makefile
│ │ ├── partbounds.c
│ │ └── partprune.c
│ ├── po/
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── port/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── aix/
│ │ │ └── mkldexport.sh
│ │ ├── atomics.c
│ │ ├── dynloader/
│ │ │ ├── aix.c
│ │ │ ├── aix.h
│ │ │ ├── cygwin.c
│ │ │ ├── cygwin.h
│ │ │ ├── darwin.c
│ │ │ ├── darwin.h
│ │ │ ├── freebsd.c
│ │ │ ├── freebsd.h
│ │ │ ├── hpux.c
│ │ │ ├── hpux.h
│ │ │ ├── linux.c
│ │ │ ├── linux.h
│ │ │ ├── netbsd.c
│ │ │ ├── netbsd.h
│ │ │ ├── openbsd.c
│ │ │ ├── openbsd.h
│ │ │ ├── solaris.c
│ │ │ ├── solaris.h
│ │ │ ├── win32.c
│ │ │ └── win32.h
│ │ ├── hpux/
│ │ │ └── tas.c.template
│ │ ├── posix_sema.c
│ │ ├── sysv_sema.c
│ │ ├── sysv_shmem.c
│ │ ├── tas/
│ │ │ ├── dummy.s
│ │ │ ├── hpux_hppa.s
│ │ │ ├── sunstudio_sparc.s
│ │ │ └── sunstudio_x86.s
│ │ ├── win32/
│ │ │ ├── Makefile
│ │ │ ├── crashdump.c
│ │ │ ├── mingwcompat.c
│ │ │ ├── signal.c
│ │ │ ├── socket.c
│ │ │ └── timer.c
│ │ ├── win32_sema.c
│ │ └── win32_shmem.c
│ ├── postmaster/
│ │ ├── Makefile
│ │ ├── autovacuum.c
│ │ ├── bgworker.c
│ │ ├── bgwriter.c
│ │ ├── checkpointer.c
│ │ ├── fork_process.c
│ │ ├── pgarch.c
│ │ ├── pgstat.c
│ │ ├── postmaster.c
│ │ ├── startup.c
│ │ ├── syslogger.c
│ │ ├── walwriter.c
│ │ └── xidsender.c
│ ├── regex/
│ │ ├── COPYRIGHT
│ │ ├── Makefile
│ │ ├── README
│ │ ├── re_syntax.n
│ │ ├── regc_color.c
│ │ ├── regc_cvec.c
│ │ ├── regc_lex.c
│ │ ├── regc_locale.c
│ │ ├── regc_nfa.c
│ │ ├── regc_pg_locale.c
│ │ ├── regcomp.c
│ │ ├── rege_dfa.c
│ │ ├── regerror.c
│ │ ├── regexec.c
│ │ ├── regexport.c
│ │ ├── regfree.c
│ │ └── regprefix.c
│ ├── replication/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── basebackup.c
│ │ ├── libpqwalreceiver/
│ │ │ ├── Makefile
│ │ │ └── libpqwalreceiver.c
│ │ ├── logical/
│ │ │ ├── Makefile
│ │ │ ├── decode.c
│ │ │ ├── launcher.c
│ │ │ ├── logical.c
│ │ │ ├── logicalfuncs.c
│ │ │ ├── message.c
│ │ │ ├── origin.c
│ │ │ ├── proto.c
│ │ │ ├── relation.c
│ │ │ ├── reorderbuffer.c
│ │ │ ├── snapbuild.c
│ │ │ ├── tablesync.c
│ │ │ └── worker.c
│ │ ├── pgoutput/
│ │ │ ├── Makefile
│ │ │ └── pgoutput.c
│ │ ├── repl_gram.y
│ │ ├── repl_scanner.l
│ │ ├── slot.c
│ │ ├── slotfuncs.c
│ │ ├── syncrep.c
│ │ ├── syncrep_gram.y
│ │ ├── syncrep_scanner.l
│ │ ├── walreceiver.c
│ │ ├── walreceiverfuncs.c
│ │ └── walsender.c
│ ├── rewrite/
│ │ ├── Makefile
│ │ ├── rewriteDefine.c
│ │ ├── rewriteHandler.c
│ │ ├── rewriteManip.c
│ │ ├── rewriteRemove.c
│ │ ├── rewriteSupport.c
│ │ └── rowsecurity.c
│ ├── sharding/
│ │ ├── Makefile
│ │ ├── cluster_meta.c
│ │ ├── mat_cache.c
│ │ ├── mysql_vars.c
│ │ └── sharding_conn.c
│ ├── snowball/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── dict_snowball.c
│ │ ├── libstemmer/
│ │ │ ├── api.c
│ │ │ ├── stem_ISO_8859_1_danish.c
│ │ │ ├── stem_ISO_8859_1_dutch.c
│ │ │ ├── stem_ISO_8859_1_english.c
│ │ │ ├── stem_ISO_8859_1_finnish.c
│ │ │ ├── stem_ISO_8859_1_french.c
│ │ │ ├── stem_ISO_8859_1_german.c
│ │ │ ├── stem_ISO_8859_1_hungarian.c
│ │ │ ├── stem_ISO_8859_1_italian.c
│ │ │ ├── stem_ISO_8859_1_norwegian.c
│ │ │ ├── stem_ISO_8859_1_porter.c
│ │ │ ├── stem_ISO_8859_1_portuguese.c
│ │ │ ├── stem_ISO_8859_1_spanish.c
│ │ │ ├── stem_ISO_8859_1_swedish.c
│ │ │ ├── stem_ISO_8859_2_romanian.c
│ │ │ ├── stem_KOI8_R_russian.c
│ │ │ ├── stem_UTF_8_danish.c
│ │ │ ├── stem_UTF_8_dutch.c
│ │ │ ├── stem_UTF_8_english.c
│ │ │ ├── stem_UTF_8_finnish.c
│ │ │ ├── stem_UTF_8_french.c
│ │ │ ├── stem_UTF_8_german.c
│ │ │ ├── stem_UTF_8_hungarian.c
│ │ │ ├── stem_UTF_8_italian.c
│ │ │ ├── stem_UTF_8_norwegian.c
│ │ │ ├── stem_UTF_8_porter.c
│ │ │ ├── stem_UTF_8_portuguese.c
│ │ │ ├── stem_UTF_8_romanian.c
│ │ │ ├── stem_UTF_8_russian.c
│ │ │ ├── stem_UTF_8_spanish.c
│ │ │ ├── stem_UTF_8_swedish.c
│ │ │ ├── stem_UTF_8_turkish.c
│ │ │ └── utilities.c
│ │ ├── snowball.sql.in
│ │ ├── snowball_func.sql.in
│ │ └── stopwords/
│ │ ├── danish.stop
│ │ ├── dutch.stop
│ │ ├── english.stop
│ │ ├── finnish.stop
│ │ ├── french.stop
│ │ ├── german.stop
│ │ ├── hungarian.stop
│ │ ├── italian.stop
│ │ ├── norwegian.stop
│ │ ├── portuguese.stop
│ │ ├── russian.stop
│ │ ├── spanish.stop
│ │ ├── swedish.stop
│ │ └── turkish.stop
│ ├── statistics/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── README.dependencies
│ │ ├── dependencies.c
│ │ ├── extended_stats.c
│ │ └── mvdistinct.c
│ ├── storage/
│ │ ├── Makefile
│ │ ├── buffer/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── buf_init.c
│ │ │ ├── buf_table.c
│ │ │ ├── bufmgr.c
│ │ │ ├── freelist.c
│ │ │ └── localbuf.c
│ │ ├── file/
│ │ │ ├── Makefile
│ │ │ ├── buffile.c
│ │ │ ├── copydir.c
│ │ │ ├── fd.c
│ │ │ ├── reinit.c
│ │ │ └── sharedfileset.c
│ │ ├── freespace/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── freespace.c
│ │ │ ├── fsmpage.c
│ │ │ └── indexfsm.c
│ │ ├── ipc/
│ │ │ ├── Makefile
│ │ │ ├── barrier.c
│ │ │ ├── dsm.c
│ │ │ ├── dsm_impl.c
│ │ │ ├── ipc.c
│ │ │ ├── ipci.c
│ │ │ ├── latch.c
│ │ │ ├── pmsignal.c
│ │ │ ├── procarray.c
│ │ │ ├── procsignal.c
│ │ │ ├── shm_mq.c
│ │ │ ├── shm_toc.c
│ │ │ ├── shmalloc.c
│ │ │ ├── shmem.c
│ │ │ ├── shmqueue.c
│ │ │ ├── sinval.c
│ │ │ ├── sinvaladt.c
│ │ │ └── standby.c
│ │ ├── large_object/
│ │ │ ├── Makefile
│ │ │ └── inv_api.c
│ │ ├── lmgr/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── README-SSI
│ │ │ ├── README.barrier
│ │ │ ├── condition_variable.c
│ │ │ ├── deadlock.c
│ │ │ ├── generate-lwlocknames.pl
│ │ │ ├── lmgr.c
│ │ │ ├── lock.c
│ │ │ ├── lwlock.c
│ │ │ ├── lwlocknames.txt
│ │ │ ├── predicate.c
│ │ │ ├── proc.c
│ │ │ ├── s_lock.c
│ │ │ └── spin.c
│ │ ├── page/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── bufpage.c
│ │ │ ├── checksum.c
│ │ │ └── itemptr.c
│ │ └── smgr/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── md.c
│ │ ├── smgr.c
│ │ └── smgrtype.c
│ ├── tcop/
│ │ ├── Makefile
│ │ ├── dbug.c
│ │ ├── dest.c
│ │ ├── fastpath.c
│ │ ├── postgres.c
│ │ ├── pquery.c
│ │ └── utility.c
│ ├── tsearch/
│ │ ├── Makefile
│ │ ├── dict.c
│ │ ├── dict_ispell.c
│ │ ├── dict_simple.c
│ │ ├── dict_synonym.c
│ │ ├── dict_thesaurus.c
│ │ ├── dicts/
│ │ │ ├── hunspell_sample.affix
│ │ │ ├── hunspell_sample_long.affix
│ │ │ ├── hunspell_sample_long.dict
│ │ │ ├── hunspell_sample_num.affix
│ │ │ ├── hunspell_sample_num.dict
│ │ │ ├── ispell_sample.affix
│ │ │ ├── ispell_sample.dict
│ │ │ ├── synonym_sample.syn
│ │ │ └── thesaurus_sample.ths
│ │ ├── regis.c
│ │ ├── spell.c
│ │ ├── to_tsany.c
│ │ ├── ts_locale.c
│ │ ├── ts_parse.c
│ │ ├── ts_selfuncs.c
│ │ ├── ts_typanalyze.c
│ │ ├── ts_utils.c
│ │ ├── wparser.c
│ │ └── wparser_def.c
│ └── utils/
│ ├── .gitignore
│ ├── Gen_dummy_probes.pl
│ ├── Gen_dummy_probes.sed
│ ├── Gen_fmgrtab.pl
│ ├── Makefile
│ ├── adt/
│ │ ├── Makefile
│ │ ├── acl.c
│ │ ├── amutils.c
│ │ ├── array_expanded.c
│ │ ├── array_selfuncs.c
│ │ ├── array_typanalyze.c
│ │ ├── array_userfuncs.c
│ │ ├── arrayfuncs.c
│ │ ├── arrayutils.c
│ │ ├── ascii.c
│ │ ├── bool.c
│ │ ├── cash.c
│ │ ├── char.c
│ │ ├── cryptohashes.c
│ │ ├── date.c
│ │ ├── datetime.c
│ │ ├── datum.c
│ │ ├── dbsize.c
│ │ ├── domains.c
│ │ ├── encode.c
│ │ ├── enum.c
│ │ ├── expandeddatum.c
│ │ ├── expandedrecord.c
│ │ ├── float.c
│ │ ├── format_type.c
│ │ ├── format_type_remote.c
│ │ ├── formatting.c
│ │ ├── genfile.c
│ │ ├── geo_ops.c
│ │ ├── geo_selfuncs.c
│ │ ├── geo_spgist.c
│ │ ├── inet_cidr_ntop.c
│ │ ├── inet_net_pton.c
│ │ ├── int.c
│ │ ├── int8.c
│ │ ├── json.c
│ │ ├── jsonb.c
│ │ ├── jsonb_gin.c
│ │ ├── jsonb_op.c
│ │ ├── jsonb_util.c
│ │ ├── jsonfuncs.c
│ │ ├── levenshtein.c
│ │ ├── like.c
│ │ ├── like_match.c
│ │ ├── lockfuncs.c
│ │ ├── mac.c
│ │ ├── mac8.c
│ │ ├── misc.c
│ │ ├── nabstime.c
│ │ ├── name.c
│ │ ├── network.c
│ │ ├── network_gist.c
│ │ ├── network_selfuncs.c
│ │ ├── network_spgist.c
│ │ ├── numeric.c
│ │ ├── numutils.c
│ │ ├── oid.c
│ │ ├── oracle_compat.c
│ │ ├── orderedsetaggs.c
│ │ ├── pg_locale.c
│ │ ├── pg_lsn.c
│ │ ├── pg_upgrade_support.c
│ │ ├── pgstatfuncs.c
│ │ ├── pseudotypes.c
│ │ ├── quote.c
│ │ ├── rangetypes.c
│ │ ├── rangetypes_gist.c
│ │ ├── rangetypes_selfuncs.c
│ │ ├── rangetypes_spgist.c
│ │ ├── rangetypes_typanalyze.c
│ │ ├── regexp.c
│ │ ├── regproc.c
│ │ ├── ri_triggers.c
│ │ ├── rowtypes.c
│ │ ├── ruleutils.c
│ │ ├── selfuncs.c
│ │ ├── tid.c
│ │ ├── timestamp.c
│ │ ├── trigfuncs.c
│ │ ├── tsginidx.c
│ │ ├── tsgistidx.c
│ │ ├── tsquery.c
│ │ ├── tsquery_cleanup.c
│ │ ├── tsquery_gist.c
│ │ ├── tsquery_op.c
│ │ ├── tsquery_rewrite.c
│ │ ├── tsquery_util.c
│ │ ├── tsrank.c
│ │ ├── tsvector.c
│ │ ├── tsvector_op.c
│ │ ├── tsvector_parser.c
│ │ ├── txid.c
│ │ ├── uuid.c
│ │ ├── varbit.c
│ │ ├── varchar.c
│ │ ├── varlena.c
│ │ ├── version.c
│ │ ├── windowfuncs.c
│ │ ├── xid.c
│ │ └── xml.c
│ ├── algos/
│ │ ├── Makefile
│ │ ├── bin_search.c
│ │ └── misc_tools.c
│ ├── cache/
│ │ ├── Makefile
│ │ ├── attoptcache.c
│ │ ├── catcache.c
│ │ ├── evtcache.c
│ │ ├── inval.c
│ │ ├── lsyscache.c
│ │ ├── partcache.c
│ │ ├── plancache.c
│ │ ├── relcache.c
│ │ ├── relfilenodemap.c
│ │ ├── relmapper.c
│ │ ├── spccache.c
│ │ ├── syscache.c
│ │ ├── ts_cache.c
│ │ └── typcache.c
│ ├── errcodes.txt
│ ├── error/
│ │ ├── Makefile
│ │ ├── assert.c
│ │ └── elog.c
│ ├── fmgr/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── dfmgr.c
│ │ ├── fmgr.c
│ │ └── funcapi.c
│ ├── generate-errcodes.pl
│ ├── hash/
│ │ ├── Makefile
│ │ ├── dynahash.c
│ │ ├── hashfn.c
│ │ └── pg_crc.c
│ ├── init/
│ │ ├── Makefile
│ │ ├── globals.c
│ │ ├── miscinit.c
│ │ └── postinit.c
│ ├── mb/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── Unicode/
│ │ │ ├── Makefile
│ │ │ ├── UCS_to_BIG5.pl
│ │ │ ├── UCS_to_EUC_CN.pl
│ │ │ ├── UCS_to_EUC_JIS_2004.pl
│ │ │ ├── UCS_to_EUC_JP.pl
│ │ │ ├── UCS_to_EUC_KR.pl
│ │ │ ├── UCS_to_EUC_TW.pl
│ │ │ ├── UCS_to_GB18030.pl
│ │ │ ├── UCS_to_JOHAB.pl
│ │ │ ├── UCS_to_SHIFT_JIS_2004.pl
│ │ │ ├── UCS_to_SJIS.pl
│ │ │ ├── UCS_to_UHC.pl
│ │ │ ├── UCS_to_most.pl
│ │ │ ├── convutils.pm
│ │ │ ├── euc-jis-2004-std.txt
│ │ │ ├── gb-18030-2000.xml
│ │ │ └── sjis-0213-2004-std.txt
│ │ ├── conv.c
│ │ ├── conversion_procs/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README.euc_jp
│ │ │ ├── ascii_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── ascii_and_mic.c
│ │ │ ├── cyrillic_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── cyrillic_and_mic.c
│ │ │ ├── euc2004_sjis2004/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc2004_sjis2004.c
│ │ │ ├── euc_cn_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc_cn_and_mic.c
│ │ │ ├── euc_jp_and_sjis/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc_jp_and_sjis.c
│ │ │ ├── euc_kr_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── euc_kr_and_mic.c
│ │ │ ├── euc_tw_and_big5/
│ │ │ │ ├── Makefile
│ │ │ │ ├── big5.c
│ │ │ │ └── euc_tw_and_big5.c
│ │ │ ├── latin2_and_win1250/
│ │ │ │ ├── Makefile
│ │ │ │ └── latin2_and_win1250.c
│ │ │ ├── latin_and_mic/
│ │ │ │ ├── Makefile
│ │ │ │ └── latin_and_mic.c
│ │ │ ├── proc.mk
│ │ │ ├── utf8_and_ascii/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_ascii.c
│ │ │ ├── utf8_and_big5/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_big5.c
│ │ │ ├── utf8_and_cyrillic/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_cyrillic.c
│ │ │ ├── utf8_and_euc2004/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc2004.c
│ │ │ ├── utf8_and_euc_cn/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_cn.c
│ │ │ ├── utf8_and_euc_jp/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_jp.c
│ │ │ ├── utf8_and_euc_kr/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_kr.c
│ │ │ ├── utf8_and_euc_tw/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_euc_tw.c
│ │ │ ├── utf8_and_gb18030/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_gb18030.c
│ │ │ ├── utf8_and_gbk/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_gbk.c
│ │ │ ├── utf8_and_iso8859/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_iso8859.c
│ │ │ ├── utf8_and_iso8859_1/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_iso8859_1.c
│ │ │ ├── utf8_and_johab/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_johab.c
│ │ │ ├── utf8_and_sjis/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_sjis.c
│ │ │ ├── utf8_and_sjis2004/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_sjis2004.c
│ │ │ ├── utf8_and_uhc/
│ │ │ │ ├── Makefile
│ │ │ │ └── utf8_and_uhc.c
│ │ │ └── utf8_and_win/
│ │ │ ├── Makefile
│ │ │ └── utf8_and_win.c
│ │ ├── encnames.c
│ │ ├── iso.c
│ │ ├── mbutils.c
│ │ ├── wchar.c
│ │ ├── win1251.c
│ │ ├── win866.c
│ │ ├── wstrcmp.c
│ │ └── wstrncmp.c
│ ├── misc/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── backend_random.c
│ │ ├── check_guc
│ │ ├── guc-file.l
│ │ ├── guc.c
│ │ ├── help_config.c
│ │ ├── pg_config.c
│ │ ├── pg_controldata.c
│ │ ├── pg_rusage.c
│ │ ├── postgresql.conf.sample
│ │ ├── ps_status.c
│ │ ├── queryenvironment.c
│ │ ├── rls.c
│ │ ├── sampling.c
│ │ ├── superuser.c
│ │ ├── timeout.c
│ │ └── tzparser.c
│ ├── mmgr/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── aset.c
│ │ ├── dsa.c
│ │ ├── freepage.c
│ │ ├── generation.c
│ │ ├── mcxt.c
│ │ ├── memdebug.c
│ │ ├── portalmem.c
│ │ └── slab.c
│ ├── probes.d
│ ├── resowner/
│ │ ├── Makefile
│ │ ├── README
│ │ └── resowner.c
│ ├── sort/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── gen_qsort_tuple.pl
│ │ ├── logtape.c
│ │ ├── sharedtuplestore.c
│ │ ├── sortsupport.c
│ │ ├── tuplesort.c
│ │ └── tuplestore.c
│ └── time/
│ ├── Makefile
│ ├── combocid.c
│ ├── snapmgr.c
│ └── tqual.c
├── bin/
│ ├── Makefile
│ ├── initdb/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── findtimezone.c
│ │ ├── initdb.c
│ │ ├── nls.mk
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ └── 001_initdb.pl
│ ├── pg_archivecleanup/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_archivecleanup.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ └── 010_pg_archivecleanup.pl
│ ├── pg_basebackup/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_basebackup.c
│ │ ├── pg_receivewal.c
│ │ ├── pg_recvlogical.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── receivelog.c
│ │ ├── receivelog.h
│ │ ├── streamutil.c
│ │ ├── streamutil.h
│ │ ├── t/
│ │ │ ├── 010_pg_basebackup.pl
│ │ │ ├── 020_pg_receivewal.pl
│ │ │ └── 030_pg_recvlogical.pl
│ │ ├── walmethods.c
│ │ └── walmethods.h
│ ├── pg_config/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_config.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── nb.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ro.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── ta.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ ├── zh_CN.po
│ │ │ └── zh_TW.po
│ │ └── t/
│ │ └── 001_pg_config.pl
│ ├── pg_controldata/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_controldata.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ └── 001_pg_controldata.pl
│ ├── pg_ctl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_ctl.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ ├── 001_start_stop.pl
│ │ ├── 002_status.pl
│ │ └── 003_promote.pl
│ ├── pg_dump/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── common.c
│ │ ├── compress_io.c
│ │ ├── compress_io.h
│ │ ├── dumputils.c
│ │ ├── dumputils.h
│ │ ├── nls.mk
│ │ ├── parallel.c
│ │ ├── parallel.h
│ │ ├── pg_backup.h
│ │ ├── pg_backup_archiver.c
│ │ ├── pg_backup_archiver.h
│ │ ├── pg_backup_custom.c
│ │ ├── pg_backup_db.c
│ │ ├── pg_backup_db.h
│ │ ├── pg_backup_directory.c
│ │ ├── pg_backup_null.c
│ │ ├── pg_backup_tar.c
│ │ ├── pg_backup_tar.h
│ │ ├── pg_backup_utils.c
│ │ ├── pg_backup_utils.h
│ │ ├── pg_dump.c
│ │ ├── pg_dump.h
│ │ ├── pg_dump_sort.c
│ │ ├── pg_dumpall.c
│ │ ├── pg_restore.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ ├── 001_basic.pl
│ │ ├── 002_pg_dump.pl
│ │ └── 010_dump_connstr.pl
│ ├── pg_resetwal/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_resetwal.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ └── t/
│ │ ├── 001_basic.pl
│ │ └── 002_corrupted.pl
│ ├── pg_rewind/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── copy_fetch.c
│ │ ├── datapagemap.c
│ │ ├── datapagemap.h
│ │ ├── fetch.c
│ │ ├── fetch.h
│ │ ├── file_ops.c
│ │ ├── file_ops.h
│ │ ├── filemap.c
│ │ ├── filemap.h
│ │ ├── libpq_fetch.c
│ │ ├── logging.c
│ │ ├── logging.h
│ │ ├── nls.mk
│ │ ├── parsexlog.c
│ │ ├── pg_rewind.c
│ │ ├── pg_rewind.h
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ ├── t/
│ │ │ ├── 001_basic.pl
│ │ │ ├── 002_databases.pl
│ │ │ ├── 003_extrafiles.pl
│ │ │ ├── 004_pg_xlog_symlink.pl
│ │ │ ├── 005_same_timeline.pl
│ │ │ └── RewindTest.pm
│ │ └── timeline.c
│ ├── pg_test_fsync/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_test_fsync.c
│ │ └── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ ├── vi.po
│ │ └── zh_CN.po
│ ├── pg_test_timing/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_test_timing.c
│ │ └── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ ├── vi.po
│ │ └── zh_CN.po
│ ├── pg_upgrade/
│ │ ├── .gitignore
│ │ ├── IMPLEMENTATION
│ │ ├── Makefile
│ │ ├── TESTING
│ │ ├── check.c
│ │ ├── controldata.c
│ │ ├── dump.c
│ │ ├── exec.c
│ │ ├── file.c
│ │ ├── function.c
│ │ ├── info.c
│ │ ├── nls.mk
│ │ ├── option.c
│ │ ├── parallel.c
│ │ ├── pg_upgrade.c
│ │ ├── pg_upgrade.h
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ ├── relfilenode.c
│ │ ├── server.c
│ │ ├── tablespace.c
│ │ ├── test.sh
│ │ ├── util.c
│ │ └── version.c
│ ├── pg_verify_checksums/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── nls.mk
│ │ ├── pg_verify_checksums.c
│ │ └── po/
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── pg_waldump/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── compat.c
│ │ ├── nls.mk
│ │ ├── pg_waldump.c
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── rmgrdesc.c
│ │ └── rmgrdesc.h
│ ├── pgbench/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── exprparse.y
│ │ ├── exprscan.l
│ │ ├── pgbench.c
│ │ ├── pgbench.h
│ │ └── t/
│ │ ├── 001_pgbench_with_server.pl
│ │ └── 002_pgbench_no_server.pl
│ ├── pgevent/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── exports.txt
│ │ ├── pgevent.c
│ │ ├── pgevent.def
│ │ ├── pgmsgevent.h
│ │ ├── pgmsgevent.mc
│ │ └── pgmsgevent.rc
│ ├── psql/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── command.c
│ │ ├── command.h
│ │ ├── common.c
│ │ ├── common.h
│ │ ├── copy.c
│ │ ├── copy.h
│ │ ├── create_help.pl
│ │ ├── crosstabview.c
│ │ ├── crosstabview.h
│ │ ├── describe.c
│ │ ├── describe.h
│ │ ├── help.c
│ │ ├── help.h
│ │ ├── input.c
│ │ ├── input.h
│ │ ├── large_obj.c
│ │ ├── large_obj.h
│ │ ├── mainloop.c
│ │ ├── mainloop.h
│ │ ├── nls.mk
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── he.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ └── zh_CN.po
│ │ ├── prompt.c
│ │ ├── prompt.h
│ │ ├── psqlrc.sample
│ │ ├── psqlscanslash.h
│ │ ├── psqlscanslash.l
│ │ ├── settings.h
│ │ ├── startup.c
│ │ ├── stringutils.c
│ │ ├── stringutils.h
│ │ ├── tab-complete.c
│ │ ├── tab-complete.h
│ │ ├── variables.c
│ │ └── variables.h
│ └── scripts/
│ ├── .gitignore
│ ├── Makefile
│ ├── clusterdb.c
│ ├── common.c
│ ├── common.h
│ ├── createdb.c
│ ├── createuser.c
│ ├── dropdb.c
│ ├── dropuser.c
│ ├── nls.mk
│ ├── pg_isready.c
│ ├── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── he.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── pt_BR.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── reindexdb.c
│ ├── t/
│ │ ├── 010_clusterdb.pl
│ │ ├── 011_clusterdb_all.pl
│ │ ├── 020_createdb.pl
│ │ ├── 040_createuser.pl
│ │ ├── 050_dropdb.pl
│ │ ├── 070_dropuser.pl
│ │ ├── 080_pg_isready.pl
│ │ ├── 090_reindexdb.pl
│ │ ├── 091_reindexdb_all.pl
│ │ ├── 100_vacuumdb.pl
│ │ ├── 101_vacuumdb_all.pl
│ │ ├── 102_vacuumdb_stages.pl
│ │ └── 200_connstr.pl
│ └── vacuumdb.c
├── common/
│ ├── Makefile
│ ├── base64.c
│ ├── config_info.c
│ ├── controldata_utils.c
│ ├── exec.c
│ ├── fe_memutils.c
│ ├── file_perm.c
│ ├── file_utils.c
│ ├── ip.c
│ ├── keywords.c
│ ├── md5.c
│ ├── pg_lzcompress.c
│ ├── pgfnames.c
│ ├── psprintf.c
│ ├── relpath.c
│ ├── restricted_token.c
│ ├── rmtree.c
│ ├── saslprep.c
│ ├── scram-common.c
│ ├── sha2.c
│ ├── sha2_openssl.c
│ ├── string.c
│ ├── unicode/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── generate-norm_test_table.pl
│ │ ├── generate-unicode_norm_table.pl
│ │ └── norm_test.c
│ ├── unicode_norm.c
│ ├── username.c
│ └── wait_error.c
├── fe_utils/
│ ├── .gitignore
│ ├── Makefile
│ ├── conditional.c
│ ├── mbprint.c
│ ├── print.c
│ ├── psqlscan.l
│ ├── simple_list.c
│ └── string_utils.c
├── include/
│ ├── .gitignore
│ ├── Makefile
│ ├── access/
│ │ ├── amapi.h
│ │ ├── amvalidate.h
│ │ ├── attnum.h
│ │ ├── brin.h
│ │ ├── brin_internal.h
│ │ ├── brin_page.h
│ │ ├── brin_pageops.h
│ │ ├── brin_revmap.h
│ │ ├── brin_tuple.h
│ │ ├── brin_xlog.h
│ │ ├── bufmask.h
│ │ ├── clog.h
│ │ ├── commit_ts.h
│ │ ├── genam.h
│ │ ├── generic_xlog.h
│ │ ├── gin.h
│ │ ├── gin_private.h
│ │ ├── ginblock.h
│ │ ├── ginxlog.h
│ │ ├── gist.h
│ │ ├── gist_private.h
│ │ ├── gistscan.h
│ │ ├── gistxlog.h
│ │ ├── hash.h
│ │ ├── hash_xlog.h
│ │ ├── heapam.h
│ │ ├── heapam_xlog.h
│ │ ├── hio.h
│ │ ├── htup.h
│ │ ├── htup_details.h
│ │ ├── itup.h
│ │ ├── multixact.h
│ │ ├── nbtree.h
│ │ ├── nbtxlog.h
│ │ ├── parallel.h
│ │ ├── printsimple.h
│ │ ├── printtup.h
│ │ ├── reloptions.h
│ │ ├── relscan.h
│ │ ├── remote_dml.h
│ │ ├── remote_meta.h
│ │ ├── remote_xact.h
│ │ ├── remotetup.h
│ │ ├── rewriteheap.h
│ │ ├── rmgr.h
│ │ ├── rmgrlist.h
│ │ ├── sdir.h
│ │ ├── session.h
│ │ ├── skey.h
│ │ ├── slru.h
│ │ ├── spgist.h
│ │ ├── spgist_private.h
│ │ ├── spgxlog.h
│ │ ├── stratnum.h
│ │ ├── subtrans.h
│ │ ├── sysattr.h
│ │ ├── timeline.h
│ │ ├── transam.h
│ │ ├── tsmapi.h
│ │ ├── tupconvert.h
│ │ ├── tupdesc.h
│ │ ├── tupdesc_details.h
│ │ ├── tupmacs.h
│ │ ├── tuptoaster.h
│ │ ├── twophase.h
│ │ ├── twophase_rmgr.h
│ │ ├── valid.h
│ │ ├── visibilitymap.h
│ │ ├── xact.h
│ │ ├── xlog.h
│ │ ├── xlog_internal.h
│ │ ├── xlogdefs.h
│ │ ├── xloginsert.h
│ │ ├── xlogreader.h
│ │ ├── xlogrecord.h
│ │ └── xlogutils.h
│ ├── bootstrap/
│ │ └── bootstrap.h
│ ├── c.h
│ ├── catalog/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── binary_upgrade.h
│ │ ├── catalog.h
│ │ ├── catversion.h
│ │ ├── dependency.h
│ │ ├── duplicate_oids
│ │ ├── genbki.h
│ │ ├── heap.h
│ │ ├── index.h
│ │ ├── indexing.h
│ │ ├── namespace.h
│ │ ├── objectaccess.h
│ │ ├── objectaddress.h
│ │ ├── opfam_internal.h
│ │ ├── partition.h
│ │ ├── pg_aggregate.h
│ │ ├── pg_am.h
│ │ ├── pg_amop.h
│ │ ├── pg_amproc.h
│ │ ├── pg_attrdef.h
│ │ ├── pg_attribute.h
│ │ ├── pg_auth_members.h
│ │ ├── pg_authid.h
│ │ ├── pg_cast.h
│ │ ├── pg_class.h
│ │ ├── pg_cluster_meta.h
│ │ ├── pg_cluster_meta_nodes.h
│ │ ├── pg_collation.h
│ │ ├── pg_computing_node_stat.h
│ │ ├── pg_constraint.h
│ │ ├── pg_control.h
│ │ ├── pg_conversion.h
│ │ ├── pg_database.h
│ │ ├── pg_db_role_setting.h
│ │ ├── pg_ddl_log_progress.h
│ │ ├── pg_default_acl.h
│ │ ├── pg_depend.h
│ │ ├── pg_description.h
│ │ ├── pg_enum.h
│ │ ├── pg_event_trigger.h
│ │ ├── pg_extension.h
│ │ ├── pg_foreign_data_wrapper.h
│ │ ├── pg_foreign_server.h
│ │ ├── pg_foreign_table.h
│ │ ├── pg_index.h
│ │ ├── pg_inherits.h
│ │ ├── pg_init_privs.h
│ │ ├── pg_language.h
│ │ ├── pg_largeobject.h
│ │ ├── pg_largeobject_metadata.h
│ │ ├── pg_namespace.h
│ │ ├── pg_opclass.h
│ │ ├── pg_operator.h
│ │ ├── pg_opfamily.h
│ │ ├── pg_partitioned_table.h
│ │ ├── pg_pltemplate.h
│ │ ├── pg_policy.h
│ │ ├── pg_proc.h
│ │ ├── pg_proc_map.h
│ │ ├── pg_publication.h
│ │ ├── pg_publication_rel.h
│ │ ├── pg_range.h
│ │ ├── pg_replication_origin.h
│ │ ├── pg_rewrite.h
│ │ ├── pg_seclabel.h
│ │ ├── pg_sequence.h
│ │ ├── pg_shard.h
│ │ ├── pg_shard_node.h
│ │ ├── pg_shdepend.h
│ │ ├── pg_shdescription.h
│ │ ├── pg_shseclabel.h
│ │ ├── pg_statistic.h
│ │ ├── pg_statistic_ext.h
│ │ ├── pg_subscription.h
│ │ ├── pg_subscription_rel.h
│ │ ├── pg_tablespace.h
│ │ ├── pg_transform.h
│ │ ├── pg_trigger.h
│ │ ├── pg_ts_config.h
│ │ ├── pg_ts_config_map.h
│ │ ├── pg_ts_dict.h
│ │ ├── pg_ts_parser.h
│ │ ├── pg_ts_template.h
│ │ ├── pg_type.h
│ │ ├── pg_type_map.h
│ │ ├── pg_user_mapping.h
│ │ ├── reformat_dat_file.pl
│ │ ├── storage.h
│ │ ├── storage_xlog.h
│ │ ├── toasting.h
│ │ └── unused_oids
│ ├── commands/
│ │ ├── alter.h
│ │ ├── async.h
│ │ ├── cluster.h
│ │ ├── collationcmds.h
│ │ ├── comment.h
│ │ ├── conversioncmds.h
│ │ ├── copy.h
│ │ ├── createas.h
│ │ ├── dbcommands.h
│ │ ├── dbcommands_xlog.h
│ │ ├── defrem.h
│ │ ├── discard.h
│ │ ├── event_trigger.h
│ │ ├── explain.h
│ │ ├── extension.h
│ │ ├── lockcmds.h
│ │ ├── matview.h
│ │ ├── policy.h
│ │ ├── portalcmds.h
│ │ ├── prepare.h
│ │ ├── proclang.h
│ │ ├── progress.h
│ │ ├── publicationcmds.h
│ │ ├── schemacmds.h
│ │ ├── seclabel.h
│ │ ├── sequence.h
│ │ ├── subscriptioncmds.h
│ │ ├── tablecmds.h
│ │ ├── tablespace.h
│ │ ├── trigger.h
│ │ ├── typecmds.h
│ │ ├── user.h
│ │ ├── vacuum.h
│ │ ├── variable.h
│ │ └── view.h
│ ├── common/
│ │ ├── base64.h
│ │ ├── config_info.h
│ │ ├── controldata_utils.h
│ │ ├── fe_memutils.h
│ │ ├── file_perm.h
│ │ ├── file_utils.h
│ │ ├── int.h
│ │ ├── int128.h
│ │ ├── ip.h
│ │ ├── keywords.h
│ │ ├── md5.h
│ │ ├── pg_lzcompress.h
│ │ ├── relpath.h
│ │ ├── restricted_token.h
│ │ ├── saslprep.h
│ │ ├── scram-common.h
│ │ ├── sha2.h
│ │ ├── string.h
│ │ ├── unicode_norm.h
│ │ ├── unicode_norm_table.h
│ │ └── username.h
│ ├── datatype/
│ │ └── timestamp.h
│ ├── executor/
│ │ ├── execExpr.h
│ │ ├── execParallel.h
│ │ ├── execPartition.h
│ │ ├── execRemote.h
│ │ ├── execdebug.h
│ │ ├── execdesc.h
│ │ ├── executor.h
│ │ ├── functions.h
│ │ ├── hashjoin.h
│ │ ├── instrument.h
│ │ ├── nodeAgg.h
│ │ ├── nodeAppend.h
│ │ ├── nodeBitmapAnd.h
│ │ ├── nodeBitmapHeapscan.h
│ │ ├── nodeBitmapIndexscan.h
│ │ ├── nodeBitmapOr.h
│ │ ├── nodeCtescan.h
│ │ ├── nodeCustom.h
│ │ ├── nodeForeignscan.h
│ │ ├── nodeFunctionscan.h
│ │ ├── nodeGather.h
│ │ ├── nodeGatherMerge.h
│ │ ├── nodeGroup.h
│ │ ├── nodeHash.h
│ │ ├── nodeHashjoin.h
│ │ ├── nodeIndexonlyscan.h
│ │ ├── nodeIndexscan.h
│ │ ├── nodeLimit.h
│ │ ├── nodeLockRows.h
│ │ ├── nodeMaterial.h
│ │ ├── nodeMergeAppend.h
│ │ ├── nodeMergejoin.h
│ │ ├── nodeModifyTable.h
│ │ ├── nodeNamedtuplestorescan.h
│ │ ├── nodeNestloop.h
│ │ ├── nodeProjectSet.h
│ │ ├── nodeRecursiveunion.h
│ │ ├── nodeRemotescan.h
│ │ ├── nodeResult.h
│ │ ├── nodeSamplescan.h
│ │ ├── nodeSeqscan.h
│ │ ├── nodeSetOp.h
│ │ ├── nodeSort.h
│ │ ├── nodeSubplan.h
│ │ ├── nodeSubqueryscan.h
│ │ ├── nodeTableFuncscan.h
│ │ ├── nodeTidscan.h
│ │ ├── nodeUnique.h
│ │ ├── nodeValuesscan.h
│ │ ├── nodeWindowAgg.h
│ │ ├── nodeWorktablescan.h
│ │ ├── remoteScanUtils.h
│ │ ├── spi.h
│ │ ├── spi_priv.h
│ │ ├── tablefunc.h
│ │ ├── tqueue.h
│ │ ├── tstoreReceiver.h
│ │ └── tuptable.h
│ ├── fe_utils/
│ │ ├── conditional.h
│ │ ├── connect.h
│ │ ├── mbprint.h
│ │ ├── print.h
│ │ ├── psqlscan.h
│ │ ├── psqlscan_int.h
│ │ ├── simple_list.h
│ │ └── string_utils.h
│ ├── fmgr.h
│ ├── foreign/
│ │ ├── fdwapi.h
│ │ └── foreign.h
│ ├── funcapi.h
│ ├── getaddrinfo.h
│ ├── getopt_long.h
│ ├── jit/
│ │ ├── jit.h
│ │ ├── llvmjit.h
│ │ └── llvmjit_emit.h
│ ├── lib/
│ │ ├── binaryheap.h
│ │ ├── bipartite_match.h
│ │ ├── bloomfilter.h
│ │ ├── dshash.h
│ │ ├── hyperloglog.h
│ │ ├── ilist.h
│ │ ├── knapsack.h
│ │ ├── pairingheap.h
│ │ ├── rbtree.h
│ │ ├── simplehash.h
│ │ └── stringinfo.h
│ ├── libpq/
│ │ ├── auth.h
│ │ ├── be-fsstubs.h
│ │ ├── crypt.h
│ │ ├── hba.h
│ │ ├── ifaddr.h
│ │ ├── libpq-be.h
│ │ ├── libpq-fs.h
│ │ ├── libpq.h
│ │ ├── pqcomm.h
│ │ ├── pqformat.h
│ │ ├── pqmq.h
│ │ ├── pqsignal.h
│ │ └── scram.h
│ ├── mb/
│ │ └── pg_wchar.h
│ ├── miscadmin.h
│ ├── nodes/
│ │ ├── bitmapset.h
│ │ ├── execnodes.h
│ │ ├── extensible.h
│ │ ├── lockoptions.h
│ │ ├── makefuncs.h
│ │ ├── memnodes.h
│ │ ├── nodeFuncs.h
│ │ ├── nodes.h
│ │ ├── params.h
│ │ ├── parsenodes.h
│ │ ├── pg_list.h
│ │ ├── plannodes.h
│ │ ├── primnodes.h
│ │ ├── print.h
│ │ ├── readfuncs.h
│ │ ├── relation.h
│ │ ├── remote_input.h
│ │ ├── replnodes.h
│ │ ├── tidbitmap.h
│ │ └── value.h
│ ├── optimizer/
│ │ ├── clauses.h
│ │ ├── cost.h
│ │ ├── geqo.h
│ │ ├── geqo_copy.h
│ │ ├── geqo_gene.h
│ │ ├── geqo_misc.h
│ │ ├── geqo_mutation.h
│ │ ├── geqo_pool.h
│ │ ├── geqo_random.h
│ │ ├── geqo_recombination.h
│ │ ├── geqo_selection.h
│ │ ├── joininfo.h
│ │ ├── orclauses.h
│ │ ├── paramassign.h
│ │ ├── pathnode.h
│ │ ├── paths.h
│ │ ├── placeholder.h
│ │ ├── plancat.h
│ │ ├── planmain.h
│ │ ├── planner.h
│ │ ├── planremote.h
│ │ ├── predtest.h
│ │ ├── prep.h
│ │ ├── restrictinfo.h
│ │ ├── subselect.h
│ │ ├── tlist.h
│ │ └── var.h
│ ├── parser/
│ │ ├── .gitignore
│ │ ├── analyze.h
│ │ ├── gramparse.h
│ │ ├── kwlist.h
│ │ ├── parse_agg.h
│ │ ├── parse_clause.h
│ │ ├── parse_coerce.h
│ │ ├── parse_collate.h
│ │ ├── parse_cte.h
│ │ ├── parse_enr.h
│ │ ├── parse_expr.h
│ │ ├── parse_func.h
│ │ ├── parse_node.h
│ │ ├── parse_oper.h
│ │ ├── parse_param.h
│ │ ├── parse_relation.h
│ │ ├── parse_target.h
│ │ ├── parse_type.h
│ │ ├── parse_utilcmd.h
│ │ ├── parser.h
│ │ ├── parsetree.h
│ │ ├── scanner.h
│ │ └── scansup.h
│ ├── partitioning/
│ │ ├── partbounds.h
│ │ ├── partdefs.h
│ │ └── partprune.h
│ ├── pg_config.h.in
│ ├── pg_config.h.win32
│ ├── pg_config_ext.h.in
│ ├── pg_config_ext.h.win32
│ ├── pg_config_manual.h
│ ├── pg_getopt.h
│ ├── pg_trace.h
│ ├── pgstat.h
│ ├── pgtar.h
│ ├── pgtime.h
│ ├── port/
│ │ ├── aix.h
│ │ ├── atomics/
│ │ │ ├── arch-arm.h
│ │ │ ├── arch-hppa.h
│ │ │ ├── arch-ia64.h
│ │ │ ├── arch-ppc.h
│ │ │ ├── arch-x86.h
│ │ │ ├── fallback.h
│ │ │ ├── generic-acc.h
│ │ │ ├── generic-gcc.h
│ │ │ ├── generic-msvc.h
│ │ │ ├── generic-sunpro.h
│ │ │ ├── generic-xlc.h
│ │ │ └── generic.h
│ │ ├── atomics.h
│ │ ├── cygwin.h
│ │ ├── darwin.h
│ │ ├── freebsd.h
│ │ ├── hpux.h
│ │ ├── linux.h
│ │ ├── netbsd.h
│ │ ├── openbsd.h
│ │ ├── pg_bswap.h
│ │ ├── pg_crc32c.h
│ │ ├── solaris.h
│ │ ├── win32/
│ │ │ ├── arpa/
│ │ │ │ └── inet.h
│ │ │ ├── dlfcn.h
│ │ │ ├── grp.h
│ │ │ ├── netdb.h
│ │ │ ├── netinet/
│ │ │ │ └── in.h
│ │ │ ├── pwd.h
│ │ │ └── sys/
│ │ │ ├── socket.h
│ │ │ └── wait.h
│ │ ├── win32.h
│ │ ├── win32_msvc/
│ │ │ ├── dirent.h
│ │ │ ├── sys/
│ │ │ │ ├── file.h
│ │ │ │ ├── param.h
│ │ │ │ └── time.h
│ │ │ ├── unistd.h
│ │ │ └── utime.h
│ │ └── win32_port.h
│ ├── port.h
│ ├── port_config.h
│ ├── portability/
│ │ ├── instr_time.h
│ │ └── mem.h
│ ├── postgres.h
│ ├── postgres_ext.h
│ ├── postgres_fe.h
│ ├── postmaster/
│ │ ├── autovacuum.h
│ │ ├── bgworker.h
│ │ ├── bgworker_internals.h
│ │ ├── bgwriter.h
│ │ ├── fork_process.h
│ │ ├── pgarch.h
│ │ ├── postmaster.h
│ │ ├── startup.h
│ │ ├── syslogger.h
│ │ ├── walwriter.h
│ │ └── xidsender.h
│ ├── regex/
│ │ ├── regcustom.h
│ │ ├── regerrs.h
│ │ ├── regex.h
│ │ ├── regexport.h
│ │ └── regguts.h
│ ├── replication/
│ │ ├── basebackup.h
│ │ ├── decode.h
│ │ ├── logical.h
│ │ ├── logicalfuncs.h
│ │ ├── logicallauncher.h
│ │ ├── logicalproto.h
│ │ ├── logicalrelation.h
│ │ ├── logicalworker.h
│ │ ├── message.h
│ │ ├── origin.h
│ │ ├── output_plugin.h
│ │ ├── pgoutput.h
│ │ ├── reorderbuffer.h
│ │ ├── slot.h
│ │ ├── snapbuild.h
│ │ ├── syncrep.h
│ │ ├── walreceiver.h
│ │ ├── walsender.h
│ │ ├── walsender_private.h
│ │ └── worker_internal.h
│ ├── rewrite/
│ │ ├── prs2lock.h
│ │ ├── rewriteDefine.h
│ │ ├── rewriteHandler.h
│ │ ├── rewriteManip.h
│ │ ├── rewriteRemove.h
│ │ ├── rewriteSupport.h
│ │ └── rowsecurity.h
│ ├── rusagestub.h
│ ├── sharding/
│ │ ├── cluster_meta.h
│ │ ├── mat_cache.h
│ │ ├── mysql_vars.h
│ │ ├── sharding.h
│ │ └── sharding_conn.h
│ ├── snowball/
│ │ ├── header.h
│ │ └── libstemmer/
│ │ ├── api.h
│ │ ├── header.h
│ │ ├── stem_ISO_8859_1_danish.h
│ │ ├── stem_ISO_8859_1_dutch.h
│ │ ├── stem_ISO_8859_1_english.h
│ │ ├── stem_ISO_8859_1_finnish.h
│ │ ├── stem_ISO_8859_1_french.h
│ │ ├── stem_ISO_8859_1_german.h
│ │ ├── stem_ISO_8859_1_hungarian.h
│ │ ├── stem_ISO_8859_1_italian.h
│ │ ├── stem_ISO_8859_1_norwegian.h
│ │ ├── stem_ISO_8859_1_porter.h
│ │ ├── stem_ISO_8859_1_portuguese.h
│ │ ├── stem_ISO_8859_1_spanish.h
│ │ ├── stem_ISO_8859_1_swedish.h
│ │ ├── stem_ISO_8859_2_romanian.h
│ │ ├── stem_KOI8_R_russian.h
│ │ ├── stem_UTF_8_danish.h
│ │ ├── stem_UTF_8_dutch.h
│ │ ├── stem_UTF_8_english.h
│ │ ├── stem_UTF_8_finnish.h
│ │ ├── stem_UTF_8_french.h
│ │ ├── stem_UTF_8_german.h
│ │ ├── stem_UTF_8_hungarian.h
│ │ ├── stem_UTF_8_italian.h
│ │ ├── stem_UTF_8_norwegian.h
│ │ ├── stem_UTF_8_porter.h
│ │ ├── stem_UTF_8_portuguese.h
│ │ ├── stem_UTF_8_romanian.h
│ │ ├── stem_UTF_8_russian.h
│ │ ├── stem_UTF_8_spanish.h
│ │ ├── stem_UTF_8_swedish.h
│ │ └── stem_UTF_8_turkish.h
│ ├── statistics/
│ │ ├── extended_stats_internal.h
│ │ └── statistics.h
│ ├── storage/
│ │ ├── .gitignore
│ │ ├── backendid.h
│ │ ├── barrier.h
│ │ ├── block.h
│ │ ├── buf.h
│ │ ├── buf_internals.h
│ │ ├── buffile.h
│ │ ├── bufmgr.h
│ │ ├── bufpage.h
│ │ ├── checksum.h
│ │ ├── checksum_impl.h
│ │ ├── condition_variable.h
│ │ ├── copydir.h
│ │ ├── dsm.h
│ │ ├── dsm_impl.h
│ │ ├── fd.h
│ │ ├── freespace.h
│ │ ├── fsm_internals.h
│ │ ├── indexfsm.h
│ │ ├── ipc.h
│ │ ├── item.h
│ │ ├── itemid.h
│ │ ├── itemptr.h
│ │ ├── large_object.h
│ │ ├── latch.h
│ │ ├── lmgr.h
│ │ ├── lock.h
│ │ ├── lockdefs.h
│ │ ├── lwlock.h
│ │ ├── off.h
│ │ ├── pg_sema.h
│ │ ├── pg_shmem.h
│ │ ├── pmsignal.h
│ │ ├── predicate.h
│ │ ├── predicate_internals.h
│ │ ├── proc.h
│ │ ├── procarray.h
│ │ ├── proclist.h
│ │ ├── proclist_types.h
│ │ ├── procsignal.h
│ │ ├── reinit.h
│ │ ├── relfilenode.h
│ │ ├── s_lock.h
│ │ ├── sharedfileset.h
│ │ ├── shm_mq.h
│ │ ├── shm_toc.h
│ │ ├── shmalloc.h
│ │ ├── shmem.h
│ │ ├── sinval.h
│ │ ├── sinvaladt.h
│ │ ├── smgr.h
│ │ ├── spin.h
│ │ ├── standby.h
│ │ └── standbydefs.h
│ ├── tcop/
│ │ ├── debug_funcs.h
│ │ ├── debug_injection.h
│ │ ├── deparse_utility.h
│ │ ├── dest.h
│ │ ├── fastpath.h
│ │ ├── pquery.h
│ │ ├── runtime.h
│ │ ├── tcopprot.h
│ │ └── utility.h
│ ├── tsearch/
│ │ ├── dicts/
│ │ │ ├── regis.h
│ │ │ └── spell.h
│ │ ├── ts_cache.h
│ │ ├── ts_locale.h
│ │ ├── ts_public.h
│ │ ├── ts_type.h
│ │ └── ts_utils.h
│ ├── utils/
│ │ ├── .gitignore
│ │ ├── acl.h
│ │ ├── aclchk_internal.h
│ │ ├── algos.h
│ │ ├── array.h
│ │ ├── arrayaccess.h
│ │ ├── ascii.h
│ │ ├── attoptcache.h
│ │ ├── backend_random.h
│ │ ├── builtins.h
│ │ ├── bytea.h
│ │ ├── cash.h
│ │ ├── catcache.h
│ │ ├── combocid.h
│ │ ├── date.h
│ │ ├── datetime.h
│ │ ├── datum.h
│ │ ├── dsa.h
│ │ ├── dynahash.h
│ │ ├── dynamic_loader.h
│ │ ├── elog.h
│ │ ├── evtcache.h
│ │ ├── expandeddatum.h
│ │ ├── expandedrecord.h
│ │ ├── fmgrtab.h
│ │ ├── formatting.h
│ │ ├── freepage.h
│ │ ├── geo_decls.h
│ │ ├── guc.h
│ │ ├── guc_tables.h
│ │ ├── hashutils.h
│ │ ├── help_config.h
│ │ ├── hsearch.h
│ │ ├── index_selfuncs.h
│ │ ├── inet.h
│ │ ├── int8.h
│ │ ├── inval.h
│ │ ├── json.h
│ │ ├── jsonapi.h
│ │ ├── jsonb.h
│ │ ├── logtape.h
│ │ ├── lsyscache.h
│ │ ├── memdebug.h
│ │ ├── memutils.h
│ │ ├── nabstime.h
│ │ ├── numeric.h
│ │ ├── palloc.h
│ │ ├── partcache.h
│ │ ├── pg_crc.h
│ │ ├── pg_locale.h
│ │ ├── pg_lsn.h
│ │ ├── pg_rusage.h
│ │ ├── pidfile.h
│ │ ├── plancache.h
│ │ ├── portal.h
│ │ ├── ps_status.h
│ │ ├── queryenvironment.h
│ │ ├── rangetypes.h
│ │ ├── regproc.h
│ │ ├── rel.h
│ │ ├── relcache.h
│ │ ├── relfilenodemap.h
│ │ ├── relmapper.h
│ │ ├── relptr.h
│ │ ├── reltrigger.h
│ │ ├── resowner.h
│ │ ├── resowner_private.h
│ │ ├── rls.h
│ │ ├── ruleutils.h
│ │ ├── sampling.h
│ │ ├── selfuncs.h
│ │ ├── sharedtuplestore.h
│ │ ├── snapmgr.h
│ │ ├── snapshot.h
│ │ ├── sortsupport.h
│ │ ├── spccache.h
│ │ ├── syscache.h
│ │ ├── timeout.h
│ │ ├── timestamp.h
│ │ ├── tqual.h
│ │ ├── tuplesort.h
│ │ ├── tuplestore.h
│ │ ├── typcache.h
│ │ ├── tzparser.h
│ │ ├── uuid.h
│ │ ├── varbit.h
│ │ ├── varlena.h
│ │ └── xml.h
│ └── windowapi.h
├── interfaces/
│ ├── Makefile
│ ├── ecpg/
│ │ ├── Makefile
│ │ ├── README.dynSQL
│ │ ├── compatlib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── exports.txt
│ │ │ └── informix.c
│ │ ├── ecpglib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── connect.c
│ │ │ ├── data.c
│ │ │ ├── descriptor.c
│ │ │ ├── error.c
│ │ │ ├── execute.c
│ │ │ ├── exports.txt
│ │ │ ├── extern.h
│ │ │ ├── memory.c
│ │ │ ├── misc.c
│ │ │ ├── nls.mk
│ │ │ ├── po/
│ │ │ │ ├── cs.po
│ │ │ │ ├── de.po
│ │ │ │ ├── es.po
│ │ │ │ ├── fr.po
│ │ │ │ ├── it.po
│ │ │ │ ├── ja.po
│ │ │ │ ├── ko.po
│ │ │ │ ├── pl.po
│ │ │ │ ├── pt_BR.po
│ │ │ │ ├── ru.po
│ │ │ │ ├── sv.po
│ │ │ │ ├── tr.po
│ │ │ │ ├── vi.po
│ │ │ │ └── zh_CN.po
│ │ │ ├── prepare.c
│ │ │ ├── sqlda.c
│ │ │ └── typename.c
│ │ ├── include/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── datetime.h
│ │ │ ├── decimal.h
│ │ │ ├── ecpg-pthread-win32.h
│ │ │ ├── ecpg_config.h.in
│ │ │ ├── ecpg_informix.h
│ │ │ ├── ecpgerrno.h
│ │ │ ├── ecpglib.h
│ │ │ ├── ecpgtype.h
│ │ │ ├── pgtypes.h
│ │ │ ├── pgtypes_date.h
│ │ │ ├── pgtypes_error.h
│ │ │ ├── pgtypes_interval.h
│ │ │ ├── pgtypes_numeric.h
│ │ │ ├── pgtypes_timestamp.h
│ │ │ ├── sql3types.h
│ │ │ ├── sqlca.h
│ │ │ ├── sqlda-compat.h
│ │ │ ├── sqlda-native.h
│ │ │ ├── sqlda.h
│ │ │ └── sqltypes.h
│ │ ├── pgtypeslib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── common.c
│ │ │ ├── datetime.c
│ │ │ ├── dt.h
│ │ │ ├── dt_common.c
│ │ │ ├── exports.txt
│ │ │ ├── extern.h
│ │ │ ├── interval.c
│ │ │ ├── numeric.c
│ │ │ └── timestamp.c
│ │ ├── preproc/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README.parser
│ │ │ ├── c_keywords.c
│ │ │ ├── check_rules.pl
│ │ │ ├── descriptor.c
│ │ │ ├── ecpg.addons
│ │ │ ├── ecpg.c
│ │ │ ├── ecpg.header
│ │ │ ├── ecpg.tokens
│ │ │ ├── ecpg.trailer
│ │ │ ├── ecpg.type
│ │ │ ├── ecpg_keywords.c
│ │ │ ├── extern.h
│ │ │ ├── keywords.c
│ │ │ ├── nls.mk
│ │ │ ├── output.c
│ │ │ ├── parse.pl
│ │ │ ├── parser.c
│ │ │ ├── pgc.l
│ │ │ ├── po/
│ │ │ │ ├── cs.po
│ │ │ │ ├── de.po
│ │ │ │ ├── es.po
│ │ │ │ ├── fr.po
│ │ │ │ ├── it.po
│ │ │ │ ├── ja.po
│ │ │ │ ├── ko.po
│ │ │ │ ├── pl.po
│ │ │ │ ├── pt_BR.po
│ │ │ │ ├── ru.po
│ │ │ │ ├── sv.po
│ │ │ │ ├── tr.po
│ │ │ │ ├── vi.po
│ │ │ │ ├── zh_CN.po
│ │ │ │ └── zh_TW.po
│ │ │ ├── type.c
│ │ │ ├── type.h
│ │ │ └── variable.c
│ │ └── test/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── Makefile.regress
│ │ ├── compat_informix/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── charfuncs.pgc
│ │ │ ├── dec_test.pgc
│ │ │ ├── describe.pgc
│ │ │ ├── rfmtdate.pgc
│ │ │ ├── rfmtlong.pgc
│ │ │ ├── rnull.pgc
│ │ │ ├── sqlda.pgc
│ │ │ ├── test_informix.pgc
│ │ │ └── test_informix2.pgc
│ │ ├── compat_oracle/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ └── char_array.pgc
│ │ ├── connect/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── test1.pgc
│ │ │ ├── test2.pgc
│ │ │ ├── test3.pgc
│ │ │ ├── test4.pgc
│ │ │ └── test5.pgc
│ │ ├── ecpg_schedule
│ │ ├── expected/
│ │ │ ├── compat_informix-charfuncs.c
│ │ │ ├── compat_informix-charfuncs.stderr
│ │ │ ├── compat_informix-charfuncs.stdout
│ │ │ ├── compat_informix-dec_test-MinGW32.stdout
│ │ │ ├── compat_informix-dec_test.c
│ │ │ ├── compat_informix-dec_test.stderr
│ │ │ ├── compat_informix-dec_test.stdout
│ │ │ ├── compat_informix-describe.c
│ │ │ ├── compat_informix-describe.stderr
│ │ │ ├── compat_informix-describe.stdout
│ │ │ ├── compat_informix-rfmtdate.c
│ │ │ ├── compat_informix-rfmtdate.stderr
│ │ │ ├── compat_informix-rfmtdate.stdout
│ │ │ ├── compat_informix-rfmtlong.c
│ │ │ ├── compat_informix-rfmtlong.stderr
│ │ │ ├── compat_informix-rfmtlong.stdout
│ │ │ ├── compat_informix-rnull.c
│ │ │ ├── compat_informix-rnull.stderr
│ │ │ ├── compat_informix-rnull.stdout
│ │ │ ├── compat_informix-sqlda.c
│ │ │ ├── compat_informix-sqlda.stderr
│ │ │ ├── compat_informix-sqlda.stdout
│ │ │ ├── compat_informix-test_informix.c
│ │ │ ├── compat_informix-test_informix.stderr
│ │ │ ├── compat_informix-test_informix.stdout
│ │ │ ├── compat_informix-test_informix2.c
│ │ │ ├── compat_informix-test_informix2.stderr
│ │ │ ├── compat_informix-test_informix2.stdout
│ │ │ ├── compat_oracle-char_array.c
│ │ │ ├── compat_oracle-char_array.stderr
│ │ │ ├── compat_oracle-char_array.stdout
│ │ │ ├── connect-test1-minGW32.stderr
│ │ │ ├── connect-test1.c
│ │ │ ├── connect-test1.stderr
│ │ │ ├── connect-test1.stdout
│ │ │ ├── connect-test2.c
│ │ │ ├── connect-test2.stderr
│ │ │ ├── connect-test2.stdout
│ │ │ ├── connect-test3.c
│ │ │ ├── connect-test3.stderr
│ │ │ ├── connect-test3.stdout
│ │ │ ├── connect-test4.c
│ │ │ ├── connect-test4.stderr
│ │ │ ├── connect-test4.stdout
│ │ │ ├── connect-test5.c
│ │ │ ├── connect-test5.stderr
│ │ │ ├── connect-test5.stdout
│ │ │ ├── pgtypeslib-dt_test.c
│ │ │ ├── pgtypeslib-dt_test.stderr
│ │ │ ├── pgtypeslib-dt_test.stdout
│ │ │ ├── pgtypeslib-dt_test2.c
│ │ │ ├── pgtypeslib-dt_test2.stderr
│ │ │ ├── pgtypeslib-dt_test2.stdout
│ │ │ ├── pgtypeslib-nan_test.c
│ │ │ ├── pgtypeslib-nan_test.stderr
│ │ │ ├── pgtypeslib-nan_test.stdout
│ │ │ ├── pgtypeslib-num_test-MinGW32.stdout
│ │ │ ├── pgtypeslib-num_test.c
│ │ │ ├── pgtypeslib-num_test.stderr
│ │ │ ├── pgtypeslib-num_test.stdout
│ │ │ ├── pgtypeslib-num_test2-MinGW32.stdout
│ │ │ ├── pgtypeslib-num_test2.c
│ │ │ ├── pgtypeslib-num_test2.stderr
│ │ │ ├── pgtypeslib-num_test2.stdout
│ │ │ ├── preproc-array_of_struct.c
│ │ │ ├── preproc-array_of_struct.stderr
│ │ │ ├── preproc-array_of_struct.stdout
│ │ │ ├── preproc-autoprep.c
│ │ │ ├── preproc-autoprep.stderr
│ │ │ ├── preproc-autoprep.stdout
│ │ │ ├── preproc-comment.c
│ │ │ ├── preproc-comment.stderr
│ │ │ ├── preproc-comment.stdout
│ │ │ ├── preproc-cursor.c
│ │ │ ├── preproc-cursor.stderr
│ │ │ ├── preproc-cursor.stdout
│ │ │ ├── preproc-define.c
│ │ │ ├── preproc-define.stderr
│ │ │ ├── preproc-define.stdout
│ │ │ ├── preproc-describe.c
│ │ │ ├── preproc-describe.stderr
│ │ │ ├── preproc-describe.stdout
│ │ │ ├── preproc-init.c
│ │ │ ├── preproc-init.stderr
│ │ │ ├── preproc-init.stdout
│ │ │ ├── preproc-outofscope.c
│ │ │ ├── preproc-outofscope.stderr
│ │ │ ├── preproc-outofscope.stdout
│ │ │ ├── preproc-pointer_to_struct.c
│ │ │ ├── preproc-pointer_to_struct.stderr
│ │ │ ├── preproc-pointer_to_struct.stdout
│ │ │ ├── preproc-strings.c
│ │ │ ├── preproc-strings.stderr
│ │ │ ├── preproc-strings.stdout
│ │ │ ├── preproc-type.c
│ │ │ ├── preproc-type.stderr
│ │ │ ├── preproc-type.stdout
│ │ │ ├── preproc-variable.c
│ │ │ ├── preproc-variable.stderr
│ │ │ ├── preproc-variable.stdout
│ │ │ ├── preproc-whenever.c
│ │ │ ├── preproc-whenever.stderr
│ │ │ ├── preproc-whenever.stdout
│ │ │ ├── preproc-whenever_do_continue.c
│ │ │ ├── preproc-whenever_do_continue.stderr
│ │ │ ├── preproc-whenever_do_continue.stdout
│ │ │ ├── sql-array.c
│ │ │ ├── sql-array.stderr
│ │ │ ├── sql-array.stdout
│ │ │ ├── sql-binary.c
│ │ │ ├── sql-binary.stderr
│ │ │ ├── sql-binary.stdout
│ │ │ ├── sql-code100.c
│ │ │ ├── sql-code100.stderr
│ │ │ ├── sql-code100.stdout
│ │ │ ├── sql-copystdout.c
│ │ │ ├── sql-copystdout.stderr
│ │ │ ├── sql-copystdout.stdout
│ │ │ ├── sql-createtableas.c
│ │ │ ├── sql-createtableas.stderr
│ │ │ ├── sql-createtableas.stdout
│ │ │ ├── sql-define.c
│ │ │ ├── sql-define.stderr
│ │ │ ├── sql-define.stdout
│ │ │ ├── sql-desc.c
│ │ │ ├── sql-desc.stderr
│ │ │ ├── sql-desc.stdout
│ │ │ ├── sql-describe.c
│ │ │ ├── sql-describe.stderr
│ │ │ ├── sql-describe.stdout
│ │ │ ├── sql-dynalloc.c
│ │ │ ├── sql-dynalloc.stderr
│ │ │ ├── sql-dynalloc.stdout
│ │ │ ├── sql-dynalloc2.c
│ │ │ ├── sql-dynalloc2.stderr
│ │ │ ├── sql-dynalloc2.stdout
│ │ │ ├── sql-dyntest.c
│ │ │ ├── sql-dyntest.stderr
│ │ │ ├── sql-dyntest.stdout
│ │ │ ├── sql-execute.c
│ │ │ ├── sql-execute.stderr
│ │ │ ├── sql-execute.stdout
│ │ │ ├── sql-fetch.c
│ │ │ ├── sql-fetch.stderr
│ │ │ ├── sql-fetch.stdout
│ │ │ ├── sql-func.c
│ │ │ ├── sql-func.stderr
│ │ │ ├── sql-func.stdout
│ │ │ ├── sql-indicators.c
│ │ │ ├── sql-indicators.stderr
│ │ │ ├── sql-indicators.stdout
│ │ │ ├── sql-insupd.c
│ │ │ ├── sql-insupd.stderr
│ │ │ ├── sql-insupd.stdout
│ │ │ ├── sql-oldexec.c
│ │ │ ├── sql-oldexec.stderr
│ │ │ ├── sql-oldexec.stdout
│ │ │ ├── sql-parser.c
│ │ │ ├── sql-parser.stderr
│ │ │ ├── sql-parser.stdout
│ │ │ ├── sql-quote.c
│ │ │ ├── sql-quote.stderr
│ │ │ ├── sql-quote.stdout
│ │ │ ├── sql-show.c
│ │ │ ├── sql-show.stderr
│ │ │ ├── sql-show.stdout
│ │ │ ├── sql-sqlda.c
│ │ │ ├── sql-sqlda.stderr
│ │ │ ├── sql-sqlda.stdout
│ │ │ ├── sql-twophase.c
│ │ │ ├── sql-twophase.stderr
│ │ │ ├── sql-twophase.stdout
│ │ │ ├── thread-alloc.c
│ │ │ ├── thread-alloc.stderr
│ │ │ ├── thread-alloc.stdout
│ │ │ ├── thread-alloc_2.stdout
│ │ │ ├── thread-descriptor.c
│ │ │ ├── thread-descriptor.stderr
│ │ │ ├── thread-descriptor.stdout
│ │ │ ├── thread-prep.c
│ │ │ ├── thread-prep.stderr
│ │ │ ├── thread-prep.stdout
│ │ │ ├── thread-prep_2.stdout
│ │ │ ├── thread-thread.c
│ │ │ ├── thread-thread.stderr
│ │ │ ├── thread-thread.stdout
│ │ │ ├── thread-thread_2.stdout
│ │ │ ├── thread-thread_implicit.c
│ │ │ ├── thread-thread_implicit.stderr
│ │ │ ├── thread-thread_implicit.stdout
│ │ │ └── thread-thread_implicit_2.stdout
│ │ ├── performance/
│ │ │ └── perftest.pgc
│ │ ├── pg_regress_ecpg.c
│ │ ├── pgtypeslib/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── dt_test.pgc
│ │ │ ├── dt_test2.pgc
│ │ │ ├── nan_test.pgc
│ │ │ ├── num_test.pgc
│ │ │ └── num_test2.pgc
│ │ ├── preproc/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── array_of_struct.pgc
│ │ │ ├── autoprep.pgc
│ │ │ ├── comment.pgc
│ │ │ ├── cursor.pgc
│ │ │ ├── define.pgc
│ │ │ ├── init.pgc
│ │ │ ├── outofscope.pgc
│ │ │ ├── pointer_to_struct.pgc
│ │ │ ├── strings.h
│ │ │ ├── strings.pgc
│ │ │ ├── struct.h
│ │ │ ├── type.pgc
│ │ │ ├── variable.pgc
│ │ │ ├── whenever.pgc
│ │ │ └── whenever_do_continue.pgc
│ │ ├── regression.h
│ │ ├── resultmap
│ │ ├── sql/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── array.pgc
│ │ │ ├── binary.pgc
│ │ │ ├── code100.pgc
│ │ │ ├── copystdout.pgc
│ │ │ ├── createtableas.pgc
│ │ │ ├── define.pgc
│ │ │ ├── desc.pgc
│ │ │ ├── describe.pgc
│ │ │ ├── dynalloc.pgc
│ │ │ ├── dynalloc2.pgc
│ │ │ ├── dyntest.pgc
│ │ │ ├── execute.pgc
│ │ │ ├── fetch.pgc
│ │ │ ├── func.pgc
│ │ │ ├── indicators.pgc
│ │ │ ├── insupd.pgc
│ │ │ ├── oldexec.pgc
│ │ │ ├── parser.pgc
│ │ │ ├── quote.pgc
│ │ │ ├── show.pgc
│ │ │ ├── sqlda.pgc
│ │ │ └── twophase.pgc
│ │ └── thread/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── alloc.pgc
│ │ ├── descriptor.pgc
│ │ ├── prep.pgc
│ │ ├── thread.pgc
│ │ └── thread_implicit.pgc
│ └── libpq/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ ├── exports.txt
│ ├── fe-auth-scram.c
│ ├── fe-auth.c
│ ├── fe-auth.h
│ ├── fe-connect.c
│ ├── fe-exec.c
│ ├── fe-lobj.c
│ ├── fe-misc.c
│ ├── fe-print.c
│ ├── fe-protocol2.c
│ ├── fe-protocol3.c
│ ├── fe-secure-common.c
│ ├── fe-secure-common.h
│ ├── fe-secure-openssl.c
│ ├── fe-secure.c
│ ├── libpq-dist.rc
│ ├── libpq-events.c
│ ├── libpq-events.h
│ ├── libpq-fe.h
│ ├── libpq-int.h
│ ├── libpq.rc.in
│ ├── nls.mk
│ ├── pg_service.conf.sample
│ ├── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── he.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── pt_BR.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ └── zh_CN.po
│ ├── pqexpbuffer.c
│ ├── pqexpbuffer.h
│ ├── pthread-win32.c
│ ├── test/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── expected.out
│ │ ├── regress.in
│ │ ├── regress.pl
│ │ └── uri-regress.c
│ ├── win32.c
│ └── win32.h
├── makefiles/
│ ├── Makefile
│ ├── Makefile.aix
│ ├── Makefile.cygwin
│ ├── Makefile.darwin
│ ├── Makefile.freebsd
│ ├── Makefile.hpux
│ ├── Makefile.linux
│ ├── Makefile.netbsd
│ ├── Makefile.openbsd
│ ├── Makefile.solaris
│ ├── Makefile.win32
│ └── pgxs.mk
├── modules/
│ ├── Makefile
│ ├── gdd/
│ │ ├── Makefile
│ │ ├── global_deadlock_detector--1.0.sql
│ │ ├── global_deadlock_detector.c
│ │ └── global_deadlock_detector.control
│ └── remote_rel/
│ ├── Makefile
│ ├── common.h
│ ├── ddl_applier.c
│ ├── ddl_applier.h
│ ├── ddl_logger.c
│ ├── ddl_logger.h
│ ├── hooks.c
│ ├── log_utils.c
│ ├── log_utils.h
│ ├── remote_ddl.c
│ ├── remote_ddl.h
│ ├── remote_rel--1.0.sql
│ ├── remote_rel.control
│ ├── sequence_service.c
│ ├── sequence_service.h
│ ├── utils.c
│ └── utils.h
├── nls-global.mk
├── pl/
│ ├── Makefile
│ ├── plperl/
│ │ ├── .gitignore
│ │ ├── GNUmakefile
│ │ ├── README
│ │ ├── SPI.xs
│ │ ├── Util.xs
│ │ ├── expected/
│ │ │ ├── plperl.out
│ │ │ ├── plperl_array.out
│ │ │ ├── plperl_call.out
│ │ │ ├── plperl_elog.out
│ │ │ ├── plperl_elog_1.out
│ │ │ ├── plperl_init.out
│ │ │ ├── plperl_lc.out
│ │ │ ├── plperl_lc_1.out
│ │ │ ├── plperl_plperlu.out
│ │ │ ├── plperl_shared.out
│ │ │ ├── plperl_transaction.out
│ │ │ ├── plperl_trigger.out
│ │ │ ├── plperl_util.out
│ │ │ └── plperlu.out
│ │ ├── nls.mk
│ │ ├── plc_perlboot.pl
│ │ ├── plc_trusted.pl
│ │ ├── plperl--1.0.sql
│ │ ├── plperl--unpackaged--1.0.sql
│ │ ├── plperl.c
│ │ ├── plperl.control
│ │ ├── plperl.h
│ │ ├── plperl_helpers.h
│ │ ├── plperl_opmask.pl
│ │ ├── plperlu--1.0.sql
│ │ ├── plperlu--unpackaged--1.0.sql
│ │ ├── plperlu.control
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ro.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── ppport.h
│ │ ├── sql/
│ │ │ ├── plperl.sql
│ │ │ ├── plperl_array.sql
│ │ │ ├── plperl_call.sql
│ │ │ ├── plperl_elog.sql
│ │ │ ├── plperl_end.sql
│ │ │ ├── plperl_init.sql
│ │ │ ├── plperl_lc.sql
│ │ │ ├── plperl_plperlu.sql
│ │ │ ├── plperl_shared.sql
│ │ │ ├── plperl_transaction.sql
│ │ │ ├── plperl_trigger.sql
│ │ │ ├── plperl_util.sql
│ │ │ └── plperlu.sql
│ │ └── text2macro.pl
│ ├── plpgsql/
│ │ ├── Makefile
│ │ └── src/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── plpgsql_cache.out
│ │ │ ├── plpgsql_cache_1.out
│ │ │ ├── plpgsql_call.out
│ │ │ ├── plpgsql_control.out
│ │ │ ├── plpgsql_domain.out
│ │ │ ├── plpgsql_record.out
│ │ │ ├── plpgsql_transaction.out
│ │ │ ├── plpgsql_trigger.out
│ │ │ └── plpgsql_varprops.out
│ │ ├── generate-plerrcodes.pl
│ │ ├── nls.mk
│ │ ├── pl_comp.c
│ │ ├── pl_exec.c
│ │ ├── pl_funcs.c
│ │ ├── pl_gram.y
│ │ ├── pl_handler.c
│ │ ├── pl_scanner.c
│ │ ├── plpgsql--1.0.sql
│ │ ├── plpgsql--unpackaged--1.0.sql
│ │ ├── plpgsql.control
│ │ ├── plpgsql.h
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ro.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ └── sql/
│ │ ├── plpgsql_cache.sql
│ │ ├── plpgsql_call.sql
│ │ ├── plpgsql_control.sql
│ │ ├── plpgsql_domain.sql
│ │ ├── plpgsql_record.sql
│ │ ├── plpgsql_transaction.sql
│ │ ├── plpgsql_trigger.sql
│ │ └── plpgsql_varprops.sql
│ ├── plpython/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── expected/
│ │ │ ├── README
│ │ │ ├── plpython_call.out
│ │ │ ├── plpython_composite.out
│ │ │ ├── plpython_do.out
│ │ │ ├── plpython_drop.out
│ │ │ ├── plpython_ereport.out
│ │ │ ├── plpython_error.out
│ │ │ ├── plpython_error_0.out
│ │ │ ├── plpython_error_5.out
│ │ │ ├── plpython_global.out
│ │ │ ├── plpython_import.out
│ │ │ ├── plpython_newline.out
│ │ │ ├── plpython_params.out
│ │ │ ├── plpython_populate.out
│ │ │ ├── plpython_quote.out
│ │ │ ├── plpython_record.out
│ │ │ ├── plpython_schema.out
│ │ │ ├── plpython_setof.out
│ │ │ ├── plpython_spi.out
│ │ │ ├── plpython_subtransaction.out
│ │ │ ├── plpython_subtransaction_0.out
│ │ │ ├── plpython_subtransaction_5.out
│ │ │ ├── plpython_test.out
│ │ │ ├── plpython_transaction.out
│ │ │ ├── plpython_trigger.out
│ │ │ ├── plpython_types.out
│ │ │ ├── plpython_types_3.out
│ │ │ ├── plpython_unicode.out
│ │ │ └── plpython_void.out
│ │ ├── generate-spiexceptions.pl
│ │ ├── nls.mk
│ │ ├── plpy_cursorobject.c
│ │ ├── plpy_cursorobject.h
│ │ ├── plpy_elog.c
│ │ ├── plpy_elog.h
│ │ ├── plpy_exec.c
│ │ ├── plpy_exec.h
│ │ ├── plpy_main.c
│ │ ├── plpy_main.h
│ │ ├── plpy_planobject.c
│ │ ├── plpy_planobject.h
│ │ ├── plpy_plpymodule.c
│ │ ├── plpy_plpymodule.h
│ │ ├── plpy_procedure.c
│ │ ├── plpy_procedure.h
│ │ ├── plpy_resultobject.c
│ │ ├── plpy_resultobject.h
│ │ ├── plpy_spi.c
│ │ ├── plpy_spi.h
│ │ ├── plpy_subxactobject.c
│ │ ├── plpy_subxactobject.h
│ │ ├── plpy_typeio.c
│ │ ├── plpy_typeio.h
│ │ ├── plpy_util.c
│ │ ├── plpy_util.h
│ │ ├── plpython.h
│ │ ├── plpython2u--1.0.sql
│ │ ├── plpython2u--unpackaged--1.0.sql
│ │ ├── plpython2u.control
│ │ ├── plpython3u--1.0.sql
│ │ ├── plpython3u--unpackaged--1.0.sql
│ │ ├── plpython3u.control
│ │ ├── plpythonu--1.0.sql
│ │ ├── plpythonu--unpackaged--1.0.sql
│ │ ├── plpythonu.control
│ │ ├── po/
│ │ │ ├── cs.po
│ │ │ ├── de.po
│ │ │ ├── es.po
│ │ │ ├── fr.po
│ │ │ ├── it.po
│ │ │ ├── ja.po
│ │ │ ├── ko.po
│ │ │ ├── pl.po
│ │ │ ├── pt_BR.po
│ │ │ ├── ru.po
│ │ │ ├── sv.po
│ │ │ ├── tr.po
│ │ │ ├── vi.po
│ │ │ └── zh_CN.po
│ │ ├── regress-python3-mangle.mk
│ │ └── sql/
│ │ ├── plpython_call.sql
│ │ ├── plpython_composite.sql
│ │ ├── plpython_do.sql
│ │ ├── plpython_drop.sql
│ │ ├── plpython_ereport.sql
│ │ ├── plpython_error.sql
│ │ ├── plpython_global.sql
│ │ ├── plpython_import.sql
│ │ ├── plpython_newline.sql
│ │ ├── plpython_params.sql
│ │ ├── plpython_populate.sql
│ │ ├── plpython_quote.sql
│ │ ├── plpython_record.sql
│ │ ├── plpython_schema.sql
│ │ ├── plpython_setof.sql
│ │ ├── plpython_spi.sql
│ │ ├── plpython_subtransaction.sql
│ │ ├── plpython_test.sql
│ │ ├── plpython_transaction.sql
│ │ ├── plpython_trigger.sql
│ │ ├── plpython_types.sql
│ │ ├── plpython_unicode.sql
│ │ └── plpython_void.sql
│ └── tcl/
│ ├── .gitignore
│ ├── Makefile
│ ├── expected/
│ │ ├── pltcl_call.out
│ │ ├── pltcl_queries.out
│ │ ├── pltcl_setup.out
│ │ ├── pltcl_start_proc.out
│ │ ├── pltcl_subxact.out
│ │ ├── pltcl_transaction.out
│ │ └── pltcl_unicode.out
│ ├── generate-pltclerrcodes.pl
│ ├── nls.mk
│ ├── pltcl--1.0.sql
│ ├── pltcl--unpackaged--1.0.sql
│ ├── pltcl.c
│ ├── pltcl.control
│ ├── pltclu--1.0.sql
│ ├── pltclu--unpackaged--1.0.sql
│ ├── pltclu.control
│ ├── po/
│ │ ├── cs.po
│ │ ├── de.po
│ │ ├── es.po
│ │ ├── fr.po
│ │ ├── it.po
│ │ ├── ja.po
│ │ ├── ko.po
│ │ ├── pl.po
│ │ ├── ru.po
│ │ ├── sv.po
│ │ ├── tr.po
│ │ ├── vi.po
│ │ └── zh_CN.po
│ └── sql/
│ ├── pltcl_call.sql
│ ├── pltcl_queries.sql
│ ├── pltcl_setup.sql
│ ├── pltcl_start_proc.sql
│ ├── pltcl_subxact.sql
│ ├── pltcl_transaction.sql
│ └── pltcl_unicode.sql
├── port/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ ├── chklocale.c
│ ├── crypt.c
│ ├── dirent.c
│ ├── dirmod.c
│ ├── erand48.c
│ ├── fls.c
│ ├── fseeko.c
│ ├── getaddrinfo.c
│ ├── getopt.c
│ ├── getopt_long.c
│ ├── getpeereid.c
│ ├── getrusage.c
│ ├── gettimeofday.c
│ ├── inet_aton.c
│ ├── inet_net_ntop.c
│ ├── isinf.c
│ ├── kill.c
│ ├── mkdtemp.c
│ ├── noblock.c
│ ├── open.c
│ ├── path.c
│ ├── pg_crc32c_armv8.c
│ ├── pg_crc32c_armv8_choose.c
│ ├── pg_crc32c_sb8.c
│ ├── pg_crc32c_sse42.c
│ ├── pg_crc32c_sse42_choose.c
│ ├── pg_strong_random.c
│ ├── pgcheckdir.c
│ ├── pgmkdirp.c
│ ├── pgsleep.c
│ ├── pgstrcasecmp.c
│ ├── pqsignal.c
│ ├── pthread-win32.h
│ ├── qsort.c
│ ├── qsort_arg.c
│ ├── quotes.c
│ ├── random.c
│ ├── rint.c
│ ├── snprintf.c
│ ├── sprompt.c
│ ├── srandom.c
│ ├── strerror.c
│ ├── strlcat.c
│ ├── strlcpy.c
│ ├── strnlen.c
│ ├── system.c
│ ├── tar.c
│ ├── thread.c
│ ├── unsetenv.c
│ ├── win32env.c
│ ├── win32error.c
│ ├── win32security.c
│ └── win32setlocale.c
├── template/
│ ├── aix
│ ├── cygwin
│ ├── darwin
│ ├── freebsd
│ ├── hpux
│ ├── linux
│ ├── netbsd
│ ├── openbsd
│ ├── solaris
│ └── win32
├── test/
│ ├── Makefile
│ ├── README
│ ├── authentication/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ ├── 001_password.pl
│ │ └── 002_saslprep.pl
│ ├── examples/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── testlibpq.c
│ │ ├── testlibpq2.c
│ │ ├── testlibpq2.sql
│ │ ├── testlibpq3.c
│ │ ├── testlibpq3.sql
│ │ ├── testlibpq4.c
│ │ ├── testlo.c
│ │ └── testlo64.c
│ ├── isolation/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── expected/
│ │ │ ├── aborted-keyrevoke.out
│ │ │ ├── aborted-keyrevoke_2.out
│ │ │ ├── alter-table-1.out
│ │ │ ├── alter-table-2.out
│ │ │ ├── alter-table-3.out
│ │ │ ├── alter-table-4.out
│ │ │ ├── async-notify.out
│ │ │ ├── classroom-scheduling.out
│ │ │ ├── create-trigger.out
│ │ │ ├── deadlock-hard.out
│ │ │ ├── deadlock-simple.out
│ │ │ ├── deadlock-soft-2.out
│ │ │ ├── deadlock-soft.out
│ │ │ ├── delete-abort-savept-2.out
│ │ │ ├── delete-abort-savept.out
│ │ │ ├── drop-index-concurrently-1.out
│ │ │ ├── drop-index-concurrently-1_2.out
│ │ │ ├── eval-plan-qual.out
│ │ │ ├── fk-contention.out
│ │ │ ├── fk-deadlock.out
│ │ │ ├── fk-deadlock2.out
│ │ │ ├── fk-deadlock2_1.out
│ │ │ ├── fk-deadlock2_2.out
│ │ │ ├── fk-deadlock_1.out
│ │ │ ├── freeze-the-dead.out
│ │ │ ├── index-only-scan.out
│ │ │ ├── inherit-temp.out
│ │ │ ├── insert-conflict-do-nothing-2.out
│ │ │ ├── insert-conflict-do-nothing.out
│ │ │ ├── insert-conflict-do-update-2.out
│ │ │ ├── insert-conflict-do-update-3.out
│ │ │ ├── insert-conflict-do-update.out
│ │ │ ├── insert-conflict-specconflict.out
│ │ │ ├── insert-conflict-toast.out
│ │ │ ├── insert-conflict-toast_1.out
│ │ │ ├── lock-committed-keyupdate.out
│ │ │ ├── lock-committed-update.out
│ │ │ ├── lock-update-delete.out
│ │ │ ├── lock-update-delete_1.out
│ │ │ ├── lock-update-traversal.out
│ │ │ ├── multiple-cic.out
│ │ │ ├── multiple-cic_1.out
│ │ │ ├── multiple-row-versions.out
│ │ │ ├── multixact-no-deadlock.out
│ │ │ ├── multixact-no-forget.out
│ │ │ ├── multixact-no-forget_1.out
│ │ │ ├── nowait-2.out
│ │ │ ├── nowait-3.out
│ │ │ ├── nowait-4.out
│ │ │ ├── nowait-4_1.out
│ │ │ ├── nowait-5.out
│ │ │ ├── nowait.out
│ │ │ ├── partial-index.out
│ │ │ ├── partition-key-update-1.out
│ │ │ ├── partition-key-update-2.out
│ │ │ ├── partition-key-update-3.out
│ │ │ ├── partition-key-update-4.out
│ │ │ ├── plpgsql-toast.out
│ │ │ ├── predicate-gin.out
│ │ │ ├── predicate-gist.out
│ │ │ ├── predicate-hash.out
│ │ │ ├── prepared-transactions.out
│ │ │ ├── project-manager.out
│ │ │ ├── propagate-lock-delete.out
│ │ │ ├── read-only-anomaly-2.out
│ │ │ ├── read-only-anomaly-3.out
│ │ │ ├── read-only-anomaly.out
│ │ │ ├── read-write-unique-2.out
│ │ │ ├── read-write-unique-3.out
│ │ │ ├── read-write-unique-4.out
│ │ │ ├── read-write-unique.out
│ │ │ ├── receipt-report.out
│ │ │ ├── referential-integrity.out
│ │ │ ├── ri-trigger.out
│ │ │ ├── sequence-ddl.out
│ │ │ ├── simple-write-skew.out
│ │ │ ├── skip-locked-2.out
│ │ │ ├── skip-locked-3.out
│ │ │ ├── skip-locked-4.out
│ │ │ ├── skip-locked-4_1.out
│ │ │ ├── skip-locked.out
│ │ │ ├── temporal-range-integrity.out
│ │ │ ├── timeouts.out
│ │ │ ├── total-cash.out
│ │ │ ├── tuplelock-conflict.out
│ │ │ ├── tuplelock-update.out
│ │ │ ├── tuplelock-upgrade-no-deadlock.out
│ │ │ ├── two-ids.out
│ │ │ ├── update-locked-tuple.out
│ │ │ ├── vacuum-concurrent-drop.out
│ │ │ └── vacuum-reltuples.out
│ │ ├── isolation_main.c
│ │ ├── isolation_schedule
│ │ ├── isolationtester.c
│ │ ├── isolationtester.h
│ │ ├── specparse.y
│ │ ├── specs/
│ │ │ ├── aborted-keyrevoke.spec
│ │ │ ├── alter-table-1.spec
│ │ │ ├── alter-table-2.spec
│ │ │ ├── alter-table-3.spec
│ │ │ ├── alter-table-4.spec
│ │ │ ├── async-notify.spec
│ │ │ ├── classroom-scheduling.spec
│ │ │ ├── create-trigger.spec
│ │ │ ├── deadlock-hard.spec
│ │ │ ├── deadlock-simple.spec
│ │ │ ├── deadlock-soft-2.spec
│ │ │ ├── deadlock-soft.spec
│ │ │ ├── delete-abort-savept-2.spec
│ │ │ ├── delete-abort-savept.spec
│ │ │ ├── drop-index-concurrently-1.spec
│ │ │ ├── eval-plan-qual.spec
│ │ │ ├── fk-contention.spec
│ │ │ ├── fk-deadlock.spec
│ │ │ ├── fk-deadlock2.spec
│ │ │ ├── freeze-the-dead.spec
│ │ │ ├── index-only-scan.spec
│ │ │ ├── inherit-temp.spec
│ │ │ ├── insert-conflict-do-nothing-2.spec
│ │ │ ├── insert-conflict-do-nothing.spec
│ │ │ ├── insert-conflict-do-update-2.spec
│ │ │ ├── insert-conflict-do-update-3.spec
│ │ │ ├── insert-conflict-do-update.spec
│ │ │ ├── insert-conflict-specconflict.spec
│ │ │ ├── insert-conflict-toast.spec
│ │ │ ├── lock-committed-keyupdate.spec
│ │ │ ├── lock-committed-update.spec
│ │ │ ├── lock-update-delete.spec
│ │ │ ├── lock-update-traversal.spec
│ │ │ ├── multiple-cic.spec
│ │ │ ├── multiple-row-versions.spec
│ │ │ ├── multixact-no-deadlock.spec
│ │ │ ├── multixact-no-forget.spec
│ │ │ ├── nowait-2.spec
│ │ │ ├── nowait-3.spec
│ │ │ ├── nowait-4.spec
│ │ │ ├── nowait-5.spec
│ │ │ ├── nowait.spec
│ │ │ ├── partial-index.spec
│ │ │ ├── partition-key-update-1.spec
│ │ │ ├── partition-key-update-2.spec
│ │ │ ├── partition-key-update-3.spec
│ │ │ ├── partition-key-update-4.spec
│ │ │ ├── plpgsql-toast.spec
│ │ │ ├── predicate-gin.spec
│ │ │ ├── predicate-gist.spec
│ │ │ ├── predicate-hash.spec
│ │ │ ├── prepared-transactions.spec
│ │ │ ├── project-manager.spec
│ │ │ ├── propagate-lock-delete.spec
│ │ │ ├── read-only-anomaly-2.spec
│ │ │ ├── read-only-anomaly-3.spec
│ │ │ ├── read-only-anomaly.spec
│ │ │ ├── read-write-unique-2.spec
│ │ │ ├── read-write-unique-3.spec
│ │ │ ├── read-write-unique-4.spec
│ │ │ ├── read-write-unique.spec
│ │ │ ├── receipt-report.spec
│ │ │ ├── referential-integrity.spec
│ │ │ ├── ri-trigger.spec
│ │ │ ├── sequence-ddl.spec
│ │ │ ├── simple-write-skew.spec
│ │ │ ├── skip-locked-2.spec
│ │ │ ├── skip-locked-3.spec
│ │ │ ├── skip-locked-4.spec
│ │ │ ├── skip-locked.spec
│ │ │ ├── temporal-range-integrity.spec
│ │ │ ├── timeouts.spec
│ │ │ ├── total-cash.spec
│ │ │ ├── tuplelock-conflict.spec
│ │ │ ├── tuplelock-update.spec
│ │ │ ├── tuplelock-upgrade-no-deadlock.spec
│ │ │ ├── two-ids.spec
│ │ │ ├── update-locked-tuple.spec
│ │ │ ├── vacuum-concurrent-drop.spec
│ │ │ └── vacuum-reltuples.spec
│ │ └── specscanner.l
│ ├── kerberos/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ └── 001_auth.pl
│ ├── kunlun/
│ │ ├── crash_safe/
│ │ │ ├── shard_master_failover.py
│ │ │ └── timeout.py
│ │ ├── ddl/
│ │ │ └── ddl.py
│ │ ├── gdd/
│ │ │ ├── comp-nodes2.json
│ │ │ ├── comp-nodes3.json
│ │ │ └── gdd2.py
│ │ ├── seq.txt
│ │ ├── smoke/
│ │ │ ├── SmokeTest.java
│ │ │ └── test.py
│ │ └── txn/
│ │ └── implicit_commit.c
│ ├── ldap/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── authdata.ldif
│ │ └── t/
│ │ └── 001_auth.pl
│ ├── locale/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── de_DE.ISO8859-1/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── de-ctype.out
│ │ │ │ ├── test-de-char.sql.out
│ │ │ │ ├── test-de-select.sql.out
│ │ │ │ ├── test-de-sort.out
│ │ │ │ ├── test-de-text.sql.out
│ │ │ │ ├── test-de-upper-char.sql.out
│ │ │ │ ├── test-de-upper-text.sql.out
│ │ │ │ ├── test-de-upper-varchar.sql.out
│ │ │ │ └── test-de-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-de-select.sql.in
│ │ │ ├── test-de-sort.in
│ │ │ ├── test-de-upper.sql.in
│ │ │ └── test-de.sql.in
│ │ ├── gr_GR.ISO8859-7/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── gr-ctype.out
│ │ │ │ ├── test-gr-char.sql.out
│ │ │ │ ├── test-gr-select.sql.out
│ │ │ │ ├── test-gr-sort.out
│ │ │ │ ├── test-gr-text.sql.out
│ │ │ │ └── test-gr-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-gr-select.sql.in
│ │ │ ├── test-gr-sort.in
│ │ │ └── test-gr.sql.in
│ │ ├── koi8-r/
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ ├── koi8-ctype.out
│ │ │ │ ├── test-koi8-char.sql.out
│ │ │ │ ├── test-koi8-select.sql.out
│ │ │ │ ├── test-koi8-sort.out
│ │ │ │ ├── test-koi8-text.sql.out
│ │ │ │ └── test-koi8-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-koi8-select.sql.in
│ │ │ ├── test-koi8-sort.in
│ │ │ └── test-koi8.sql.in
│ │ ├── koi8-to-win1251/
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── test-koi8-char.sql.out
│ │ │ │ ├── test-koi8-select.sql.out
│ │ │ │ ├── test-koi8-sort.out
│ │ │ │ ├── test-koi8-text.sql.out
│ │ │ │ └── test-koi8-varchar.sql.out
│ │ │ ├── runall
│ │ │ ├── test-koi8-select.sql.in
│ │ │ ├── test-koi8-sort.in
│ │ │ └── test-koi8.sql.in
│ │ ├── sort-test.pl
│ │ ├── sort-test.py
│ │ └── test-ctype.c
│ ├── mb/
│ │ ├── README
│ │ ├── expected/
│ │ │ ├── big5.out
│ │ │ ├── euc_cn.out
│ │ │ ├── euc_jp.out
│ │ │ ├── euc_kr.out
│ │ │ ├── euc_tw.out
│ │ │ ├── gb18030.out
│ │ │ ├── mule_internal.out
│ │ │ ├── sjis.out
│ │ │ └── utf8.out
│ │ ├── mbregress.sh
│ │ └── sql/
│ │ ├── big5.sql
│ │ ├── euc_cn.sql
│ │ ├── euc_jp.sql
│ │ ├── euc_kr.sql
│ │ ├── euc_tw.sql
│ │ ├── gb18030.sql
│ │ ├── mule_internal.sql
│ │ ├── sjis.sql
│ │ └── utf8.sql
│ ├── modules/
│ │ ├── Makefile
│ │ ├── README
│ │ ├── brin/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ └── summarization-and-inprogress-insertion.out
│ │ │ ├── specs/
│ │ │ │ └── summarization-and-inprogress-insertion.spec
│ │ │ └── t/
│ │ │ └── 01_workitems.pl
│ │ ├── commit_ts/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── commit_ts.conf
│ │ │ ├── expected/
│ │ │ │ ├── commit_timestamp.out
│ │ │ │ └── commit_timestamp_1.out
│ │ │ ├── sql/
│ │ │ │ └── commit_timestamp.sql
│ │ │ └── t/
│ │ │ ├── 001_base.pl
│ │ │ ├── 002_standby.pl
│ │ │ ├── 003_standby_2.pl
│ │ │ └── 004_restart.pl
│ │ ├── dummy_seclabel/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── dummy_seclabel--1.0.sql
│ │ │ ├── dummy_seclabel.c
│ │ │ ├── dummy_seclabel.control
│ │ │ ├── expected/
│ │ │ │ └── dummy_seclabel.out
│ │ │ └── sql/
│ │ │ └── dummy_seclabel.sql
│ │ ├── snapshot_too_old/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ ├── sto_using_cursor.out
│ │ │ │ ├── sto_using_hash_index.out
│ │ │ │ └── sto_using_select.out
│ │ │ ├── specs/
│ │ │ │ ├── sto_using_cursor.spec
│ │ │ │ ├── sto_using_hash_index.spec
│ │ │ │ └── sto_using_select.spec
│ │ │ └── sto.conf
│ │ ├── test_bloomfilter/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_bloomfilter.out
│ │ │ ├── sql/
│ │ │ │ └── test_bloomfilter.sql
│ │ │ ├── test_bloomfilter--1.0.sql
│ │ │ ├── test_bloomfilter.c
│ │ │ └── test_bloomfilter.control
│ │ ├── test_ddl_deparse/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ ├── alter_extension.out
│ │ │ │ ├── alter_function.out
│ │ │ │ ├── alter_sequence.out
│ │ │ │ ├── alter_table.out
│ │ │ │ ├── alter_ts_config.out
│ │ │ │ ├── alter_type_enum.out
│ │ │ │ ├── comment_on.out
│ │ │ │ ├── create_conversion.out
│ │ │ │ ├── create_domain.out
│ │ │ │ ├── create_extension.out
│ │ │ │ ├── create_function.out
│ │ │ │ ├── create_operator.out
│ │ │ │ ├── create_rule.out
│ │ │ │ ├── create_schema.out
│ │ │ │ ├── create_sequence_1.out
│ │ │ │ ├── create_table.out
│ │ │ │ ├── create_transform.out
│ │ │ │ ├── create_trigger.out
│ │ │ │ ├── create_type.out
│ │ │ │ ├── create_view.out
│ │ │ │ ├── defprivs.out
│ │ │ │ ├── matviews.out
│ │ │ │ ├── opfamily.out
│ │ │ │ └── test_ddl_deparse.out
│ │ │ ├── sql/
│ │ │ │ ├── alter_function.sql
│ │ │ │ ├── alter_sequence.sql
│ │ │ │ ├── alter_table.sql
│ │ │ │ ├── alter_ts_config.sql
│ │ │ │ ├── alter_type_enum.sql
│ │ │ │ ├── comment_on.sql
│ │ │ │ ├── create_conversion.sql
│ │ │ │ ├── create_domain.sql
│ │ │ │ ├── create_extension.sql
│ │ │ │ ├── create_rule.sql
│ │ │ │ ├── create_schema.sql
│ │ │ │ ├── create_sequence_1.sql
│ │ │ │ ├── create_table.sql
│ │ │ │ ├── create_transform.sql
│ │ │ │ ├── create_trigger.sql
│ │ │ │ ├── create_type.sql
│ │ │ │ ├── create_view.sql
│ │ │ │ ├── defprivs.sql
│ │ │ │ ├── matviews.sql
│ │ │ │ ├── opfamily.sql
│ │ │ │ └── test_ddl_deparse.sql
│ │ │ ├── test_ddl_deparse--1.0.sql
│ │ │ ├── test_ddl_deparse.c
│ │ │ └── test_ddl_deparse.control
│ │ ├── test_extensions/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── expected/
│ │ │ │ ├── test_extdepend.out
│ │ │ │ └── test_extensions.out
│ │ │ ├── sql/
│ │ │ │ ├── test_extdepend.sql
│ │ │ │ └── test_extensions.sql
│ │ │ ├── test_ext1--1.0.sql
│ │ │ ├── test_ext1.control
│ │ │ ├── test_ext2--1.0.sql
│ │ │ ├── test_ext2.control
│ │ │ ├── test_ext3--1.0.sql
│ │ │ ├── test_ext3.control
│ │ │ ├── test_ext4--1.0.sql
│ │ │ ├── test_ext4.control
│ │ │ ├── test_ext5--1.0.sql
│ │ │ ├── test_ext5.control
│ │ │ ├── test_ext6--1.0.sql
│ │ │ ├── test_ext6.control
│ │ │ ├── test_ext7--1.0--2.0.sql
│ │ │ ├── test_ext7--1.0.sql
│ │ │ ├── test_ext7.control
│ │ │ ├── test_ext8--1.0.sql
│ │ │ ├── test_ext8.control
│ │ │ ├── test_ext_cyclic1--1.0.sql
│ │ │ ├── test_ext_cyclic1.control
│ │ │ ├── test_ext_cyclic2--1.0.sql
│ │ │ └── test_ext_cyclic2.control
│ │ ├── test_parser/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_parser.out
│ │ │ ├── sql/
│ │ │ │ └── test_parser.sql
│ │ │ ├── test_parser--1.0.sql
│ │ │ ├── test_parser--unpackaged--1.0.sql
│ │ │ ├── test_parser.c
│ │ │ └── test_parser.control
│ │ ├── test_pg_dump/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_pg_dump.out
│ │ │ ├── sql/
│ │ │ │ └── test_pg_dump.sql
│ │ │ ├── t/
│ │ │ │ └── 001_base.pl
│ │ │ ├── test_pg_dump--1.0.sql
│ │ │ └── test_pg_dump.control
│ │ ├── test_predtest/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_predtest.out
│ │ │ ├── sql/
│ │ │ │ └── test_predtest.sql
│ │ │ ├── test_predtest--1.0.sql
│ │ │ ├── test_predtest.c
│ │ │ └── test_predtest.control
│ │ ├── test_rbtree/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_rbtree.out
│ │ │ ├── sql/
│ │ │ │ └── test_rbtree.sql
│ │ │ ├── test_rbtree--1.0.sql
│ │ │ ├── test_rbtree.c
│ │ │ └── test_rbtree.control
│ │ ├── test_rls_hooks/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_rls_hooks.out
│ │ │ ├── rls_hooks.conf
│ │ │ ├── sql/
│ │ │ │ └── test_rls_hooks.sql
│ │ │ ├── test_rls_hooks.c
│ │ │ ├── test_rls_hooks.control
│ │ │ └── test_rls_hooks.h
│ │ ├── test_shm_mq/
│ │ │ ├── .gitignore
│ │ │ ├── Makefile
│ │ │ ├── README
│ │ │ ├── expected/
│ │ │ │ └── test_shm_mq.out
│ │ │ ├── setup.c
│ │ │ ├── sql/
│ │ │ │ └── test_shm_mq.sql
│ │ │ ├── test.c
│ │ │ ├── test_shm_mq--1.0.sql
│ │ │ ├── test_shm_mq.control
│ │ │ ├── test_shm_mq.h
│ │ │ └── worker.c
│ │ └── worker_spi/
│ │ ├── Makefile
│ │ ├── worker_spi--1.0.sql
│ │ ├── worker_spi.c
│ │ └── worker_spi.control
│ ├── perl/
│ │ ├── Makefile
│ │ ├── PostgresNode.pm
│ │ ├── README
│ │ ├── RecursiveCopy.pm
│ │ ├── SimpleTee.pm
│ │ └── TestLib.pm
│ ├── recovery/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ ├── 001_stream_rep.pl
│ │ ├── 002_archiving.pl
│ │ ├── 003_recovery_targets.pl
│ │ ├── 004_timeline_switch.pl
│ │ ├── 005_replay_delay.pl
│ │ ├── 006_logical_decoding.pl
│ │ ├── 007_sync_rep.pl
│ │ ├── 008_fsm_truncation.pl
│ │ ├── 009_twophase.pl
│ │ ├── 010_logical_decoding_timelines.pl
│ │ ├── 011_crash_recovery.pl
│ │ ├── 012_subtransactions.pl
│ │ ├── 013_crash_restart.pl
│ │ ├── 014_unlogged_reinit.pl
│ │ ├── 015_promotion_pages.pl
│ │ └── 017_shm.pl
│ ├── regress/
│ │ ├── .gitignore
│ │ ├── GNUmakefile
│ │ ├── Makefile
│ │ ├── README
│ │ ├── data/
│ │ │ ├── agg.data
│ │ │ ├── array.data
│ │ │ ├── constrf.data
│ │ │ ├── constro.data
│ │ │ ├── dept.data
│ │ │ ├── desc.data
│ │ │ ├── emp.data
│ │ │ ├── hash.data
│ │ │ ├── jsonb.data
│ │ │ ├── onek.data
│ │ │ ├── person.data
│ │ │ ├── real_city.data
│ │ │ ├── rect.data
│ │ │ ├── streets.data
│ │ │ ├── stud_emp.data
│ │ │ ├── student.data
│ │ │ ├── tenk.data
│ │ │ └── tsearch.data
│ │ ├── expected/
│ │ │ ├── .gitignore
│ │ │ ├── abstime.out
│ │ │ ├── advisory_lock.out
│ │ │ ├── aggregates.out
│ │ │ ├── alter_generic.out
│ │ │ ├── alter_operator.out
│ │ │ ├── alter_table.out
│ │ │ ├── alter_table2.out
│ │ │ ├── alter_table3.out
│ │ │ ├── amutils.out
│ │ │ ├── arrays.out
│ │ │ ├── async.out
│ │ │ ├── autocommit.out
│ │ │ ├── bit.out
│ │ │ ├── bitmapops.out
│ │ │ ├── boolean.out
│ │ │ ├── box.out
│ │ │ ├── brin.out
│ │ │ ├── btree_index.out
│ │ │ ├── case.out
│ │ │ ├── char.out
│ │ │ ├── char_1.out
│ │ │ ├── char_2.out
│ │ │ ├── charset_zh_CN.out
│ │ │ ├── circle.out
│ │ │ ├── cluster.out
│ │ │ ├── collate.icu.utf8.out
│ │ │ ├── collate.linux.utf8.out
│ │ │ ├── collate.out
│ │ │ ├── combocid.out
│ │ │ ├── comments.out
│ │ │ ├── constraints.out
│ │ │ ├── conversion.out
│ │ │ ├── copy.out
│ │ │ ├── copy2.out
│ │ │ ├── copydml.out
│ │ │ ├── copyselect.out
│ │ │ ├── coverage.out
│ │ │ ├── create_aggregate.out
│ │ │ ├── create_am.out
│ │ │ ├── create_cast.out
│ │ │ ├── create_function_1.out
│ │ │ ├── create_function_2.out
│ │ │ ├── create_function_3.out
│ │ │ ├── create_index.out
│ │ │ ├── create_misc.out
│ │ │ ├── create_operator.out
│ │ │ ├── create_procedure.out
│ │ │ ├── create_table.out
│ │ │ ├── create_table_like.out
│ │ │ ├── create_type.out
│ │ │ ├── create_view.out
│ │ │ ├── datatypes_simple.out
│ │ │ ├── date.out
│ │ │ ├── dbsize.out
│ │ │ ├── delete.out
│ │ │ ├── dependency.out
│ │ │ ├── domain.out
│ │ │ ├── drop_if_exists.out
│ │ │ ├── drop_operator.out
│ │ │ ├── enum.out
│ │ │ ├── enum2.out
│ │ │ ├── equivclass.out
│ │ │ ├── errors.out
│ │ │ ├── event_trigger.out
│ │ │ ├── expressions.out
│ │ │ ├── fast_default.out
│ │ │ ├── float4-exp-three-digits.out
│ │ │ ├── float4.out
│ │ │ ├── float8-exp-three-digits-win32.out
│ │ │ ├── float8-small-is-zero.out
│ │ │ ├── float8-small-is-zero_1.out
│ │ │ ├── float8.out
│ │ │ ├── foreign_data.out
│ │ │ ├── foreign_key.out
│ │ │ ├── functional_deps.out
│ │ │ ├── geometry.out
│ │ │ ├── geometry_1.out
│ │ │ ├── geometry_2.out
│ │ │ ├── gin.out
│ │ │ ├── gist.out
│ │ │ ├── groupingsets.out
│ │ │ ├── guc.out
│ │ │ ├── hash_func.out
│ │ │ ├── hash_index.out
│ │ │ ├── hash_part.out
│ │ │ ├── horology.out
│ │ │ ├── hs_standby_allowed.out
│ │ │ ├── hs_standby_check.out
│ │ │ ├── hs_standby_disallowed.out
│ │ │ ├── hs_standby_functions.out
│ │ │ ├── identity.out
│ │ │ ├── index_including.out
│ │ │ ├── indexing.out
│ │ │ ├── indirect_toast.out
│ │ │ ├── inet.out
│ │ │ ├── inherit.out
│ │ │ ├── init_privs.out
│ │ │ ├── insert.out
│ │ │ ├── insert_conflict.out
│ │ │ ├── int2.out
│ │ │ ├── int4.out
│ │ │ ├── int8-exp-three-digits.out
│ │ │ ├── int8.out
│ │ │ ├── interval.out
│ │ │ ├── join.out
│ │ │ ├── join2.out
│ │ │ ├── json.out
│ │ │ ├── json_encoding.out
│ │ │ ├── json_encoding_1.out
│ │ │ ├── jsonb.out
│ │ │ ├── kunlun_alter_table.out
│ │ │ ├── kunlun_remote.out
│ │ │ ├── kunlun_remote_dml.out
│ │ │ ├── kunlun_sequence_noalter.out
│ │ │ ├── kunlun_ticket.out
│ │ │ ├── kunlun_vars.out
│ │ │ ├── lex_quotes_pg.out
│ │ │ ├── limit.out
│ │ │ ├── line.out
│ │ │ ├── lock.out
│ │ │ ├── lseg.out
│ │ │ ├── macaddr.out
│ │ │ ├── macaddr8.out
│ │ │ ├── matview.out
│ │ │ ├── misc.out
│ │ │ ├── misc_functions.out
│ │ │ ├── misc_sanity.out
│ │ │ ├── money.out
│ │ │ ├── name.out
│ │ │ ├── namespace.out
│ │ │ ├── numeric.out
│ │ │ ├── numeric_big.out
│ │ │ ├── numerology.out
│ │ │ ├── numerology_1.out
│ │ │ ├── object_address.out
│ │ │ ├── oid.out
│ │ │ ├── oidjoins.out
│ │ │ ├── opr_sanity.out
│ │ │ ├── partition_aggregate.out
│ │ │ ├── partition_join.out
│ │ │ ├── partition_prune.out
│ │ │ ├── password.out
│ │ │ ├── path.out
│ │ │ ├── pg_lsn.out
│ │ │ ├── plancache.out
│ │ │ ├── plpgsql.out
│ │ │ ├── point.out
│ │ │ ├── polygon.out
│ │ │ ├── polymorphism.out
│ │ │ ├── portals.out
│ │ │ ├── portals_p2.out
│ │ │ ├── prepare.out
│ │ │ ├── prepared_xacts.out
│ │ │ ├── prepared_xacts_1.out
│ │ │ ├── privileges.out
│ │ │ ├── psql.out
│ │ │ ├── psql_crosstab.out
│ │ │ ├── publication.out
│ │ │ ├── random.out
│ │ │ ├── rangefuncs.out
│ │ │ ├── rangetypes.out
│ │ │ ├── regex.linux.utf8.out
│ │ │ ├── regex.out
│ │ │ ├── regproc.out
│ │ │ ├── reindex_catalog.out
│ │ │ ├── reloptions.out
│ │ │ ├── reltime.out
│ │ │ ├── remote.out
│ │ │ ├── remote_dml.out
│ │ │ ├── remote_dml2.out
│ │ │ ├── remote_dml3.out
│ │ │ ├── remote_dml4.out
│ │ │ ├── remote_opt.out
│ │ │ ├── replica_identity.out
│ │ │ ├── returning.out
│ │ │ ├── roleattributes.out
│ │ │ ├── rolenames.out
│ │ │ ├── rowsecurity.out
│ │ │ ├── rowtypes.out
│ │ │ ├── rules.out
│ │ │ ├── sanity_check.out
│ │ │ ├── schema.out
│ │ │ ├── security_label.out
│ │ │ ├── select.out
│ │ │ ├── select_distinct.out
│ │ │ ├── select_distinct_on.out
│ │ │ ├── select_having.out
│ │ │ ├── select_having_1.out
│ │ │ ├── select_having_2.out
│ │ │ ├── select_implicit.out
│ │ │ ├── select_implicit_1.out
│ │ │ ├── select_implicit_2.out
│ │ │ ├── select_into.out
│ │ │ ├── select_parallel.out
│ │ │ ├── select_views.out
│ │ │ ├── sequence.out
│ │ │ ├── sequence_noalter.out
│ │ │ ├── spgist.out
│ │ │ ├── stats.out
│ │ │ ├── stats_ext.out
│ │ │ ├── strings.out
│ │ │ ├── subscription.out
│ │ │ ├── subselect.out
│ │ │ ├── sysviews.out
│ │ │ ├── tablesample.out
│ │ │ ├── temp.out
│ │ │ ├── text.out
│ │ │ ├── tidscan.out
│ │ │ ├── time.out
│ │ │ ├── timestamp.out
│ │ │ ├── timestamptz.out
│ │ │ ├── timetz.out
│ │ │ ├── tinterval.out
│ │ │ ├── transactions.out
│ │ │ ├── triggers.out
│ │ │ ├── triggers_1.out
│ │ │ ├── truncate.out
│ │ │ ├── tsdicts.out
│ │ │ ├── tsearch.out
│ │ │ ├── tsrf.out
│ │ │ ├── tstypes.out
│ │ │ ├── txid.out
│ │ │ ├── type_sanity.out
│ │ │ ├── typed_table.out
│ │ │ ├── union.out
│ │ │ ├── updatable_views.out
│ │ │ ├── update.out
│ │ │ ├── uuid.out
│ │ │ ├── vacuum.out
│ │ │ ├── varchar.out
│ │ │ ├── varchar_1.out
│ │ │ ├── varchar_2.out
│ │ │ ├── window.out
│ │ │ ├── with.out
│ │ │ ├── without_oid.out
│ │ │ ├── write_parallel.out
│ │ │ ├── xml.out
│ │ │ ├── xml_1.out
│ │ │ ├── xml_2.out
│ │ │ ├── xmlmap.out
│ │ │ └── xmlmap_1.out
│ │ ├── gen_sql.sh
│ │ ├── input/
│ │ │ ├── aggregates.source
│ │ │ ├── constraints.source
│ │ │ ├── copy.source
│ │ │ ├── create_function_1.source
│ │ │ ├── create_function_2.source
│ │ │ ├── join.source
│ │ │ ├── join2.source
│ │ │ ├── kunlun_ticket.source
│ │ │ ├── largeobject.source
│ │ │ ├── misc.source
│ │ │ ├── remote_dml2.source
│ │ │ ├── select.source
│ │ │ ├── select_distinct.source
│ │ │ ├── select_distinct_on.source
│ │ │ ├── tablespace.source
│ │ │ └── union.source
│ │ ├── output/
│ │ │ ├── constraints.source
│ │ │ ├── copy.source
│ │ │ ├── create_function_1.source
│ │ │ ├── create_function_2.source
│ │ │ ├── largeobject.source
│ │ │ ├── largeobject_1.source
│ │ │ ├── misc.source
│ │ │ └── tablespace.source
│ │ ├── parallel_schedule
│ │ ├── pg_regress.c
│ │ ├── pg_regress.h
│ │ ├── pg_regress_main.c
│ │ ├── processout.py
│ │ ├── regress.c
│ │ ├── regressplans.sh
│ │ ├── resultmap
│ │ ├── run_compare.sh
│ │ ├── run_single.sh
│ │ ├── run_single2.sh
│ │ ├── runsuite.sh
│ │ ├── runsuite_expected.sh
│ │ ├── runsuite_expected2.sh
│ │ ├── runsuite_vs_officialpg.sh
│ │ ├── serial_schedule
│ │ ├── serial_schedule_community
│ │ ├── skips/
│ │ │ ├── kunlun_alter_table.skip
│ │ │ ├── kunlun_remote.skip
│ │ │ ├── kunlun_remote_dml.skip
│ │ │ ├── kunlun_sequence_noalter.skip
│ │ │ ├── kunlun_vars.skip
│ │ │ ├── plpgsql.skip
│ │ │ └── vars.skip
│ │ ├── sql/
│ │ │ ├── abstime.sql
│ │ │ ├── advisory_lock.sql
│ │ │ ├── alter_generic.sql
│ │ │ ├── alter_operator.sql
│ │ │ ├── alter_table.sql
│ │ │ ├── alter_table2.sql
│ │ │ ├── alter_table3.sql
│ │ │ ├── amutils.sql
│ │ │ ├── arrays.sql
│ │ │ ├── async.sql
│ │ │ ├── autocommit.sql
│ │ │ ├── bit.sql
│ │ │ ├── bitmapops.sql
│ │ │ ├── boolean.sql
│ │ │ ├── box.sql
│ │ │ ├── brin.sql
│ │ │ ├── btree_index.sql
│ │ │ ├── case.sql
│ │ │ ├── char.sql
│ │ │ ├── charset_zh_CN.sql
│ │ │ ├── circle.sql
│ │ │ ├── cluster.sql
│ │ │ ├── collate.icu.utf8.sql
│ │ │ ├── collate.linux.utf8.sql
│ │ │ ├── collate.sql
│ │ │ ├── combocid.sql
│ │ │ ├── comments.sql
│ │ │ ├── conversion.sql
│ │ │ ├── copy2.sql
│ │ │ ├── copydml.sql
│ │ │ ├── copyselect.sql
│ │ │ ├── coverage.sql
│ │ │ ├── create_aggregate.sql
│ │ │ ├── create_am.sql
│ │ │ ├── create_cast.sql
│ │ │ ├── create_function_3.sql
│ │ │ ├── create_index.sql
│ │ │ ├── create_misc.sql
│ │ │ ├── create_operator.sql
│ │ │ ├── create_procedure.sql
│ │ │ ├── create_table.sql
│ │ │ ├── create_table_like.sql
│ │ │ ├── create_type.sql
│ │ │ ├── create_view.sql
│ │ │ ├── datatypes_simple.sql
│ │ │ ├── date.sql
│ │ │ ├── dbsize.sql
│ │ │ ├── delete.sql
│ │ │ ├── dependency.sql
│ │ │ ├── domain.sql
│ │ │ ├── drop_if_exists.sql
│ │ │ ├── drop_operator.sql
│ │ │ ├── enum.sql
│ │ │ ├── enum2.sql
│ │ │ ├── equivclass.sql
│ │ │ ├── errors.sql
│ │ │ ├── event_trigger.sql
│ │ │ ├── expressions.sql
│ │ │ ├── fast_default.sql
│ │ │ ├── float4.sql
│ │ │ ├── float8.sql
│ │ │ ├── foreign_data.sql
│ │ │ ├── foreign_key.sql
│ │ │ ├── functional_deps.sql
│ │ │ ├── geometry.sql
│ │ │ ├── gin.sql
│ │ │ ├── gist.sql
│ │ │ ├── groupingsets.sql
│ │ │ ├── guc.sql
│ │ │ ├── hash_func.sql
│ │ │ ├── hash_index.sql
│ │ │ ├── hash_part.sql
│ │ │ ├── horology.sql
│ │ │ ├── hs_primary_extremes.sql
│ │ │ ├── hs_primary_setup.sql
│ │ │ ├── hs_standby_allowed.sql
│ │ │ ├── hs_standby_check.sql
│ │ │ ├── hs_standby_disallowed.sql
│ │ │ ├── hs_standby_functions.sql
│ │ │ ├── identity.sql
│ │ │ ├── index_including.sql
│ │ │ ├── indexing.sql
│ │ │ ├── indirect_toast.sql
│ │ │ ├── inet.sql
│ │ │ ├── inherit.sql
│ │ │ ├── init_privs.sql
│ │ │ ├── insert.sql
│ │ │ ├── insert_conflict.sql
│ │ │ ├── int2.sql
│ │ │ ├── int4.sql
│ │ │ ├── int8.sql
│ │ │ ├── interval.sql
│ │ │ ├── joinpart.sql
│ │ │ ├── json.sql
│ │ │ ├── json_encoding.sql
│ │ │ ├── jsonb.sql
│ │ │ ├── kunlun_alter_table.sql
│ │ │ ├── kunlun_remote.sql
│ │ │ ├── kunlun_remote_dml.sql
│ │ │ ├── kunlun_sequence_noalter.sql
│ │ │ ├── kunlun_vars.sql
│ │ │ ├── lex_quotes_pg.sql
│ │ │ ├── limit.sql
│ │ │ ├── line.sql
│ │ │ ├── lock.sql
│ │ │ ├── lseg.sql
│ │ │ ├── macaddr.sql
│ │ │ ├── macaddr8.sql
│ │ │ ├── matview.sql
│ │ │ ├── misc_functions.sql
│ │ │ ├── misc_sanity.sql
│ │ │ ├── money.sql
│ │ │ ├── name.sql
│ │ │ ├── namespace.sql
│ │ │ ├── numeric.sql
│ │ │ ├── numeric_big.sql
│ │ │ ├── numerology.sql
│ │ │ ├── object_address.sql
│ │ │ ├── oid.sql
│ │ │ ├── oidjoins.sql
│ │ │ ├── opr_sanity.sql
│ │ │ ├── partition_aggregate.sql
│ │ │ ├── partition_join.sql
│ │ │ ├── partition_prune.sql
│ │ │ ├── password.sql
│ │ │ ├── path.sql
│ │ │ ├── pg_lsn.sql
│ │ │ ├── plancache.sql
│ │ │ ├── plpgsql.sql
│ │ │ ├── point.sql
│ │ │ ├── polygon.sql
│ │ │ ├── polymorphism.sql
│ │ │ ├── portals.sql
│ │ │ ├── portals_p2.sql
│ │ │ ├── prepare.sql
│ │ │ ├── prepared_xacts.sql
│ │ │ ├── privileges.sql
│ │ │ ├── psql.sql
│ │ │ ├── psql_crosstab.sql
│ │ │ ├── publication.sql
│ │ │ ├── random.sql
│ │ │ ├── rangefuncs.sql
│ │ │ ├── rangetypes.sql
│ │ │ ├── regex.linux.utf8.sql
│ │ │ ├── regex.sql
│ │ │ ├── regproc.sql
│ │ │ ├── reindex_catalog.sql
│ │ │ ├── reloptions.sql
│ │ │ ├── reltime.sql
│ │ │ ├── remote.sql
│ │ │ ├── remote_dml.sql
│ │ │ ├── remote_dml3.sql
│ │ │ ├── remote_dml4.sql
│ │ │ ├── remote_opt.sql
│ │ │ ├── replica_identity.sql
│ │ │ ├── returning.sql
│ │ │ ├── roleattributes.sql
│ │ │ ├── rolenames.sql
│ │ │ ├── rowsecurity.sql
│ │ │ ├── rowtypes.sql
│ │ │ ├── rules.sql
│ │ │ ├── sanity_check.sql
│ │ │ ├── schema.sql
│ │ │ ├── security_label.sql
│ │ │ ├── select_having.sql
│ │ │ ├── select_implicit.sql
│ │ │ ├── select_into.sql
│ │ │ ├── select_parallel.sql
│ │ │ ├── select_views.sql
│ │ │ ├── sequence.sql
│ │ │ ├── sequence_noalter.sql
│ │ │ ├── spgist.sql
│ │ │ ├── stats.sql
│ │ │ ├── stats_ext.sql
│ │ │ ├── strings.sql
│ │ │ ├── subscription.sql
│ │ │ ├── subselect.sql
│ │ │ ├── sysviews.sql
│ │ │ ├── tablesample.sql
│ │ │ ├── temp.sql
│ │ │ ├── text.sql
│ │ │ ├── tidscan.sql
│ │ │ ├── time.sql
│ │ │ ├── timestamp.sql
│ │ │ ├── timestamptz.sql
│ │ │ ├── timetz.sql
│ │ │ ├── tinterval.sql
│ │ │ ├── transactions.sql
│ │ │ ├── triggers.sql
│ │ │ ├── triggers_1.sql
│ │ │ ├── truncate.sql
│ │ │ ├── tsdicts.sql
│ │ │ ├── tsearch.sql
│ │ │ ├── tsrf.sql
│ │ │ ├── tstypes.sql
│ │ │ ├── txid.sql
│ │ │ ├── type_sanity.sql
│ │ │ ├── typed_table.sql
│ │ │ ├── updatable_views.sql
│ │ │ ├── update.sql
│ │ │ ├── uuid.sql
│ │ │ ├── vacuum.sql
│ │ │ ├── varchar.sql
│ │ │ ├── window.sql
│ │ │ ├── with.sql
│ │ │ ├── without_oid.sql
│ │ │ ├── write_parallel.sql
│ │ │ ├── xml.sql
│ │ │ └── xmlmap.sql
│ │ └── standby_schedule
│ ├── ssl/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── cas.config
│ │ ├── client.config
│ │ ├── client_ca.config
│ │ ├── root_ca.config
│ │ ├── server-cn-and-alt-names.config
│ │ ├── server-cn-only.config
│ │ ├── server-multiple-alt-names.config
│ │ ├── server-no-names.config
│ │ ├── server-revoked.config
│ │ ├── server-single-alt-name.config
│ │ ├── server_ca.config
│ │ ├── ssl/
│ │ │ ├── .gitignore
│ │ │ ├── both-cas-1.crt
│ │ │ ├── both-cas-2.crt
│ │ │ ├── client+client_ca.crt
│ │ │ ├── client-revoked.crt
│ │ │ ├── client-revoked.key
│ │ │ ├── client.crl
│ │ │ ├── client.crt
│ │ │ ├── client.key
│ │ │ ├── client_ca.crt
│ │ │ ├── client_ca.key
│ │ │ ├── root+client.crl
│ │ │ ├── root+client_ca.crt
│ │ │ ├── root+server.crl
│ │ │ ├── root+server_ca.crt
│ │ │ ├── root.crl
│ │ │ ├── root_ca.crt
│ │ │ ├── root_ca.key
│ │ │ ├── server-cn-and-alt-names.crt
│ │ │ ├── server-cn-and-alt-names.key
│ │ │ ├── server-cn-only.crt
│ │ │ ├── server-cn-only.key
│ │ │ ├── server-multiple-alt-names.crt
│ │ │ ├── server-multiple-alt-names.key
│ │ │ ├── server-no-names.crt
│ │ │ ├── server-no-names.key
│ │ │ ├── server-password.key
│ │ │ ├── server-revoked.crt
│ │ │ ├── server-revoked.key
│ │ │ ├── server-single-alt-name.crt
│ │ │ ├── server-single-alt-name.key
│ │ │ ├── server-ss.crt
│ │ │ ├── server-ss.key
│ │ │ ├── server.crl
│ │ │ ├── server_ca.crt
│ │ │ └── server_ca.key
│ │ └── t/
│ │ ├── 001_ssltests.pl
│ │ ├── 002_scram.pl
│ │ └── SSLServer.pm
│ ├── subscription/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── t/
│ │ ├── 001_rep_changes.pl
│ │ ├── 002_types.pl
│ │ ├── 003_constraints.pl
│ │ ├── 004_sync.pl
│ │ ├── 005_encoding.pl
│ │ ├── 006_rewrite.pl
│ │ ├── 007_ddl.pl
│ │ ├── 008_diff_schema.pl
│ │ ├── 009_matviews.pl
│ │ ├── 010_truncate.pl
│ │ └── 100_bugs.pl
│ └── thread/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ └── thread_test.c
├── timezone/
│ ├── .gitignore
│ ├── Makefile
│ ├── README
│ ├── data/
│ │ └── tzdata.zi
│ ├── known_abbrevs.txt
│ ├── localtime.c
│ ├── pgtz.c
│ ├── pgtz.h
│ ├── private.h
│ ├── strftime.c
│ ├── tzfile.h
│ ├── tznames/
│ │ ├── Africa.txt
│ │ ├── America.txt
│ │ ├── Antarctica.txt
│ │ ├── Asia.txt
│ │ ├── Atlantic.txt
│ │ ├── Australia
│ │ ├── Australia.txt
│ │ ├── Default
│ │ ├── Etc.txt
│ │ ├── Europe.txt
│ │ ├── India
│ │ ├── Indian.txt
│ │ ├── Makefile
│ │ ├── Pacific.txt
│ │ └── README
│ └── zic.c
├── tools/
│ ├── FAQ2txt
│ ├── RELEASE_CHANGES
│ ├── ccsym
│ ├── check_bison_recursion.pl
│ ├── codelines
│ ├── copyright.pl
│ ├── editors/
│ │ ├── emacs.samples
│ │ └── vim.samples
│ ├── find_badmacros
│ ├── find_static
│ ├── find_typedef
│ ├── findoidjoins/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ ├── findoidjoins.c
│ │ └── make_oidjoins_check
│ ├── fix-old-flex-code.pl
│ ├── git-external-diff
│ ├── git_changelog
│ ├── ifaddrs/
│ │ ├── .gitignore
│ │ ├── Makefile
│ │ ├── README
│ │ └── test_ifaddrs.c
│ ├── make_ctags
│ ├── make_diff/
│ │ ├── README
│ │ ├── cporig
│ │ ├── difforig
│ │ └── rmorig
│ ├── make_etags
│ ├── make_mkid
│ ├── msvc/
│ │ ├── .gitignore
│ │ ├── Install.pm
│ │ ├── MSBuildProject.pm
│ │ ├── Mkvcbuild.pm
│ │ ├── Project.pm
│ │ ├── README
│ │ ├── Solution.pm
│ │ ├── VCBuildProject.pm
│ │ ├── VSObjectFactory.pm
│ │ ├── build.bat
│ │ ├── build.pl
│ │ ├── builddoc.bat
│ │ ├── builddoc.pl
│ │ ├── clean.bat
│ │ ├── config_default.pl
│ │ ├── dummylib/
│ │ │ ├── README
│ │ │ ├── Win32/
│ │ │ │ └── Registry.pm
│ │ │ ├── Win32.pm
│ │ │ └── Win32API/
│ │ │ └── File.pm
│ │ ├── ecpg_regression.proj
│ │ ├── gendef.pl
│ │ ├── install.bat
│ │ ├── install.pl
│ │ ├── mkvcbuild.pl
│ │ ├── pgbison.bat
│ │ ├── pgbison.pl
│ │ ├── pgflex.bat
│ │ ├── pgflex.pl
│ │ ├── vcregress.bat
│ │ └── vcregress.pl
│ ├── perlcheck/
│ │ ├── find_perl_files
│ │ ├── perlcriticrc
│ │ ├── pgperlcritic
│ │ └── pgperlsyncheck
│ ├── pginclude/
│ │ ├── README
│ │ ├── cpluspluscheck
│ │ ├── pgcheckdefines
│ │ ├── pgcompinclude
│ │ ├── pgdefine
│ │ ├── pgfixinclude
│ │ └── pgrminclude
│ ├── pgindent/
│ │ ├── README
│ │ ├── exclude_file_patterns
│ │ ├── perltidyrc
│ │ ├── pgindent
│ │ ├── pgindent.man
│ │ ├── pgperltidy
│ │ └── typedefs.list
│ ├── pgtest
│ ├── testint128.c
│ ├── valgrind.supp
│ ├── version_stamp.pl
│ └── win32tzlist.pl
└── tutorial/
├── Makefile
├── README
├── advanced.source
├── basics.source
├── complex.c
├── complex.source
├── funcs.c
├── funcs.source
├── funcs_new.c
└── syscat.source
Showing preview only (1,824K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (30783 symbols across 2267 files)
FILE: contrib/adminpack/adminpack--1.0.sql
function pg_catalog (line 12) | CREATE FUNCTION pg_catalog.pg_file_write(text, text, bool)
function pg_catalog (line 17) | CREATE FUNCTION pg_catalog.pg_file_rename(text, text, text)
function pg_catalog (line 22) | CREATE FUNCTION pg_catalog.pg_file_rename(text, text)
function pg_catalog (line 27) | CREATE FUNCTION pg_catalog.pg_file_unlink(text)
function pg_catalog (line 32) | CREATE FUNCTION pg_catalog.pg_logdir_ls()
function pg_catalog (line 40) | CREATE FUNCTION pg_catalog.pg_file_read(text, bigint, bigint)
function pg_catalog (line 45) | CREATE FUNCTION pg_catalog.pg_file_length(text)
function pg_catalog (line 50) | CREATE FUNCTION pg_catalog.pg_logfile_rotate()
FILE: contrib/adminpack/adminpack--1.1--2.0.sql
function pg_catalog (line 12) | CREATE OR REPLACE FUNCTION pg_catalog.pg_file_write(text, text, bool)
function pg_catalog (line 19) | CREATE OR REPLACE FUNCTION pg_catalog.pg_file_rename(text, text, text)
function pg_catalog (line 26) | CREATE OR REPLACE FUNCTION pg_catalog.pg_file_rename(text, text)
function pg_catalog (line 31) | CREATE OR REPLACE FUNCTION pg_catalog.pg_file_unlink(text)
function pg_catalog (line 38) | CREATE OR REPLACE FUNCTION pg_catalog.pg_logdir_ls()
FILE: contrib/adminpack/adminpack.c
type directory_fctx (line 57) | typedef struct
function requireSuperuser (line 120) | static void
function Datum (line 138) | Datum
function Datum (line 162) | Datum
function int64 (line 180) | static int64
function Datum (line 225) | Datum
function Datum (line 260) | Datum
function pg_file_rename_internal (line 289) | static bool
function Datum (line 382) | Datum
function Datum (line 422) | Datum
function Datum (line 457) | Datum
function Datum (line 477) | Datum
function Datum (line 483) | static Datum
FILE: contrib/amcheck/amcheck--1.0--1.1.sql
function bt_index_check (line 12) | CREATE FUNCTION bt_index_check(index regclass,
function bt_index_parent_check (line 21) | CREATE FUNCTION bt_index_parent_check(index regclass,
FILE: contrib/amcheck/amcheck--1.0.sql
function bt_index_check (line 9) | CREATE FUNCTION bt_index_check(index regclass)
function bt_index_parent_check (line 17) | CREATE FUNCTION bt_index_parent_check(index regclass)
FILE: contrib/amcheck/sql/check_btree.sql
type bttest_a (line 1) | CREATE TABLE bttest_a(id int8)
type bttest_b (line 2) | CREATE TABLE bttest_b(id int8)
type bttest_multi (line 3) | CREATE TABLE bttest_multi(id int8, data int8)
type delete_test_table (line 4) | CREATE TABLE delete_test_table (a bigint, b bigint, c bigint, d bigint)
type bttest_multi_idx (line 18) | CREATE UNIQUE INDEX bttest_multi_idx ON bttest_multi
type bttest_a_brin_idx (line 51) | CREATE INDEX bttest_a_brin_idx ON bttest_a USING brin(id)
type toast_bug (line 95) | CREATE TABLE toast_bug(buggy text)
type toasty (line 98) | CREATE INDEX toasty ON toast_bug(buggy)
FILE: contrib/amcheck/verify_nbtree.c
type BtreeCheckState (line 59) | typedef struct BtreeCheckState
type BtreeLevel (line 105) | typedef struct BtreeLevel
function Datum (line 160) | Datum
function Datum (line 183) | Datum
function bt_index_check_internal (line 200) | static void
function btree_index_checkable (line 276) | static inline void
function bt_check_every_level (line 325) | static void
function BtreeLevel (line 578) | static BtreeLevel
function bt_target_page_check (line 796) | static void
function ScanKey (line 1118) | static ScanKey
function bt_downlink_check (line 1323) | static void
function bt_downlink_missing_check (line 1458) | static void
function bt_tuple_present_callback (line 1686) | static void
function IndexTuple (line 1754) | static IndexTuple
function offset_is_negative_infinity (line 1837) | static inline bool
function invariant_leq_offset (line 1870) | static inline bool
function invariant_geq_offset (line 1889) | static inline bool
function invariant_leq_nontarget_offset (line 1911) | static inline bool
function Page (line 1936) | static Page
FILE: contrib/auth_delay/auth_delay.c
function auth_delay_checks (line 34) | static void
function _PG_init (line 55) | void
FILE: contrib/auto_explain/auto_explain.c
type config_enum_entry (line 36) | struct config_enum_entry
function _PG_init (line 75) | void
function _PG_fini (line 198) | void
function explain_ExecutorStart (line 211) | static void
function explain_ExecutorRun (line 273) | static void
function explain_ExecutorFinish (line 297) | static void
function explain_ExecutorEnd (line 320) | static void
FILE: contrib/bloom/blcost.c
function blcostestimate (line 24) | void
FILE: contrib/bloom/blinsert.c
type BloomBuildState (line 33) | typedef struct
function flushCachedPage (line 46) | static void
function initCachedPage (line 63) | static void
function bloomBuildCallback (line 74) | static void
function IndexBuildResult (line 121) | IndexBuildResult *
function blbuildempty (line 164) | void
function blinsert (line 197) | bool
FILE: contrib/bloom/bloom--1.0.sql
function blhandler (line 6) | CREATE FUNCTION blhandler(internal)
FILE: contrib/bloom/bloom.h
type BloomPageOpaqueData (line 32) | typedef struct BloomPageOpaqueData
type BloomPageOpaqueData (line 42) | typedef BloomPageOpaqueData *BloomPageOpaque;
type uint16 (line 83) | typedef uint16 BloomSignatureWord;
type BloomOptions (line 100) | typedef struct BloomOptions
type BlockNumber (line 112) | typedef BlockNumber FreeBlockNumberArray[
type BloomMetaPageData (line 120) | typedef struct BloomMetaPageData
type BloomState (line 137) | typedef struct BloomState
type BloomTuple (line 158) | typedef struct BloomTuple
type BloomScanOpaqueData (line 167) | typedef struct BloomScanOpaqueData
type BloomScanOpaqueData (line 173) | typedef BloomScanOpaqueData *BloomScanOpaque;
type IndexInfo (line 193) | struct IndexInfo
type IndexInfo (line 200) | struct IndexInfo
FILE: contrib/bloom/blscan.c
function IndexScanDesc (line 28) | IndexScanDesc
function blrescan (line 48) | void
function blendscan (line 68) | void
function int64 (line 81) | int64
FILE: contrib/bloom/blutils.c
function _PG_init (line 52) | void
function BloomOptions (line 85) | static BloomOptions *
function Datum (line 104) | Datum
function initBloomState (line 153) | void
function int32 (line 213) | static int32
function mySrand (line 240) | static void
function signValue (line 251) | void
function BloomTuple (line 284) | BloomTuple *
function BloomPageAddItem (line 309) | bool
function Buffer (line 344) | Buffer
function BloomInitPage (line 398) | void
function BloomFillMetapage (line 414) | void
function BloomInitMetapage (line 446) | void
function bytea (line 473) | bytea *
FILE: contrib/bloom/blvacuum.c
function IndexBulkDeleteResult (line 33) | IndexBulkDeleteResult *
function IndexBulkDeleteResult (line 168) | IndexBulkDeleteResult *
FILE: contrib/bloom/blvalidate.c
function blvalidate (line 32) | bool
FILE: contrib/bloom/sql/bloom.sql
type tst (line 3) | CREATE TABLE tst (
type bloomidx (line 9) | CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (col1 = 3)
type tstu (line 55) | CREATE UNLOGGED TABLE tstu (
type bloomidxu (line 61) | CREATE INDEX bloomidxu ON tstu USING bloom (i, t) WITH (col2 = 4)
type bloomidx (line 89) | CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (length=7, col1=4)
type bloomidx2 (line 94) | CREATE INDEX bloomidx2 ON tst USING bloom (i, t) WITH (col1=0)
FILE: contrib/btree_gin/btree_gin--1.0--1.1.sql
function gin_extract_value_macaddr8 (line 7) | CREATE FUNCTION gin_extract_value_macaddr8(macaddr8, internal)
function gin_compare_prefix_macaddr8 (line 12) | CREATE FUNCTION gin_compare_prefix_macaddr8(macaddr8, macaddr8, int2, in...
function gin_extract_query_macaddr8 (line 17) | CREATE FUNCTION gin_extract_query_macaddr8(macaddr8, internal, int2, int...
FILE: contrib/btree_gin/btree_gin--1.0.sql
function gin_btree_consistent (line 6) | CREATE FUNCTION gin_btree_consistent(internal, int2, anyelement, int4, i...
function gin_extract_value_int2 (line 11) | CREATE FUNCTION gin_extract_value_int2(int2, internal)
function gin_compare_prefix_int2 (line 16) | CREATE FUNCTION gin_compare_prefix_int2(int2, int2, int2, internal)
function gin_extract_query_int2 (line 21) | CREATE FUNCTION gin_extract_query_int2(int2, internal, int2, internal, i...
function gin_extract_value_int4 (line 26) | CREATE OPERATOR CLASS int2_ops
function gin_compare_prefix_int4 (line 46) | CREATE FUNCTION gin_compare_prefix_int4(int4, int4, int2, internal)
function gin_extract_query_int4 (line 51) | CREATE FUNCTION gin_extract_query_int4(int4, internal, int2, internal, i...
function gin_extract_value_int8 (line 56) | CREATE OPERATOR CLASS int4_ops
function gin_compare_prefix_int8 (line 76) | CREATE FUNCTION gin_compare_prefix_int8(int8, int8, int2, internal)
function gin_extract_query_int8 (line 81) | CREATE FUNCTION gin_extract_query_int8(int8, internal, int2, internal, i...
function gin_extract_value_float4 (line 86) | CREATE OPERATOR CLASS int8_ops
function gin_compare_prefix_float4 (line 106) | CREATE FUNCTION gin_compare_prefix_float4(float4, float4, int2, internal)
function gin_extract_query_float4 (line 111) | CREATE FUNCTION gin_extract_query_float4(float4, internal, int2, interna...
function gin_extract_value_float8 (line 116) | CREATE OPERATOR CLASS float4_ops
function gin_compare_prefix_float8 (line 136) | CREATE FUNCTION gin_compare_prefix_float8(float8, float8, int2, internal)
function gin_extract_query_float8 (line 141) | CREATE FUNCTION gin_extract_query_float8(float8, internal, int2, interna...
function gin_extract_value_money (line 146) | CREATE OPERATOR CLASS float8_ops
function gin_compare_prefix_money (line 166) | CREATE FUNCTION gin_compare_prefix_money(money, money, int2, internal)
function gin_extract_query_money (line 171) | CREATE FUNCTION gin_extract_query_money(money, internal, int2, internal,...
function gin_extract_value_oid (line 176) | CREATE OPERATOR CLASS money_ops
function gin_compare_prefix_oid (line 196) | CREATE FUNCTION gin_compare_prefix_oid(oid, oid, int2, internal)
function gin_extract_query_oid (line 201) | CREATE FUNCTION gin_extract_query_oid(oid, internal, int2, internal, int...
function gin_extract_value_timestamp (line 206) | CREATE OPERATOR CLASS oid_ops
function gin_compare_prefix_timestamp (line 226) | CREATE FUNCTION gin_compare_prefix_timestamp(timestamp, timestamp, int2,...
function gin_extract_query_timestamp (line 231) | CREATE FUNCTION gin_extract_query_timestamp(timestamp, internal, int2, i...
function gin_extract_value_timestamptz (line 236) | CREATE OPERATOR CLASS timestamp_ops
function gin_compare_prefix_timestamptz (line 256) | CREATE FUNCTION gin_compare_prefix_timestamptz(timestamptz, timestamptz,...
function gin_extract_query_timestamptz (line 261) | CREATE FUNCTION gin_extract_query_timestamptz(timestamptz, internal, int...
function gin_extract_value_time (line 266) | CREATE OPERATOR CLASS timestamptz_ops
function gin_compare_prefix_time (line 286) | CREATE FUNCTION gin_compare_prefix_time(time, time, int2, internal)
function gin_extract_query_time (line 291) | CREATE FUNCTION gin_extract_query_time(time, internal, int2, internal, i...
function gin_extract_value_timetz (line 296) | CREATE OPERATOR CLASS time_ops
function gin_compare_prefix_timetz (line 316) | CREATE FUNCTION gin_compare_prefix_timetz(timetz, timetz, int2, internal)
function gin_extract_query_timetz (line 321) | CREATE FUNCTION gin_extract_query_timetz(timetz, internal, int2, interna...
function gin_extract_value_date (line 326) | CREATE OPERATOR CLASS timetz_ops
function gin_compare_prefix_date (line 346) | CREATE FUNCTION gin_compare_prefix_date(date, date, int2, internal)
function gin_extract_query_date (line 351) | CREATE FUNCTION gin_extract_query_date(date, internal, int2, internal, i...
function gin_extract_value_interval (line 356) | CREATE OPERATOR CLASS date_ops
function gin_compare_prefix_interval (line 376) | CREATE FUNCTION gin_compare_prefix_interval(interval, interval, int2, in...
function gin_extract_query_interval (line 381) | CREATE FUNCTION gin_extract_query_interval(interval, internal, int2, int...
function gin_extract_value_macaddr (line 386) | CREATE OPERATOR CLASS interval_ops
function gin_compare_prefix_macaddr (line 406) | CREATE FUNCTION gin_compare_prefix_macaddr(macaddr, macaddr, int2, inter...
function gin_extract_query_macaddr (line 411) | CREATE FUNCTION gin_extract_query_macaddr(macaddr, internal, int2, inter...
function gin_extract_value_inet (line 416) | CREATE OPERATOR CLASS macaddr_ops
function gin_compare_prefix_inet (line 436) | CREATE FUNCTION gin_compare_prefix_inet(inet, inet, int2, internal)
function gin_extract_query_inet (line 441) | CREATE FUNCTION gin_extract_query_inet(inet, internal, int2, internal, i...
function gin_extract_value_cidr (line 446) | CREATE OPERATOR CLASS inet_ops
function gin_compare_prefix_cidr (line 466) | CREATE FUNCTION gin_compare_prefix_cidr(cidr, cidr, int2, internal)
function gin_extract_query_cidr (line 471) | CREATE FUNCTION gin_extract_query_cidr(cidr, internal, int2, internal, i...
function gin_extract_value_text (line 491) | CREATE FUNCTION gin_extract_value_text(text, internal)
function gin_compare_prefix_text (line 496) | CREATE FUNCTION gin_compare_prefix_text(text, text, int2, internal)
function gin_extract_query_text (line 501) | CREATE FUNCTION gin_extract_query_text(text, internal, int2, internal, i...
function gin_extract_value_char (line 536) | CREATE FUNCTION gin_extract_value_char("char", internal)
function gin_compare_prefix_char (line 541) | CREATE FUNCTION gin_compare_prefix_char("char", "char", int2, internal)
function gin_extract_query_char (line 546) | CREATE FUNCTION gin_extract_query_char("char", internal, int2, internal,...
function gin_extract_value_bytea (line 551) | CREATE OPERATOR CLASS char_ops
function gin_compare_prefix_bytea (line 571) | CREATE FUNCTION gin_compare_prefix_bytea(bytea, bytea, int2, internal)
function gin_extract_query_bytea (line 576) | CREATE FUNCTION gin_extract_query_bytea(bytea, internal, int2, internal,...
function gin_extract_value_bit (line 581) | CREATE OPERATOR CLASS bytea_ops
function gin_compare_prefix_bit (line 601) | CREATE FUNCTION gin_compare_prefix_bit(bit, bit, int2, internal)
function gin_extract_query_bit (line 606) | CREATE FUNCTION gin_extract_query_bit(bit, internal, int2, internal, int...
function gin_extract_value_varbit (line 611) | CREATE OPERATOR CLASS bit_ops
function gin_compare_prefix_varbit (line 631) | CREATE FUNCTION gin_compare_prefix_varbit(varbit, varbit, int2, internal)
function gin_extract_query_varbit (line 636) | CREATE FUNCTION gin_extract_query_varbit(varbit, internal, int2, interna...
function gin_extract_value_numeric (line 641) | CREATE OPERATOR CLASS varbit_ops
function gin_compare_prefix_numeric (line 661) | CREATE FUNCTION gin_compare_prefix_numeric(numeric, numeric, int2, inter...
function gin_extract_query_numeric (line 666) | CREATE FUNCTION gin_extract_query_numeric(numeric, internal, int2, inter...
function gin_numeric_cmp (line 671) | CREATE FUNCTION gin_numeric_cmp(numeric, numeric)
FILE: contrib/btree_gin/btree_gin--1.1--1.2.sql
function gin_extract_value_anyenum (line 14) | CREATE FUNCTION gin_extract_value_anyenum(anyenum, internal)
function gin_compare_prefix_anyenum (line 19) | CREATE FUNCTION gin_compare_prefix_anyenum(anyenum, anyenum, int2, inter...
function gin_extract_query_anyenum (line 24) | CREATE FUNCTION gin_extract_query_anyenum(anyenum, internal, int2, inter...
function gin_enum_cmp (line 29) | CREATE FUNCTION gin_enum_cmp(anyenum, anyenum)
FILE: contrib/btree_gin/btree_gin--1.2--1.3.sql
function gin_extract_value_uuid (line 7) | CREATE FUNCTION gin_extract_value_uuid(uuid, internal)
function gin_compare_prefix_uuid (line 12) | CREATE FUNCTION gin_compare_prefix_uuid(uuid, uuid, int2, internal)
function gin_extract_query_uuid (line 17) | CREATE FUNCTION gin_extract_query_uuid(uuid, internal, int2, internal, i...
function gin_extract_value_name (line 22) | CREATE OPERATOR CLASS uuid_ops
function gin_compare_prefix_name (line 43) | CREATE FUNCTION gin_compare_prefix_name(name, name, int2, internal)
function gin_extract_query_name (line 48) | CREATE FUNCTION gin_extract_query_name(name, internal, int2, internal, i...
function gin_extract_value_bool (line 53) | CREATE OPERATOR CLASS name_ops
function gin_compare_prefix_bool (line 74) | CREATE FUNCTION gin_compare_prefix_bool(bool, bool, int2, internal)
function gin_extract_query_bool (line 79) | CREATE FUNCTION gin_extract_query_bool(bool, internal, int2, internal, i...
function gin_extract_value_bpchar (line 84) | CREATE OPERATOR CLASS bool_ops
function gin_compare_prefix_bpchar (line 105) | CREATE FUNCTION gin_compare_prefix_bpchar(bpchar, bpchar, int2, internal)
function gin_extract_query_bpchar (line 110) | CREATE FUNCTION gin_extract_query_bpchar(bpchar, internal, int2, interna...
FILE: contrib/btree_gin/btree_gin.c
type QueryInfo (line 21) | typedef struct QueryInfo
function Datum (line 31) | static Datum
function Datum (line 54) | static Datum
function Datum (line 107) | static Datum
function Datum (line 174) | Datum
function Datum (line 209) | static Datum
function Datum (line 217) | static Datum
function Datum (line 225) | static Datum
function Datum (line 233) | static Datum
function Datum (line 241) | static Datum
function Datum (line 249) | static Datum
function Datum (line 257) | static Datum
function Datum (line 265) | static Datum
function Datum (line 275) | static Datum
function Datum (line 283) | static Datum
function Datum (line 296) | static Datum
function Datum (line 304) | static Datum
function Datum (line 317) | static Datum
function Datum (line 327) | static Datum
function Datum (line 337) | static Datum
function Datum (line 347) | static Datum
function Datum (line 357) | static Datum
function Datum (line 367) | static Datum
function Datum (line 378) | static Datum
function Datum (line 401) | Datum
function Datum (line 426) | static Datum
function Datum (line 448) | Datum
function Datum (line 476) | static Datum
function Datum (line 484) | static Datum
function Datum (line 498) | static Datum
function Datum (line 508) | static Datum
FILE: contrib/btree_gin/sql/bit.sql
type test_bit (line 3) | CREATE TABLE test_bit (
type idx_bit (line 9) | CREATE INDEX idx_bit ON test_bit USING gin (i)
FILE: contrib/btree_gin/sql/bool.sql
type test_bool (line 3) | CREATE TABLE test_bool (
type idx_bool (line 9) | CREATE INDEX idx_bool ON test_bool USING gin (i)
FILE: contrib/btree_gin/sql/bpchar.sql
type test_bpchar (line 3) | CREATE TABLE test_bpchar (
type idx_bpchar (line 9) | CREATE INDEX idx_bpchar ON test_bpchar USING gin (i)
FILE: contrib/btree_gin/sql/bytea.sql
type test_bytea (line 5) | CREATE TABLE test_bytea (
type idx_bytea (line 11) | CREATE INDEX idx_bytea ON test_bytea USING gin (i)
FILE: contrib/btree_gin/sql/char.sql
type test_char (line 3) | CREATE TABLE test_char (
type idx_char (line 9) | CREATE INDEX idx_char ON test_char USING gin (i)
FILE: contrib/btree_gin/sql/cidr.sql
type test_cidr (line 3) | CREATE TABLE test_cidr (
type idx_cidr (line 16) | CREATE INDEX idx_cidr ON test_cidr USING gin (i)
FILE: contrib/btree_gin/sql/date.sql
type test_date (line 3) | CREATE TABLE test_date (
type idx_date (line 16) | CREATE INDEX idx_date ON test_date USING gin (i)
FILE: contrib/btree_gin/sql/enum.sql
type test_enum (line 5) | CREATE TABLE test_enum (
type idx_enum (line 11) | CREATE INDEX idx_enum ON test_enum USING gin (i)
type t (line 25) | create table t as select (i % 4)::text::e from generate_series(0, 100000...
type t (line 26) | create index on t using gin (e)
FILE: contrib/btree_gin/sql/float4.sql
type test_float4 (line 3) | CREATE TABLE test_float4 (
type idx_float4 (line 9) | CREATE INDEX idx_float4 ON test_float4 USING gin (i)
FILE: contrib/btree_gin/sql/float8.sql
type test_float8 (line 3) | CREATE TABLE test_float8 (
type idx_float8 (line 9) | CREATE INDEX idx_float8 ON test_float8 USING gin (i)
FILE: contrib/btree_gin/sql/inet.sql
type test_inet (line 3) | CREATE TABLE test_inet (
type idx_inet (line 16) | CREATE INDEX idx_inet ON test_inet USING gin (i)
FILE: contrib/btree_gin/sql/int2.sql
type test_int2 (line 3) | CREATE TABLE test_int2 (
type idx_int2 (line 9) | CREATE INDEX idx_int2 ON test_int2 USING gin (i)
FILE: contrib/btree_gin/sql/int4.sql
type test_int4 (line 3) | CREATE TABLE test_int4 (
type idx_int4 (line 9) | CREATE INDEX idx_int4 ON test_int4 USING gin (i)
FILE: contrib/btree_gin/sql/int8.sql
type test_int8 (line 3) | CREATE TABLE test_int8 (
type idx_int8 (line 9) | CREATE INDEX idx_int8 ON test_int8 USING gin (i)
FILE: contrib/btree_gin/sql/interval.sql
type test_interval (line 3) | CREATE TABLE test_interval (
type idx_interval (line 16) | CREATE INDEX idx_interval ON test_interval USING gin (i)
FILE: contrib/btree_gin/sql/macaddr.sql
type test_macaddr (line 3) | CREATE TABLE test_macaddr (
type idx_macaddr (line 16) | CREATE INDEX idx_macaddr ON test_macaddr USING gin (i)
FILE: contrib/btree_gin/sql/macaddr8.sql
type test_macaddr8 (line 3) | CREATE TABLE test_macaddr8 (
type idx_macaddr8 (line 16) | CREATE INDEX idx_macaddr8 ON test_macaddr8 USING gin (i)
FILE: contrib/btree_gin/sql/money.sql
type test_money (line 3) | CREATE TABLE test_money (
type idx_money (line 9) | CREATE INDEX idx_money ON test_money USING gin (i)
FILE: contrib/btree_gin/sql/name.sql
type test_name (line 3) | CREATE TABLE test_name (
type idx_name (line 9) | CREATE INDEX idx_name ON test_name USING gin (i)
FILE: contrib/btree_gin/sql/numeric.sql
type test_numeric (line 3) | CREATE TABLE test_numeric (
type idx_numeric (line 9) | CREATE INDEX idx_numeric ON test_numeric USING gin (i)
FILE: contrib/btree_gin/sql/oid.sql
type test_oid (line 3) | CREATE TABLE test_oid (
type idx_oid (line 9) | CREATE INDEX idx_oid ON test_oid USING gin (i)
FILE: contrib/btree_gin/sql/text.sql
type test_text (line 3) | CREATE TABLE test_text (
type idx_text (line 9) | CREATE INDEX idx_text ON test_text USING gin (i)
FILE: contrib/btree_gin/sql/time.sql
type test_time (line 3) | CREATE TABLE test_time (
type idx_time (line 16) | CREATE INDEX idx_time ON test_time USING gin (i)
FILE: contrib/btree_gin/sql/timestamp.sql
type test_timestamp (line 3) | CREATE TABLE test_timestamp (
type idx_timestamp (line 16) | CREATE INDEX idx_timestamp ON test_timestamp USING gin (i)
FILE: contrib/btree_gin/sql/timestamptz.sql
type test_timestamptz (line 3) | CREATE TABLE test_timestamptz (
type idx_timestamptz (line 16) | CREATE INDEX idx_timestamptz ON test_timestamptz USING gin (i)
FILE: contrib/btree_gin/sql/timetz.sql
type test_timetz (line 3) | CREATE TABLE test_timetz (
type idx_timetz (line 16) | CREATE INDEX idx_timetz ON test_timetz USING gin (i)
FILE: contrib/btree_gin/sql/uuid.sql
type test_uuid (line 3) | CREATE TABLE test_uuid (
type idx_uuid (line 16) | CREATE INDEX idx_uuid ON test_uuid USING gin (i)
FILE: contrib/btree_gin/sql/varbit.sql
type test_varbit (line 3) | CREATE TABLE test_varbit (
type idx_varbit (line 9) | CREATE INDEX idx_varbit ON test_varbit USING gin (i)
FILE: contrib/btree_gin/sql/varchar.sql
type test_varchar (line 3) | CREATE TABLE test_varchar (
type idx_varchar (line 9) | CREATE INDEX idx_varchar ON test_varchar USING gin (i)
FILE: contrib/btree_gist/btree_bit.c
function gbt_bitgt (line 26) | static bool
function gbt_bitge (line 34) | static bool
function gbt_biteq (line 42) | static bool
function gbt_bitle (line 50) | static bool
function gbt_bitlt (line 58) | static bool
function int32 (line 66) | static int32
function bytea (line 75) | static bytea *
function GBT_VARKEY (line 94) | static GBT_VARKEY *
function Datum (line 129) | Datum
function Datum (line 137) | Datum
function Datum (line 168) | Datum
function Datum (line 179) | Datum
function Datum (line 190) | Datum
function Datum (line 202) | Datum
FILE: contrib/btree_gist/btree_bytea.c
function gbt_byteagt (line 25) | static bool
function gbt_byteage (line 33) | static bool
function gbt_byteaeq (line 41) | static bool
function gbt_byteale (line 49) | static bool
function gbt_bytealt (line 57) | static bool
function int32 (line 65) | static int32
function Datum (line 94) | Datum
function Datum (line 104) | Datum
function Datum (line 127) | Datum
function Datum (line 138) | Datum
function Datum (line 149) | Datum
function Datum (line 161) | Datum
FILE: contrib/btree_gist/btree_cash.c
type cashKEY (line 11) | typedef struct
function gbt_cashgt (line 29) | static bool
function gbt_cashge (line 34) | static bool
function gbt_casheq (line 39) | static bool
function gbt_cashle (line 44) | static bool
function gbt_cashlt (line 49) | static bool
function gbt_cashkey_cmp (line 55) | static int
function float8 (line 72) | static float8
function Datum (line 95) | Datum
function Datum (line 119) | Datum
function Datum (line 127) | Datum
function Datum (line 135) | Datum
function Datum (line 159) | Datum
function Datum (line 178) | Datum
function Datum (line 189) | Datum
function Datum (line 202) | Datum
function Datum (line 212) | Datum
FILE: contrib/btree_gist/btree_date.c
type dateKEY (line 11) | typedef struct
function gbt_dategt (line 29) | static bool
function gbt_datege (line 37) | static bool
function gbt_dateeq (line 45) | static bool
function gbt_datele (line 53) | static bool
function gbt_datelt (line 61) | static bool
function gbt_datekey_cmp (line 71) | static int
function float8 (line 85) | static float8
function Datum (line 113) | Datum
function Datum (line 131) | Datum
function Datum (line 139) | Datum
function Datum (line 147) | Datum
function Datum (line 171) | Datum
function Datum (line 190) | Datum
function Datum (line 201) | Datum
function Datum (line 241) | Datum
function Datum (line 251) | Datum
FILE: contrib/btree_gist/btree_enum.c
type oidKEY (line 13) | typedef struct
function gbt_enumgt (line 31) | static bool
function gbt_enumge (line 38) | static bool
function gbt_enumeq (line 45) | static bool
function gbt_enumle (line 50) | static bool
function gbt_enumlt (line 57) | static bool
function gbt_enumkey_cmp (line 65) | static int
function Datum (line 106) | Datum
function Datum (line 114) | Datum
function Datum (line 122) | Datum
function Datum (line 145) | Datum
function Datum (line 156) | Datum
function Datum (line 168) | Datum
function Datum (line 178) | Datum
FILE: contrib/btree_gist/btree_float4.c
type float4KEY (line 9) | typedef struct float4key
function gbt_float4gt (line 27) | static bool
function gbt_float4ge (line 32) | static bool
function gbt_float4eq (line 37) | static bool
function gbt_float4le (line 42) | static bool
function gbt_float4lt (line 47) | static bool
function gbt_float4key_cmp (line 53) | static int
function float8 (line 70) | static float8
function Datum (line 93) | Datum
function Datum (line 112) | Datum
function Datum (line 120) | Datum
function Datum (line 128) | Datum
function Datum (line 152) | Datum
function Datum (line 171) | Datum
function Datum (line 182) | Datum
function Datum (line 195) | Datum
function Datum (line 205) | Datum
FILE: contrib/btree_gist/btree_float8.c
type float8KEY (line 9) | typedef struct float8key
function gbt_float8gt (line 28) | static bool
function gbt_float8ge (line 33) | static bool
function gbt_float8eq (line 38) | static bool
function gbt_float8le (line 43) | static bool
function gbt_float8lt (line 48) | static bool
function gbt_float8key_cmp (line 54) | static int
function float8 (line 71) | static float8
function Datum (line 101) | Datum
function Datum (line 119) | Datum
function Datum (line 127) | Datum
function Datum (line 135) | Datum
function Datum (line 159) | Datum
function Datum (line 178) | Datum
function Datum (line 189) | Datum
function Datum (line 202) | Datum
function Datum (line 212) | Datum
FILE: contrib/btree_gist/btree_gist--1.0--1.1.sql
function gbt_oid_fetch (line 7) | CREATE FUNCTION gbt_oid_fetch(internal)
function gbt_int2_fetch (line 12) | CREATE FUNCTION gbt_int2_fetch(internal)
function gbt_int4_fetch (line 17) | CREATE FUNCTION gbt_int4_fetch(internal)
function gbt_int8_fetch (line 22) | CREATE FUNCTION gbt_int8_fetch(internal)
function gbt_float4_fetch (line 27) | CREATE FUNCTION gbt_float4_fetch(internal)
function gbt_float8_fetch (line 32) | CREATE FUNCTION gbt_float8_fetch(internal)
function gbt_ts_fetch (line 37) | CREATE FUNCTION gbt_ts_fetch(internal)
function gbt_time_fetch (line 42) | CREATE FUNCTION gbt_time_fetch(internal)
function gbt_date_fetch (line 47) | CREATE FUNCTION gbt_date_fetch(internal)
function gbt_intv_fetch (line 52) | CREATE FUNCTION gbt_intv_fetch(internal)
function gbt_cash_fetch (line 57) | CREATE FUNCTION gbt_cash_fetch(internal)
function gbt_macad_fetch (line 62) | CREATE FUNCTION gbt_macad_fetch(internal)
function gbt_var_fetch (line 67) | CREATE FUNCTION gbt_var_fetch(internal)
FILE: contrib/btree_gist/btree_gist--1.2--1.3.sql
function gbt_uuid_consistent (line 9) | CREATE FUNCTION gbt_uuid_consistent(internal,uuid,int2,oid,internal)
function gbt_uuid_fetch (line 14) | CREATE FUNCTION gbt_uuid_fetch(internal)
function gbt_uuid_compress (line 19) | CREATE FUNCTION gbt_uuid_compress(internal)
function gbt_uuid_penalty (line 24) | CREATE FUNCTION gbt_uuid_penalty(internal,internal,internal)
function gbt_uuid_picksplit (line 29) | CREATE FUNCTION gbt_uuid_picksplit(internal, internal)
function gbt_uuid_union (line 34) | CREATE FUNCTION gbt_uuid_union(internal, internal)
function gbt_uuid_same (line 39) | CREATE FUNCTION gbt_uuid_same(gbtreekey32, gbtreekey32, internal)
FILE: contrib/btree_gist/btree_gist--1.2.sql
function gbtreekey4_in (line 6) | CREATE FUNCTION gbtreekey4_in(cstring)
function gbtreekey4_out (line 11) | CREATE FUNCTION gbtreekey4_out(gbtreekey4)
function gbtreekey8_in (line 22) | CREATE FUNCTION gbtreekey8_in(cstring)
function gbtreekey8_out (line 27) | CREATE FUNCTION gbtreekey8_out(gbtreekey8)
function gbtreekey16_in (line 38) | CREATE FUNCTION gbtreekey16_in(cstring)
function gbtreekey16_out (line 43) | CREATE FUNCTION gbtreekey16_out(gbtreekey16)
function gbtreekey32_in (line 54) | CREATE FUNCTION gbtreekey32_in(cstring)
function gbtreekey32_out (line 59) | CREATE FUNCTION gbtreekey32_out(gbtreekey32)
function gbtreekey_var_in (line 70) | CREATE FUNCTION gbtreekey_var_in(cstring)
function gbtreekey_var_out (line 75) | CREATE FUNCTION gbtreekey_var_out(gbtreekey_var)
function cash_dist (line 89) | CREATE FUNCTION cash_dist(money, money)
function date_dist (line 94) | CREATE OPERATOR <-> (
function float4_dist (line 106) | CREATE OPERATOR <-> (
function float8_dist (line 118) | CREATE OPERATOR <-> (
function int2_dist (line 130) | CREATE OPERATOR <-> (
function int4_dist (line 142) | CREATE OPERATOR <-> (
function int8_dist (line 154) | CREATE OPERATOR <-> (
function interval_dist (line 166) | CREATE OPERATOR <-> (
function oid_dist (line 178) | CREATE OPERATOR <-> (
function time_dist (line 190) | CREATE OPERATOR <-> (
function ts_dist (line 202) | CREATE OPERATOR <-> (
function tstz_dist (line 214) | CREATE OPERATOR <-> (
function gbt_oid_consistent (line 242) | CREATE FUNCTION gbt_oid_consistent(internal,oid,int2,oid,internal)
function gbt_oid_distance (line 247) | CREATE FUNCTION gbt_oid_distance(internal,oid,int2,oid,internal)
function gbt_oid_fetch (line 252) | CREATE FUNCTION gbt_oid_fetch(internal)
function gbt_oid_compress (line 257) | CREATE FUNCTION gbt_oid_compress(internal)
function gbt_decompress (line 262) | CREATE FUNCTION gbt_decompress(internal)
function gbt_var_decompress (line 267) | CREATE FUNCTION gbt_var_decompress(internal)
function gbt_var_fetch (line 272) | CREATE FUNCTION gbt_var_fetch(internal)
function gbt_oid_penalty (line 277) | CREATE FUNCTION gbt_oid_penalty(internal,internal,internal)
function gbt_oid_picksplit (line 282) | CREATE FUNCTION gbt_oid_picksplit(internal, internal)
function gbt_oid_union (line 287) | CREATE FUNCTION gbt_oid_union(internal, internal)
function gbt_oid_same (line 292) | CREATE FUNCTION gbt_oid_same(gbtreekey8, gbtreekey8, internal)
function pg_catalog (line 298) | CREATE OPERATOR CLASS gist_oid_ops
function gbt_int2_distance (line 339) | CREATE FUNCTION gbt_int2_distance(internal,int2,int2,oid,internal)
function gbt_int2_compress (line 344) | CREATE FUNCTION gbt_int2_compress(internal)
function gbt_int2_fetch (line 349) | CREATE FUNCTION gbt_int2_fetch(internal)
function gbt_int2_penalty (line 354) | CREATE FUNCTION gbt_int2_penalty(internal,internal,internal)
function gbt_int2_picksplit (line 359) | CREATE FUNCTION gbt_int2_picksplit(internal, internal)
function gbt_int2_union (line 364) | CREATE FUNCTION gbt_int2_union(internal, internal)
function gbt_int2_same (line 369) | CREATE FUNCTION gbt_int2_same(gbtreekey4, gbtreekey4, internal)
function gbt_int4_consistent (line 375) | CREATE OPERATOR CLASS gist_int2_ops
function gbt_int4_distance (line 411) | CREATE FUNCTION gbt_int4_distance(internal,int4,int2,oid,internal)
function gbt_int4_compress (line 416) | CREATE FUNCTION gbt_int4_compress(internal)
function gbt_int4_fetch (line 421) | CREATE FUNCTION gbt_int4_fetch(internal)
function gbt_int4_penalty (line 426) | CREATE FUNCTION gbt_int4_penalty(internal,internal,internal)
function gbt_int4_picksplit (line 431) | CREATE FUNCTION gbt_int4_picksplit(internal, internal)
function gbt_int4_union (line 436) | CREATE FUNCTION gbt_int4_union(internal, internal)
function gbt_int4_same (line 441) | CREATE FUNCTION gbt_int4_same(gbtreekey8, gbtreekey8, internal)
function gbt_int8_consistent (line 447) | CREATE OPERATOR CLASS gist_int4_ops
function gbt_int8_distance (line 484) | CREATE FUNCTION gbt_int8_distance(internal,int8,int2,oid,internal)
function gbt_int8_compress (line 489) | CREATE FUNCTION gbt_int8_compress(internal)
function gbt_int8_fetch (line 494) | CREATE FUNCTION gbt_int8_fetch(internal)
function gbt_int8_penalty (line 499) | CREATE FUNCTION gbt_int8_penalty(internal,internal,internal)
function gbt_int8_picksplit (line 504) | CREATE FUNCTION gbt_int8_picksplit(internal, internal)
function gbt_int8_union (line 509) | CREATE FUNCTION gbt_int8_union(internal, internal)
function gbt_int8_same (line 514) | CREATE FUNCTION gbt_int8_same(gbtreekey16, gbtreekey16, internal)
function gbt_float4_consistent (line 520) | CREATE OPERATOR CLASS gist_int8_ops
function gbt_float4_distance (line 556) | CREATE FUNCTION gbt_float4_distance(internal,float4,int2,oid,internal)
function gbt_float4_compress (line 561) | CREATE FUNCTION gbt_float4_compress(internal)
function gbt_float4_fetch (line 566) | CREATE FUNCTION gbt_float4_fetch(internal)
function gbt_float4_penalty (line 571) | CREATE FUNCTION gbt_float4_penalty(internal,internal,internal)
function gbt_float4_picksplit (line 576) | CREATE FUNCTION gbt_float4_picksplit(internal, internal)
function gbt_float4_union (line 581) | CREATE FUNCTION gbt_float4_union(internal, internal)
function gbt_float4_same (line 586) | CREATE FUNCTION gbt_float4_same(gbtreekey8, gbtreekey8, internal)
function gbt_float8_consistent (line 592) | CREATE OPERATOR CLASS gist_float4_ops
function gbt_float8_distance (line 628) | CREATE FUNCTION gbt_float8_distance(internal,float8,int2,oid,internal)
function gbt_float8_compress (line 633) | CREATE FUNCTION gbt_float8_compress(internal)
function gbt_float8_fetch (line 638) | CREATE FUNCTION gbt_float8_fetch(internal)
function gbt_float8_penalty (line 643) | CREATE FUNCTION gbt_float8_penalty(internal,internal,internal)
function gbt_float8_picksplit (line 648) | CREATE FUNCTION gbt_float8_picksplit(internal, internal)
function gbt_float8_union (line 653) | CREATE FUNCTION gbt_float8_union(internal, internal)
function gbt_float8_same (line 658) | CREATE FUNCTION gbt_float8_same(gbtreekey16, gbtreekey16, internal)
function gbt_ts_consistent (line 664) | CREATE OPERATOR CLASS gist_float8_ops
function gbt_ts_distance (line 700) | CREATE FUNCTION gbt_ts_distance(internal,timestamp,int2,oid,internal)
function gbt_tstz_consistent (line 705) | CREATE FUNCTION gbt_tstz_consistent(internal,timestamptz,int2,oid,internal)
function gbt_tstz_distance (line 710) | CREATE FUNCTION gbt_tstz_distance(internal,timestamptz,int2,oid,internal)
function gbt_ts_compress (line 715) | CREATE FUNCTION gbt_ts_compress(internal)
function gbt_tstz_compress (line 720) | CREATE FUNCTION gbt_tstz_compress(internal)
function gbt_ts_fetch (line 725) | CREATE FUNCTION gbt_ts_fetch(internal)
function gbt_ts_penalty (line 730) | CREATE FUNCTION gbt_ts_penalty(internal,internal,internal)
function gbt_ts_picksplit (line 735) | CREATE FUNCTION gbt_ts_picksplit(internal, internal)
function gbt_ts_union (line 740) | CREATE FUNCTION gbt_ts_union(internal, internal)
function gbt_ts_same (line 745) | CREATE FUNCTION gbt_ts_same(gbtreekey16, gbtreekey16, internal)
function gbt_time_consistent (line 751) | CREATE OPERATOR CLASS gist_timestamp_ops
function gbt_time_distance (line 811) | CREATE FUNCTION gbt_time_distance(internal,time,int2,oid,internal)
function gbt_timetz_consistent (line 816) | CREATE FUNCTION gbt_timetz_consistent(internal,timetz,int2,oid,internal)
function gbt_time_compress (line 821) | CREATE FUNCTION gbt_time_compress(internal)
function gbt_timetz_compress (line 826) | CREATE FUNCTION gbt_timetz_compress(internal)
function gbt_time_fetch (line 831) | CREATE FUNCTION gbt_time_fetch(internal)
function gbt_time_penalty (line 836) | CREATE FUNCTION gbt_time_penalty(internal,internal,internal)
function gbt_time_picksplit (line 841) | CREATE FUNCTION gbt_time_picksplit(internal, internal)
function gbt_time_union (line 846) | CREATE FUNCTION gbt_time_union(internal, internal)
function gbt_time_same (line 851) | CREATE FUNCTION gbt_time_same(gbtreekey16, gbtreekey16, internal)
function gbt_date_consistent (line 857) | CREATE OPERATOR CLASS gist_time_ops
function gbt_date_distance (line 916) | CREATE FUNCTION gbt_date_distance(internal,date,int2,oid,internal)
function gbt_date_compress (line 921) | CREATE FUNCTION gbt_date_compress(internal)
function gbt_date_fetch (line 926) | CREATE FUNCTION gbt_date_fetch(internal)
function gbt_date_penalty (line 931) | CREATE FUNCTION gbt_date_penalty(internal,internal,internal)
function gbt_date_picksplit (line 936) | CREATE FUNCTION gbt_date_picksplit(internal, internal)
function gbt_date_union (line 941) | CREATE FUNCTION gbt_date_union(internal, internal)
function gbt_date_same (line 946) | CREATE FUNCTION gbt_date_same(gbtreekey8, gbtreekey8, internal)
function gbt_intv_consistent (line 952) | CREATE OPERATOR CLASS gist_date_ops
function gbt_intv_distance (line 989) | CREATE FUNCTION gbt_intv_distance(internal,interval,int2,oid,internal)
function gbt_intv_compress (line 994) | CREATE FUNCTION gbt_intv_compress(internal)
function gbt_intv_decompress (line 999) | CREATE FUNCTION gbt_intv_decompress(internal)
function gbt_intv_fetch (line 1004) | CREATE FUNCTION gbt_intv_fetch(internal)
function gbt_intv_penalty (line 1009) | CREATE FUNCTION gbt_intv_penalty(internal,internal,internal)
function gbt_intv_picksplit (line 1014) | CREATE FUNCTION gbt_intv_picksplit(internal, internal)
function gbt_intv_union (line 1019) | CREATE FUNCTION gbt_intv_union(internal, internal)
function gbt_intv_same (line 1024) | CREATE FUNCTION gbt_intv_same(gbtreekey32, gbtreekey32, internal)
function gbt_cash_consistent (line 1030) | CREATE OPERATOR CLASS gist_interval_ops
function gbt_cash_distance (line 1067) | CREATE FUNCTION gbt_cash_distance(internal,money,int2,oid,internal)
function gbt_cash_compress (line 1072) | CREATE FUNCTION gbt_cash_compress(internal)
function gbt_cash_fetch (line 1077) | CREATE FUNCTION gbt_cash_fetch(internal)
function gbt_cash_penalty (line 1082) | CREATE FUNCTION gbt_cash_penalty(internal,internal,internal)
function gbt_cash_picksplit (line 1087) | CREATE FUNCTION gbt_cash_picksplit(internal, internal)
function gbt_cash_union (line 1092) | CREATE FUNCTION gbt_cash_union(internal, internal)
function gbt_cash_same (line 1097) | CREATE FUNCTION gbt_cash_same(gbtreekey16, gbtreekey16, internal)
function gbt_macad_consistent (line 1103) | CREATE OPERATOR CLASS gist_cash_ops
function gbt_macad_compress (line 1140) | CREATE FUNCTION gbt_macad_compress(internal)
function gbt_macad_fetch (line 1145) | CREATE FUNCTION gbt_macad_fetch(internal)
function gbt_macad_penalty (line 1150) | CREATE FUNCTION gbt_macad_penalty(internal,internal,internal)
function gbt_macad_picksplit (line 1155) | CREATE FUNCTION gbt_macad_picksplit(internal, internal)
function gbt_macad_union (line 1160) | CREATE FUNCTION gbt_macad_union(internal, internal)
function gbt_macad_same (line 1165) | CREATE FUNCTION gbt_macad_same(gbtreekey16, gbtreekey16, internal)
function gbt_text_consistent (line 1171) | CREATE OPERATOR CLASS gist_macaddr_ops
function gbt_bpchar_consistent (line 1206) | CREATE FUNCTION gbt_bpchar_consistent(internal,bpchar,int2,oid,internal)
function gbt_text_compress (line 1211) | CREATE FUNCTION gbt_text_compress(internal)
function gbt_bpchar_compress (line 1216) | CREATE FUNCTION gbt_bpchar_compress(internal)
function gbt_text_penalty (line 1221) | CREATE FUNCTION gbt_text_penalty(internal,internal,internal)
function gbt_text_picksplit (line 1226) | CREATE FUNCTION gbt_text_picksplit(internal, internal)
function gbt_text_union (line 1231) | CREATE FUNCTION gbt_text_union(internal, internal)
function gbt_text_same (line 1236) | CREATE FUNCTION gbt_text_same(gbtreekey_var, gbtreekey_var, internal)
function gbt_bytea_consistent (line 1242) | CREATE OPERATOR CLASS gist_text_ops
function gbt_bytea_compress (line 1298) | CREATE FUNCTION gbt_bytea_compress(internal)
function gbt_bytea_penalty (line 1303) | CREATE FUNCTION gbt_bytea_penalty(internal,internal,internal)
function gbt_bytea_picksplit (line 1308) | CREATE FUNCTION gbt_bytea_picksplit(internal, internal)
function gbt_bytea_union (line 1313) | CREATE FUNCTION gbt_bytea_union(internal, internal)
function gbt_bytea_same (line 1318) | CREATE FUNCTION gbt_bytea_same(gbtreekey_var, gbtreekey_var, internal)
function gbt_numeric_consistent (line 1324) | CREATE OPERATOR CLASS gist_bytea_ops
function gbt_numeric_compress (line 1359) | CREATE FUNCTION gbt_numeric_compress(internal)
function gbt_numeric_penalty (line 1364) | CREATE FUNCTION gbt_numeric_penalty(internal,internal,internal)
function gbt_numeric_picksplit (line 1369) | CREATE FUNCTION gbt_numeric_picksplit(internal, internal)
function gbt_numeric_union (line 1374) | CREATE FUNCTION gbt_numeric_union(internal, internal)
function gbt_numeric_same (line 1379) | CREATE FUNCTION gbt_numeric_same(gbtreekey_var, gbtreekey_var, internal)
function gbt_bit_consistent (line 1385) | CREATE OPERATOR CLASS gist_numeric_ops
function gbt_bit_compress (line 1419) | CREATE FUNCTION gbt_bit_compress(internal)
function gbt_bit_penalty (line 1424) | CREATE FUNCTION gbt_bit_penalty(internal,internal,internal)
function gbt_bit_picksplit (line 1429) | CREATE FUNCTION gbt_bit_picksplit(internal, internal)
function gbt_bit_union (line 1434) | CREATE FUNCTION gbt_bit_union(internal, internal)
function gbt_bit_same (line 1439) | CREATE FUNCTION gbt_bit_same(gbtreekey_var, gbtreekey_var, internal)
function gbt_inet_consistent (line 1445) | CREATE OPERATOR CLASS gist_bit_ops
function gbt_inet_compress (line 1503) | CREATE FUNCTION gbt_inet_compress(internal)
function gbt_inet_penalty (line 1508) | CREATE FUNCTION gbt_inet_penalty(internal,internal,internal)
function gbt_inet_picksplit (line 1513) | CREATE FUNCTION gbt_inet_picksplit(internal, internal)
function gbt_inet_union (line 1518) | CREATE FUNCTION gbt_inet_union(internal, internal)
function gbt_inet_same (line 1523) | CREATE FUNCTION gbt_inet_same(gbtreekey16, gbtreekey16, internal)
FILE: contrib/btree_gist/btree_gist--1.3--1.4.sql
function gbt_macad8_consistent (line 9) | CREATE FUNCTION gbt_macad8_consistent(internal,macaddr8,int2,oid,internal)
function gbt_macad8_compress (line 14) | CREATE FUNCTION gbt_macad8_compress(internal)
function gbt_macad8_fetch (line 19) | CREATE FUNCTION gbt_macad8_fetch(internal)
function gbt_macad8_penalty (line 24) | CREATE FUNCTION gbt_macad8_penalty(internal,internal,internal)
function gbt_macad8_picksplit (line 29) | CREATE FUNCTION gbt_macad8_picksplit(internal, internal)
function gbt_macad8_union (line 34) | CREATE FUNCTION gbt_macad8_union(internal, internal)
function gbt_macad8_same (line 39) | CREATE FUNCTION gbt_macad8_same(gbtreekey16, gbtreekey16, internal)
FILE: contrib/btree_gist/btree_gist--1.4--1.5.sql
function gbt_enum_consistent (line 14) | CREATE FUNCTION gbt_enum_consistent(internal,anyenum,int2,oid,internal)
function gbt_enum_compress (line 19) | CREATE FUNCTION gbt_enum_compress(internal)
function gbt_enum_fetch (line 24) | CREATE FUNCTION gbt_enum_fetch(internal)
function gbt_enum_penalty (line 29) | CREATE FUNCTION gbt_enum_penalty(internal,internal,internal)
function gbt_enum_picksplit (line 34) | CREATE FUNCTION gbt_enum_picksplit(internal, internal)
function gbt_enum_union (line 39) | CREATE FUNCTION gbt_enum_union(internal, internal)
function gbt_enum_same (line 44) | CREATE FUNCTION gbt_enum_same(gbtreekey8, gbtreekey8, internal)
FILE: contrib/btree_gist/btree_gist--unpackaged--1.0.sql
function cash_dist (line 182) | CREATE FUNCTION cash_dist(money, money)
function date_dist (line 187) | CREATE OPERATOR <-> (
function float4_dist (line 199) | CREATE OPERATOR <-> (
function float8_dist (line 211) | CREATE OPERATOR <-> (
function int2_dist (line 223) | CREATE OPERATOR <-> (
function int4_dist (line 235) | CREATE OPERATOR <-> (
function int8_dist (line 247) | CREATE OPERATOR <-> (
function interval_dist (line 259) | CREATE OPERATOR <-> (
function oid_dist (line 271) | CREATE OPERATOR <-> (
function time_dist (line 283) | CREATE OPERATOR <-> (
function ts_dist (line 295) | CREATE OPERATOR <-> (
function tstz_dist (line 307) | CREATE OPERATOR <-> (
function gbt_oid_distance (line 328) | CREATE FUNCTION gbt_oid_distance(internal,oid,int2,oid)
function gbt_int2_distance (line 333) | CREATE FUNCTION gbt_int2_distance(internal,int2,int2,oid)
function gbt_int4_distance (line 338) | CREATE FUNCTION gbt_int4_distance(internal,int4,int2,oid)
function gbt_int8_distance (line 343) | CREATE FUNCTION gbt_int8_distance(internal,int8,int2,oid)
function gbt_float4_distance (line 348) | CREATE FUNCTION gbt_float4_distance(internal,float4,int2,oid)
function gbt_float8_distance (line 353) | CREATE FUNCTION gbt_float8_distance(internal,float8,int2,oid)
function gbt_ts_distance (line 358) | CREATE FUNCTION gbt_ts_distance(internal,timestamp,int2,oid)
function gbt_tstz_distance (line 363) | CREATE FUNCTION gbt_tstz_distance(internal,timestamptz,int2,oid)
function gbt_time_distance (line 368) | CREATE FUNCTION gbt_time_distance(internal,time,int2,oid)
function gbt_date_distance (line 373) | CREATE FUNCTION gbt_date_distance(internal,date,int2,oid)
function gbt_intv_distance (line 378) | CREATE FUNCTION gbt_intv_distance(internal,interval,int2,oid)
function gbt_cash_distance (line 383) | CREATE FUNCTION gbt_cash_distance(internal,money,int2,oid)
FILE: contrib/btree_gist/btree_gist.c
function Datum (line 19) | Datum
function Datum (line 31) | Datum
function Datum (line 45) | Datum
FILE: contrib/btree_gist/btree_gist.h
type gbtree_type (line 14) | enum gbtree_type
FILE: contrib/btree_gist/btree_inet.c
type inetKEY (line 12) | typedef struct inetkey
function gbt_inetgt (line 29) | static bool
function gbt_inetge (line 34) | static bool
function gbt_ineteq (line 39) | static bool
function gbt_inetle (line 44) | static bool
function gbt_inetlt (line 49) | static bool
function gbt_inetkey_cmp (line 55) | static int
function Datum (line 93) | Datum
function Datum (line 119) | Datum
function Datum (line 147) | Datum
function Datum (line 158) | Datum
function Datum (line 171) | Datum
function Datum (line 181) | Datum
FILE: contrib/btree_gist/btree_int2.c
type int16KEY (line 10) | typedef struct int16key
function gbt_int2gt (line 28) | static bool
function gbt_int2ge (line 33) | static bool
function gbt_int2eq (line 38) | static bool
function gbt_int2le (line 43) | static bool
function gbt_int2lt (line 48) | static bool
function gbt_int2key_cmp (line 54) | static int
function float8 (line 71) | static float8
function Datum (line 94) | Datum
function Datum (line 119) | Datum
function Datum (line 127) | Datum
function Datum (line 135) | Datum
function Datum (line 159) | Datum
function Datum (line 178) | Datum
function Datum (line 189) | Datum
function Datum (line 201) | Datum
function Datum (line 211) | Datum
FILE: contrib/btree_gist/btree_int4.c
type int32KEY (line 10) | typedef struct int32key
function gbt_int4gt (line 29) | static bool
function gbt_int4ge (line 34) | static bool
function gbt_int4eq (line 39) | static bool
function gbt_int4le (line 44) | static bool
function gbt_int4lt (line 49) | static bool
function gbt_int4key_cmp (line 55) | static int
function float8 (line 72) | static float8
function Datum (line 95) | Datum
function Datum (line 120) | Datum
function Datum (line 128) | Datum
function Datum (line 136) | Datum
function Datum (line 160) | Datum
function Datum (line 179) | Datum
function Datum (line 190) | Datum
function Datum (line 202) | Datum
function Datum (line 212) | Datum
FILE: contrib/btree_gist/btree_int8.c
type int64KEY (line 10) | typedef struct int64key
function gbt_int8gt (line 29) | static bool
function gbt_int8ge (line 34) | static bool
function gbt_int8eq (line 39) | static bool
function gbt_int8le (line 44) | static bool
function gbt_int8lt (line 49) | static bool
function gbt_int8key_cmp (line 55) | static int
function float8 (line 72) | static float8
function Datum (line 95) | Datum
function Datum (line 120) | Datum
function Datum (line 128) | Datum
function Datum (line 136) | Datum
function Datum (line 160) | Datum
function Datum (line 179) | Datum
function Datum (line 190) | Datum
function Datum (line 202) | Datum
function Datum (line 212) | Datum
FILE: contrib/btree_gist/btree_interval.c
type intvKEY (line 11) | typedef struct
function gbt_intvgt (line 32) | static bool
function gbt_intvge (line 38) | static bool
function gbt_intveq (line 44) | static bool
function gbt_intvle (line 50) | static bool
function gbt_intvlt (line 56) | static bool
function gbt_intvkey_cmp (line 62) | static int
function intr2num (line 77) | static double
function float8 (line 83) | static float8
function Interval (line 113) | Interval *
function Datum (line 128) | Datum
function Datum (line 144) | Datum
function Datum (line 179) | Datum
function Datum (line 187) | Datum
function Datum (line 210) | Datum
function Datum (line 234) | Datum
function Datum (line 253) | Datum
function Datum (line 264) | Datum
function Datum (line 284) | Datum
function Datum (line 294) | Datum
FILE: contrib/btree_gist/btree_macaddr.c
type macKEY (line 11) | typedef struct
function gbt_macadgt (line 30) | static bool
function gbt_macadge (line 35) | static bool
function gbt_macadeq (line 41) | static bool
function gbt_macadle (line 47) | static bool
function gbt_macadlt (line 53) | static bool
function gbt_macadkey_cmp (line 60) | static int
function uint64 (line 96) | static uint64
function Datum (line 110) | Datum
function Datum (line 118) | Datum
function Datum (line 126) | Datum
function Datum (line 150) | Datum
function Datum (line 161) | Datum
function Datum (line 181) | Datum
function Datum (line 191) | Datum
FILE: contrib/btree_gist/btree_macaddr8.c
type mac8KEY (line 11) | typedef struct
function gbt_macad8gt (line 30) | static bool
function gbt_macad8ge (line 35) | static bool
function gbt_macad8eq (line 41) | static bool
function gbt_macad8le (line 47) | static bool
function gbt_macad8lt (line 53) | static bool
function gbt_macad8key_cmp (line 60) | static int
function uint64 (line 96) | static uint64
function Datum (line 110) | Datum
function Datum (line 118) | Datum
function Datum (line 126) | Datum
function Datum (line 150) | Datum
function Datum (line 161) | Datum
function Datum (line 181) | Datum
function Datum (line 191) | Datum
FILE: contrib/btree_gist/btree_numeric.c
function gbt_numeric_gt (line 29) | static bool
function gbt_numeric_ge (line 37) | static bool
function gbt_numeric_eq (line 45) | static bool
function gbt_numeric_le (line 53) | static bool
function gbt_numeric_lt (line 61) | static bool
function int32 (line 69) | static int32
function Datum (line 98) | Datum
function Datum (line 108) | Datum
function Datum (line 131) | Datum
function Datum (line 142) | Datum
function Datum (line 154) | Datum
function Datum (line 229) | Datum
FILE: contrib/btree_gist/btree_oid.c
type oidKEY (line 9) | typedef struct
function gbt_oidgt (line 28) | static bool
function gbt_oidge (line 33) | static bool
function gbt_oideq (line 38) | static bool
function gbt_oidle (line 43) | static bool
function gbt_oidlt (line 48) | static bool
function gbt_oidkey_cmp (line 54) | static int
function float8 (line 71) | static float8
function Datum (line 100) | Datum
function Datum (line 120) | Datum
function Datum (line 128) | Datum
function Datum (line 136) | Datum
function Datum (line 160) | Datum
function Datum (line 179) | Datum
function Datum (line 190) | Datum
function Datum (line 202) | Datum
function Datum (line 212) | Datum
FILE: contrib/btree_gist/btree_text.c
function gbt_textgt (line 25) | static bool
function gbt_textge (line 34) | static bool
function gbt_texteq (line 43) | static bool
function gbt_textle (line 52) | static bool
function gbt_textlt (line 61) | static bool
function int32 (line 70) | static int32
function Datum (line 99) | Datum
function Datum (line 112) | Datum
function Datum (line 142) | Datum
function Datum (line 170) | Datum
function Datum (line 198) | Datum
function Datum (line 209) | Datum
function Datum (line 220) | Datum
function Datum (line 232) | Datum
FILE: contrib/btree_gist/btree_time.c
type timeKEY (line 12) | typedef struct
function gbt_timegt (line 40) | static bool
function gbt_timege (line 51) | static bool
function gbt_timeeq (line 62) | static bool
function gbt_timele (line 73) | static bool
function gbt_timelt (line 84) | static bool
function gbt_timekey_cmp (line 97) | static int
function float8 (line 111) | static float8
function Datum (line 141) | Datum
function Datum (line 158) | Datum
function Datum (line 167) | Datum
function Datum (line 193) | Datum
function Datum (line 201) | Datum
function Datum (line 224) | Datum
function Datum (line 242) | Datum
function Datum (line 269) | Datum
function Datum (line 280) | Datum
function Datum (line 323) | Datum
function Datum (line 333) | Datum
FILE: contrib/btree_gist/btree_ts.c
type tsKEY (line 13) | typedef struct
function gbt_tsgt (line 42) | static bool
function gbt_tsge (line 53) | static bool
function gbt_tseq (line 64) | static bool
function gbt_tsle (line 75) | static bool
function gbt_tslt (line 86) | static bool
function gbt_tskey_cmp (line 98) | static int
function float8 (line 112) | static float8
function Datum (line 145) | Datum
function Datum (line 169) | Datum
function Timestamp (line 198) | static inline Timestamp
function Datum (line 206) | Datum
function Datum (line 215) | Datum
function Datum (line 241) | Datum
function Datum (line 249) | Datum
function Datum (line 272) | Datum
function Datum (line 290) | Datum
function Datum (line 315) | Datum
function Datum (line 336) | Datum
function Datum (line 355) | Datum
function Datum (line 386) | Datum
function Datum (line 396) | Datum
FILE: contrib/btree_gist/btree_utils_num.c
function GISTENTRY (line 13) | GISTENTRY *
function GISTENTRY (line 101) | GISTENTRY *
function gbt_num_same (line 203) | bool
function gbt_num_bin_union (line 219) | void
function gbt_num_consistent (line 254) | bool
function float8 (line 307) | float8
function GIST_SPLITVEC (line 330) | GIST_SPLITVEC *
FILE: contrib/btree_gist/btree_utils_num.h
type GBT_NUMKEY (line 14) | typedef char GBT_NUMKEY;
type GBT_NUMKEY_R (line 17) | typedef struct
type Nsrt (line 25) | typedef struct
type gbtree_ninfo (line 34) | typedef struct
FILE: contrib/btree_gist/btree_utils_var.c
type Vsrt (line 18) | typedef struct
type gbt_vsrt_arg (line 24) | typedef struct
function Datum (line 36) | Datum
function GBT_VARKEY_R (line 57) | GBT_VARKEY_R
function GBT_VARKEY (line 74) | static GBT_VARKEY *
function GBT_VARKEY (line 90) | GBT_VARKEY *
function GBT_VARKEY (line 106) | static GBT_VARKEY *
function int32 (line 121) | static int32
function gbt_bytea_pf_match (line 169) | static bool
function gbt_var_node_pf_match (line 191) | static bool
function GBT_VARKEY (line 205) | static GBT_VARKEY *
function gbt_var_bin_union (line 234) | void
function GISTENTRY (line 282) | GISTENTRY *
function Datum (line 306) | Datum
function GBT_VARKEY (line 323) | GBT_VARKEY *
function gbt_var_same (line 362) | bool
function gbt_vsrt_cmp (line 444) | static int
function GIST_SPLITVEC (line 459) | GIST_SPLITVEC *
function gbt_var_consistent (line 555) | bool
FILE: contrib/btree_gist/btree_utils_var.h
type bytea (line 13) | typedef bytea GBT_VARKEY;
type GBT_VARKEY_R (line 16) | typedef struct
type gbtree_vinfo (line 25) | typedef struct
FILE: contrib/btree_gist/btree_uuid.c
type uuidKEY (line 11) | typedef struct
function uuid_internal_cmp (line 30) | static int
function gbt_uuidgt (line 36) | static bool
function gbt_uuidge (line 42) | static bool
function gbt_uuideq (line 48) | static bool
function gbt_uuidle (line 54) | static bool
function gbt_uuidlt (line 60) | static bool
function gbt_uuidkey_cmp (line 66) | static int
function Datum (line 100) | Datum
function Datum (line 125) | Datum
function Datum (line 133) | Datum
function Datum (line 157) | Datum
function uuid_2_double (line 170) | static double
function Datum (line 198) | Datum
function Datum (line 219) | Datum
function Datum (line 229) | Datum
FILE: contrib/btree_gist/sql/bit.sql
type bittmp (line 3) | CREATE TABLE bittmp (a bit(33))
type bitidx (line 19) | CREATE INDEX bitidx ON bittmp USING GIST ( a )
FILE: contrib/btree_gist/sql/bytea.sql
type byteatmp (line 3) | CREATE TABLE byteatmp (a bytea)
type byteaidx (line 20) | CREATE INDEX byteaidx ON byteatmp USING GIST ( a )
FILE: contrib/btree_gist/sql/cash.sql
type moneyidx (line 21) | CREATE INDEX moneyidx ON moneytmp USING gist ( a )
FILE: contrib/btree_gist/sql/char.sql
type chartmp (line 3) | CREATE TABLE chartmp (a char(32))
type charidx (line 19) | CREATE INDEX charidx ON chartmp USING GIST ( a )
FILE: contrib/btree_gist/sql/cidr.sql
type cidrtmp (line 3) | CREATE TABLE cidrtmp AS
type cidridx (line 18) | CREATE INDEX cidridx ON cidrtmp USING gist ( a )
FILE: contrib/btree_gist/sql/date.sql
type datetmp (line 3) | CREATE TABLE datetmp (a date)
type dateidx (line 21) | CREATE INDEX dateidx ON datetmp USING gist ( a )
FILE: contrib/btree_gist/sql/enum.sql
type enumtmp (line 5) | CREATE TABLE enumtmp (a rainbow)
type enumidx (line 23) | CREATE INDEX enumidx ON enumtmp USING gist ( a )
FILE: contrib/btree_gist/sql/float4.sql
type float4tmp (line 3) | CREATE TABLE float4tmp (a float4)
type float4idx (line 21) | CREATE INDEX float4idx ON float4tmp USING gist ( a )
FILE: contrib/btree_gist/sql/float8.sql
type float8tmp (line 3) | CREATE TABLE float8tmp (a float8)
type float8idx (line 21) | CREATE INDEX float8idx ON float8tmp USING gist ( a )
FILE: contrib/btree_gist/sql/inet.sql
type inettmp (line 3) | CREATE TABLE inettmp (a inet)
type inetidx (line 19) | CREATE INDEX inetidx ON inettmp USING gist ( a )
type inettmp (line 43) | CREATE INDEX ON inettmp USING gist (a gist_inet_ops, a inet_ops)
FILE: contrib/btree_gist/sql/int2.sql
type int2tmp (line 3) | CREATE TABLE int2tmp (a int2)
type int2idx (line 21) | CREATE INDEX int2idx ON int2tmp USING gist ( a )
FILE: contrib/btree_gist/sql/int4.sql
type int4tmp (line 3) | CREATE TABLE int4tmp (a int4)
type int4idx (line 21) | CREATE INDEX int4idx ON int4tmp USING gist ( a )
FILE: contrib/btree_gist/sql/int8.sql
type int8tmp (line 3) | CREATE TABLE int8tmp (a int8)
type int8idx (line 21) | CREATE INDEX int8idx ON int8tmp USING gist ( a )
FILE: contrib/btree_gist/sql/interval.sql
type intervaltmp (line 3) | CREATE TABLE intervaltmp (a interval)
type intervalidx (line 21) | CREATE INDEX intervalidx ON intervaltmp USING gist ( a )
FILE: contrib/btree_gist/sql/macaddr.sql
type macaddrtmp (line 3) | CREATE TABLE macaddrtmp (a macaddr)
type macaddridx (line 19) | CREATE INDEX macaddridx ON macaddrtmp USING gist ( a )
FILE: contrib/btree_gist/sql/macaddr8.sql
type macaddr8tmp (line 3) | CREATE TABLE macaddr8tmp (a macaddr8)
type macaddr8idx (line 19) | CREATE INDEX macaddr8idx ON macaddr8tmp USING gist ( a )
FILE: contrib/btree_gist/sql/not_equal.sql
type test_ne (line 6) | CREATE TABLE test_ne (
type test_ne_idx (line 10) | CREATE INDEX test_ne_idx ON test_ne USING gist (a, b)
type zoo (line 27) | CREATE TABLE zoo (
FILE: contrib/btree_gist/sql/numeric.sql
type numerictmp (line 3) | CREATE TABLE numerictmp (a numeric)
type numericidx (line 43) | CREATE INDEX numericidx ON numerictmp USING gist ( a )
FILE: contrib/btree_gist/sql/oid.sql
type oididx (line 15) | CREATE INDEX oididx ON moneytmp USING gist ( oid )
FILE: contrib/btree_gist/sql/text.sql
type texttmp (line 3) | CREATE TABLE texttmp (a text)
type textidx (line 20) | CREATE INDEX textidx ON texttmp USING GIST ( a )
FILE: contrib/btree_gist/sql/time.sql
type timetmp (line 3) | CREATE TABLE timetmp (a time)
type timeidx (line 21) | CREATE INDEX timeidx ON timetmp USING gist ( a )
FILE: contrib/btree_gist/sql/timestamp.sql
type timestamptmp (line 3) | CREATE TABLE timestamptmp (a timestamp)
type timestampidx (line 21) | CREATE INDEX timestampidx ON timestamptmp USING gist ( a )
FILE: contrib/btree_gist/sql/timestamptz.sql
type timestamptztmp (line 3) | CREATE TABLE timestamptztmp (a timestamptz)
type timestamptzidx (line 42) | CREATE INDEX timestamptzidx ON timestamptztmp USING gist ( a )
FILE: contrib/btree_gist/sql/timetz.sql
type timetztmp (line 3) | CREATE TABLE timetztmp (a timetz)
type timetzcmp (line 6) | CREATE TABLE timetzcmp ( r_id int2, a int4, b int4 )
type timetzidx (line 45) | CREATE INDEX timetzidx ON timetztmp USING gist ( a )
FILE: contrib/btree_gist/sql/uuid.sql
type uuidtmp (line 3) | CREATE TABLE uuidtmp (a uuid)
type uuididx (line 19) | CREATE INDEX uuididx ON uuidtmp USING gist ( a )
FILE: contrib/btree_gist/sql/varbit.sql
type varbittmp (line 3) | CREATE TABLE varbittmp (a varbit)
type varbitidx (line 19) | CREATE INDEX varbitidx ON varbittmp USING GIST ( a )
FILE: contrib/btree_gist/sql/varchar.sql
type vchartmp (line 3) | CREATE TABLE vchartmp (a varchar(32))
type vcharidx (line 19) | CREATE INDEX vcharidx ON vchartmp USING GIST ( text(a) )
FILE: contrib/citext/citext--1.0--1.1.sql
function regexp_matches (line 15) | CREATE FUNCTION regexp_matches( citext, citext ) RETURNS SETOF TEXT[] AS $$
function regexp_matches (line 19) | CREATE FUNCTION regexp_matches( citext, citext, text ) RETURNS SETOF TEX...
FILE: contrib/citext/citext--1.3--1.4.sql
function regexp_match (line 6) | CREATE FUNCTION regexp_match( citext, citext ) RETURNS TEXT[] AS $$
function regexp_match (line 10) | CREATE FUNCTION regexp_match( citext, citext, text ) RETURNS TEXT[] AS $$
FILE: contrib/citext/citext--1.4--1.5.sql
function citext_pattern_lt (line 16) | CREATE FUNCTION citext_pattern_lt( citext, citext )
function citext_pattern_le (line 21) | CREATE FUNCTION citext_pattern_le( citext, citext )
function citext_pattern_gt (line 26) | CREATE FUNCTION citext_pattern_gt( citext, citext )
function citext_pattern_ge (line 31) | CREATE FUNCTION citext_pattern_ge( citext, citext )
FILE: contrib/citext/citext--1.4.sql
function citextin (line 22) | CREATE FUNCTION citextin(cstring)
function citextout (line 27) | CREATE FUNCTION citextout(citext)
function citextrecv (line 32) | CREATE FUNCTION citextrecv(internal)
function citextsend (line 37) | CREATE FUNCTION citextsend(citext)
function citext (line 64) | CREATE FUNCTION citext(bpchar)
function citext (line 69) | CREATE FUNCTION citext(boolean)
function citext (line 74) | CREATE FUNCTION citext(inet)
function citext_eq (line 83) | CREATE CAST (citext AS text) WITHOUT FUNCTION AS IMPLICIT;
function citext_ne (line 101) | CREATE FUNCTION citext_ne( citext, citext )
function citext_lt (line 106) | CREATE FUNCTION citext_lt( citext, citext )
function citext_le (line 111) | CREATE FUNCTION citext_le( citext, citext )
function citext_gt (line 116) | CREATE FUNCTION citext_gt( citext, citext )
function citext_ge (line 121) | CREATE FUNCTION citext_ge( citext, citext )
function citext_smaller (line 232) | CREATE FUNCTION citext_smaller(citext, citext)
function citext_larger (line 237) | CREATE FUNCTION citext_larger(citext, citext)
function texticlike (line 262) | CREATE FUNCTION texticlike(citext, citext)
function texticnlike (line 266) | CREATE FUNCTION texticnlike(citext, citext)
function texticregexeq (line 270) | CREATE FUNCTION texticregexeq(citext, citext)
function texticregexne (line 274) | CREATE FUNCTION texticregexne(citext, citext)
function texticnlike (line 358) | CREATE FUNCTION texticnlike(citext, text)
function texticregexeq (line 362) | CREATE FUNCTION texticregexeq(citext, text)
function texticregexne (line 366) | CREATE FUNCTION texticregexne(citext, text)
function regexp_matches (line 455) | CREATE FUNCTION regexp_matches( citext, citext ) RETURNS SETOF TEXT[] AS $$
function regexp_matches (line 459) | CREATE FUNCTION regexp_matches( citext, citext, text ) RETURNS SETOF TEX...
function regexp_replace (line 463) | CREATE FUNCTION regexp_replace( citext, citext, text ) returns TEXT AS $$
function regexp_replace (line 467) | CREATE FUNCTION regexp_replace( citext, citext, text, text ) returns TEX...
function regexp_split_to_array (line 471) | CREATE FUNCTION regexp_split_to_array( citext, citext ) RETURNS TEXT[] A...
function regexp_split_to_array (line 475) | CREATE FUNCTION regexp_split_to_array( citext, citext, text ) RETURNS TE...
function regexp_split_to_table (line 479) | CREATE FUNCTION regexp_split_to_table( citext, citext ) RETURNS SETOF TE...
function regexp_split_to_table (line 483) | CREATE FUNCTION regexp_split_to_table( citext, citext, text ) RETURNS SE...
function strpos (line 487) | CREATE FUNCTION strpos( citext, citext ) RETURNS INT AS $$
function replace (line 491) | CREATE FUNCTION replace( citext, citext, citext ) RETURNS TEXT AS $$
function split_part (line 495) | CREATE FUNCTION split_part( citext, citext, int ) RETURNS TEXT AS $$
function translate (line 499) | CREATE FUNCTION translate( citext, citext, text ) RETURNS TEXT AS $$
FILE: contrib/citext/citext.c
function int32 (line 34) | static int32
function int32 (line 67) | static int32
function Datum (line 105) | Datum
function Datum (line 122) | Datum
function Datum (line 139) | Datum
function Datum (line 164) | Datum
function Datum (line 194) | Datum
function Datum (line 224) | Datum
function Datum (line 241) | Datum
function Datum (line 258) | Datum
function Datum (line 275) | Datum
function Datum (line 292) | Datum
function Datum (line 309) | Datum
function Datum (line 326) | Datum
function Datum (line 343) | Datum
function Datum (line 366) | Datum
function Datum (line 379) | Datum
FILE: contrib/citext/sql/citext.sql
type try (line 94) | CREATE TEMP TABLE try (
type srt (line 124) | CREATE TEMP TABLE srt (
type srt_name (line 134) | CREATE INDEX srt_name ON srt (name)
type caster (line 296) | CREATE TABLE caster (
type citext_table (line 734) | CREATE TABLE citext_table (
type citext_matview_id (line 742) | CREATE UNIQUE INDEX citext_matview_id
FILE: contrib/cube/cube--1.0--1.1.sql
function distance_chebyshev (line 6) | CREATE FUNCTION distance_chebyshev(cube, cube)
function distance_taxicab (line 11) | CREATE FUNCTION distance_taxicab(cube, cube)
function cube_coord (line 16) | CREATE FUNCTION cube_coord(cube, int4)
function cube_coord_llur (line 21) | CREATE FUNCTION cube_coord_llur(cube, int4)
FILE: contrib/cube/cube--1.2.sql
function cube_in (line 8) | CREATE FUNCTION cube_in(cstring)
function cube (line 13) | CREATE FUNCTION cube(float8[], float8[]) RETURNS cube
function cube (line 17) | CREATE FUNCTION cube(float8[]) RETURNS cube
function cube_out (line 21) | CREATE FUNCTION cube_out(cube)
function cube_eq (line 41) | CREATE FUNCTION cube_eq(cube, cube)
function cube_ne (line 48) | CREATE FUNCTION cube_ne(cube, cube)
function cube_lt (line 55) | CREATE FUNCTION cube_lt(cube, cube)
function cube_gt (line 62) | CREATE FUNCTION cube_gt(cube, cube)
function cube_le (line 69) | CREATE FUNCTION cube_le(cube, cube)
function cube_ge (line 76) | CREATE FUNCTION cube_ge(cube, cube)
function cube_cmp (line 83) | CREATE FUNCTION cube_cmp(cube, cube)
function cube_contains (line 90) | CREATE FUNCTION cube_contains(cube, cube)
function cube_contained (line 97) | CREATE FUNCTION cube_contained(cube, cube)
function cube_overlap (line 104) | CREATE FUNCTION cube_overlap(cube, cube)
function cube_union (line 113) | CREATE FUNCTION cube_union(cube, cube)
function cube_inter (line 118) | CREATE FUNCTION cube_inter(cube, cube)
function cube_size (line 123) | CREATE FUNCTION cube_size(cube)
function cube_subset (line 131) | CREATE FUNCTION cube_subset(cube, int4[])
function cube_distance (line 138) | CREATE FUNCTION cube_distance(cube, cube)
function distance_chebyshev (line 143) | CREATE FUNCTION distance_chebyshev(cube, cube)
function distance_taxicab (line 148) | CREATE FUNCTION distance_taxicab(cube, cube)
function cube_dim (line 155) | CREATE FUNCTION cube_dim(cube)
function cube_ll_coord (line 160) | CREATE FUNCTION cube_ll_coord(cube, int4)
function cube_ur_coord (line 165) | CREATE FUNCTION cube_ur_coord(cube, int4)
function cube_coord (line 170) | CREATE FUNCTION cube_coord(cube, int4)
function cube_coord_llur (line 175) | CREATE FUNCTION cube_coord_llur(cube, int4)
function cube (line 180) | CREATE FUNCTION cube(float8) RETURNS cube
function cube (line 184) | CREATE FUNCTION cube(float8, float8) RETURNS cube
function cube (line 188) | CREATE FUNCTION cube(cube, float8) RETURNS cube
function cube (line 192) | CREATE FUNCTION cube(cube, float8, float8) RETURNS cube
function cube_is_point (line 198) | CREATE FUNCTION cube_is_point(cube)
function cube_enlarge (line 205) | CREATE FUNCTION cube_enlarge(cube, float8, int4)
function g_cube_consistent (line 307) | CREATE FUNCTION g_cube_consistent(internal,cube,smallint,oid,internal)
function g_cube_compress (line 312) | CREATE FUNCTION g_cube_compress(internal)
function g_cube_decompress (line 317) | CREATE FUNCTION g_cube_decompress(internal)
function g_cube_penalty (line 322) | CREATE FUNCTION g_cube_penalty(internal,internal,internal)
function g_cube_picksplit (line 327) | CREATE FUNCTION g_cube_picksplit(internal, internal)
function g_cube_union (line 332) | CREATE FUNCTION g_cube_union(internal, internal)
function g_cube_same (line 337) | CREATE FUNCTION g_cube_same(cube, cube, internal)
function g_cube_distance (line 342) | CREATE FUNCTION g_cube_distance (internal, cube, smallint, oid, internal)
FILE: contrib/cube/cube.c
function Datum (line 116) | Datum
function Datum (line 136) | Datum
function Datum (line 203) | Datum
function Datum (line 240) | Datum
function Datum (line 289) | Datum
function Datum (line 335) | Datum
function Datum (line 369) | Datum
function Datum (line 401) | Datum
function Datum (line 407) | Datum
function Datum (line 430) | Datum
function Datum (line 455) | Datum
function Datum (line 605) | Datum
function g_cube_leaf_consistent (line 623) | bool
function g_cube_internal_consistent (line 652) | bool
function NDBOX (line 679) | NDBOX *
function NDBOX (line 692) | NDBOX *
function Datum (line 756) | Datum
function Datum (line 771) | Datum
function Datum (line 851) | Datum
function rt_cube_size (line 862) | void
function int32 (line 889) | int32
function Datum (line 969) | Datum
function Datum (line 984) | Datum
function Datum (line 999) | Datum
function Datum (line 1014) | Datum
function Datum (line 1029) | Datum
function Datum (line 1044) | Datum
function Datum (line 1059) | Datum
function cube_contains_v0 (line 1076) | bool
function Datum (line 1114) | Datum
function Datum (line 1130) | Datum
function cube_overlap_v0 (line 1146) | bool
function Datum (line 1185) | Datum
function Datum (line 1205) | Datum
function Datum (line 1254) | Datum
function Datum (line 1298) | Datum
function Datum (line 1350) | Datum
function distance_1D (line 1455) | static double
function Datum (line 1471) | Datum
function cube_is_point_internal (line 1482) | static bool
function Datum (line 1506) | Datum
function Datum (line 1517) | Datum
function Datum (line 1534) | Datum
function Datum (line 1555) | Datum
function Datum (line 1596) | Datum
function Datum (line 1655) | Datum
function Datum (line 1720) | Datum
function Datum (line 1738) | Datum
function Datum (line 1770) | Datum
function Datum (line 1817) | Datum
FILE: contrib/cube/cubedata.h
type NDBOX (line 9) | typedef struct NDBOX
FILE: contrib/cube/sql/cube.sql
type test_cube (line 376) | CREATE TABLE test_cube (c cube)
type test_cube_ix (line 380) | CREATE INDEX test_cube_ix ON test_cube USING gist (c)
FILE: contrib/dblink/dblink--1.0--1.1.sql
function dblink_fdw_validator (line 6) | CREATE FUNCTION dblink_fdw_validator(
FILE: contrib/dblink/dblink--1.2.sql
function dblink_connect (line 8) | CREATE FUNCTION dblink_connect (text)
function dblink_connect (line 13) | CREATE FUNCTION dblink_connect (text, text)
function dblink_connect_u (line 21) | CREATE FUNCTION dblink_connect_u (text)
function dblink_connect_u (line 26) | CREATE FUNCTION dblink_connect_u (text, text)
function dblink_disconnect (line 34) | CREATE FUNCTION dblink_disconnect ()
function dblink_disconnect (line 39) | CREATE FUNCTION dblink_disconnect (text)
function dblink_open (line 44) | CREATE FUNCTION dblink_open (text, text)
function dblink_open (line 49) | CREATE FUNCTION dblink_open (text, text, boolean)
function dblink_open (line 54) | CREATE FUNCTION dblink_open (text, text, text)
function dblink_open (line 59) | CREATE FUNCTION dblink_open (text, text, text, boolean)
function dblink_fetch (line 64) | CREATE FUNCTION dblink_fetch (text, int)
function dblink_fetch (line 69) | CREATE FUNCTION dblink_fetch (text, int, boolean)
function dblink_fetch (line 74) | CREATE FUNCTION dblink_fetch (text, text, int)
function dblink_fetch (line 79) | CREATE FUNCTION dblink_fetch (text, text, int, boolean)
function dblink_close (line 84) | CREATE FUNCTION dblink_close (text)
function dblink_close (line 89) | CREATE FUNCTION dblink_close (text, boolean)
function dblink_close (line 94) | CREATE FUNCTION dblink_close (text, text)
function dblink_close (line 99) | CREATE FUNCTION dblink_close (text, text, boolean)
function dblink (line 104) | CREATE FUNCTION dblink (text, text)
function dblink (line 109) | CREATE FUNCTION dblink (text, text, boolean)
function dblink (line 114) | CREATE FUNCTION dblink (text)
function dblink (line 119) | CREATE FUNCTION dblink (text, boolean)
function dblink_exec (line 124) | CREATE FUNCTION dblink_exec (text, text)
function dblink_exec (line 129) | CREATE FUNCTION dblink_exec (text, text, boolean)
function dblink_exec (line 134) | CREATE FUNCTION dblink_exec (text)
function dblink_exec (line 139) | CREATE FUNCTION dblink_exec (text,boolean)
function dblink_get_pkey (line 146) | CREATE FUNCTION dblink_get_pkey (text)
function dblink_build_sql_insert (line 151) | CREATE FUNCTION dblink_build_sql_insert (text, int2vector, int, _text, _...
function dblink_build_sql_delete (line 156) | CREATE FUNCTION dblink_build_sql_delete (text, int2vector, int, _text)
function dblink_build_sql_update (line 161) | CREATE FUNCTION dblink_build_sql_update (text, int2vector, int, _text, _...
function dblink_current_query (line 166) | CREATE FUNCTION dblink_current_query ()
function dblink_send_query (line 171) | CREATE FUNCTION dblink_send_query(text, text)
function dblink_is_busy (line 176) | CREATE FUNCTION dblink_is_busy(text)
function dblink_get_result (line 181) | CREATE FUNCTION dblink_get_result(text)
function dblink_get_result (line 186) | CREATE FUNCTION dblink_get_result(text, bool)
function dblink_get_connections (line 191) | CREATE FUNCTION dblink_get_connections()
function dblink_cancel_query (line 196) | CREATE FUNCTION dblink_cancel_query(text)
function dblink_error_message (line 201) | CREATE FUNCTION dblink_error_message(text)
function dblink_get_notify (line 206) | CREATE FUNCTION dblink_get_notify(
function dblink_get_notify (line 215) | CREATE FUNCTION dblink_get_notify(
function dblink_fdw_validator (line 227) | CREATE FUNCTION dblink_fdw_validator(
FILE: contrib/dblink/dblink.c
type remoteConn (line 66) | typedef struct remoteConn
type storeInfo (line 73) | typedef struct storeInfo
type remoteConnHashEnt (line 138) | typedef struct remoteConnHashEnt
function pg_attribute_noreturn (line 155) | static void
function dblink_get_conn (line 180) | static void
function PGconn (line 226) | static PGconn *
function dblink_init (line 238) | static void
function Datum (line 254) | Datum
function Datum (line 326) | Datum
function Datum (line 364) | Datum
function Datum (line 457) | Datum
function Datum (line 544) | Datum
function Datum (line 638) | Datum
function Datum (line 645) | Datum
function Datum (line 670) | Datum
function Datum (line 676) | static Datum
function prepTuplestoreResult (line 801) | static void
function materializeResult (line 829) | static void
function materializeQueryResult (line 975) | static void
function PGresult (line 1093) | static PGresult *
function storeRow (line 1161) | static void
function Datum (line 1273) | Datum
function Datum (line 1308) | Datum
function Datum (line 1332) | Datum
function Datum (line 1365) | Datum
function Datum (line 1385) | Datum
function Datum (line 1493) | Datum
function Datum (line 1617) | Datum
function Datum (line 1708) | Datum
function Datum (line 1785) | Datum
function Datum (line 1866) | Datum
function Datum (line 1884) | Datum
function Datum (line 1962) | Datum
function get_attnum_pk_pos (line 2368) | static int
function HeapTuple (line 2383) | static HeapTuple
function Relation (line 2496) | static Relation
function remoteConn (line 2539) | static remoteConn *
function HTAB (line 2559) | static HTAB *
function createNewConnection (line 2570) | static void
function deleteConnection (line 2599) | static void
function dblink_security_check (line 2621) | static void
function dblink_connstr_check (line 2647) | static void
function dblink_res_error (line 2689) | static void
function validate_pkattnums (line 2894) | static void
function is_valid_dblink_option (line 2965) | static bool
function applyRemoteGucs (line 3016) | static int
function restoreLocalGucs (line 3068) | static void
FILE: contrib/dblink/sql/dblink.sql
type foo_1 (line 42) | CREATE TABLE foo_1(f1 int, f2 text, f3 text[], primary key (f1,f2) inclu...
type "MySchema" (line 81) | CREATE TABLE "MySchema"."Foo"(f1 int, f2 text, f3 text[], primary key (f...
function connection_parameters (line 99) | CREATE FUNCTION connection_parameters() RETURNS text LANGUAGE SQL AS $f$
type result (line 401) | CREATE TEMPORARY TABLE result AS
function unnest (line 411) | create function unnest(anyarray) returns setof anyelement
type test_dropped (line 484) | CREATE TEMP TABLE test_dropped
type result (line 535) | CREATE TEMPORARY TABLE result AS
type result (line 548) | CREATE TEMPORARY TABLE result AS
type result (line 566) | CREATE TEMPORARY TABLE result (t timestamptz)
FILE: contrib/dict_int/dict_int--1.0.sql
function dintdict_init (line 6) | CREATE FUNCTION dintdict_init(internal)
function dintdict_lexize (line 11) | CREATE FUNCTION dintdict_lexize(internal, internal, internal, internal)
FILE: contrib/dict_int/dict_int.c
type DictInt (line 20) | typedef struct
function Datum (line 30) | Datum
function Datum (line 65) | Datum
FILE: contrib/dict_xsyn/dict_xsyn--1.0.sql
function dxsyn_init (line 6) | CREATE FUNCTION dxsyn_init(internal)
function dxsyn_lexize (line 11) | CREATE FUNCTION dxsyn_lexize(internal, internal, internal, internal)
FILE: contrib/dict_xsyn/dict_xsyn.c
type Syn (line 23) | typedef struct
type DictSyn (line 30) | typedef struct
function compare_syn (line 66) | static int
function read_dictionary (line 72) | static void
function Datum (line 140) | Datum
function Datum (line 196) | Datum
FILE: contrib/earthdistance/earthdistance--1.1.sql
function earth (line 10) | CREATE FUNCTION earth() RETURNS float8
function sec_to_gc (line 36) | CREATE FUNCTION sec_to_gc(float8)
function gc_to_sec (line 43) | CREATE FUNCTION gc_to_sec(float8)
function ll_to_earth (line 50) | CREATE FUNCTION ll_to_earth(float8, float8)
function latitude (line 57) | CREATE FUNCTION latitude(earth)
function longitude (line 64) | CREATE FUNCTION longitude(earth)
function earth_distance (line 71) | CREATE FUNCTION earth_distance(earth, earth)
function earth_box (line 78) | CREATE FUNCTION earth_box(earth, float8)
function geo_distance (line 87) | CREATE FUNCTION geo_distance (point, point)
FILE: contrib/earthdistance/earthdistance.c
function degtorad (line 29) | static double
function geo_distance_internal (line 48) | static double
function Datum (line 95) | Datum
FILE: contrib/earthdistance/sql/earthdistance.sql
type foo (line 318) | create table foo (f1 cube, f2 int)
type foo (line 341) | create table foo (f1 c.cube, f2 int)
FILE: contrib/file_fdw/file_fdw--1.0.sql
function file_fdw_handler (line 6) | CREATE FUNCTION file_fdw_handler()
function file_fdw_validator (line 11) | CREATE FUNCTION file_fdw_validator(text[], oid)
FILE: contrib/file_fdw/file_fdw.c
type FileFdwOption (line 45) | struct FileFdwOption
type FileFdwOption (line 60) | struct FileFdwOption
type FileFdwPlanState (line 88) | typedef struct FileFdwPlanState
type FileFdwExecutionState (line 101) | typedef struct FileFdwExecutionState
function Datum (line 169) | Datum
function Datum (line 194) | Datum
function is_valid_option (line 336) | static bool
function fileGetOptions (line 355) | static void
function List (line 429) | static List *
function fileGetForeignRelSize (line 502) | static void
function fileGetForeignPaths (line 533) | static void
function ForeignScan (line 586) | static ForeignScan *
function fileExplainForeignScan (line 621) | static void
function fileBeginForeignScan (line 653) | static void
function TupleTableSlot (line 706) | static TupleTableSlot *
function fileReScanForeignScan (line 749) | static void
function fileEndForeignScan (line 769) | static void
function fileAnalyzeForeignTable (line 783) | static bool
function fileIsForeignScanParallelSafe (line 834) | static bool
function check_selective_binary_conversion (line 850) | static bool
function estimate_size (line 967) | static void
function estimate_costs (line 1048) | static void
function file_acquire_sample_rows (line 1091) | static int
FILE: contrib/fuzzystrmatch/dmetaphone.c
function Datum (line 130) | Datum
function Datum (line 159) | Datum
type metastring (line 218) | typedef struct
function metastring (line 234) | static metastring *
function DestroyMetaString (line 259) | static void
function IncreaseBuffer (line 272) | static void
function MakeUpper (line 281) | static void
function IsVowel (line 291) | static int
function SlavoGermanic (line 308) | static int
function GetAt (line 324) | static char
function SetAt (line 334) | static void
function StringAt (line 347) | static int
function MetaphAdd (line 377) | static void
function DoubleMetaphone (line 394) | static void
FILE: contrib/fuzzystrmatch/fuzzystrmatch--1.1.sql
function levenshtein (line 6) | CREATE FUNCTION levenshtein (text,text) RETURNS int
function levenshtein (line 10) | CREATE FUNCTION levenshtein (text,text,int,int,int) RETURNS int
function levenshtein_less_equal (line 14) | CREATE FUNCTION levenshtein_less_equal (text,text,int) RETURNS int
function levenshtein_less_equal (line 18) | CREATE FUNCTION levenshtein_less_equal (text,text,int,int,int,int) RETUR...
function metaphone (line 22) | CREATE FUNCTION metaphone (text,int) RETURNS text
function soundex (line 26) | CREATE FUNCTION soundex(text) RETURNS text
function text_soundex (line 30) | CREATE FUNCTION text_soundex(text) RETURNS text
function difference (line 34) | CREATE FUNCTION difference(text,text) RETURNS int
function dmetaphone (line 38) | CREATE FUNCTION dmetaphone (text) RETURNS text
function dmetaphone_alt (line 42) | CREATE FUNCTION dmetaphone_alt (text) RETURNS text
FILE: contrib/fuzzystrmatch/fuzzystrmatch--unpackaged--1.0.sql
function levenshtein_less_equal (line 17) | CREATE FUNCTION levenshtein_less_equal (text,text,int) RETURNS int
function levenshtein_less_equal (line 21) | CREATE FUNCTION levenshtein_less_equal (text,text,int,int,int,int) RETUR...
FILE: contrib/fuzzystrmatch/fuzzystrmatch.c
function soundex_code (line 59) | static char
function getcode (line 119) | static int
function Datum (line 147) | Datum
function Datum (line 173) | Datum
function Datum (line 196) | Datum
function Datum (line 225) | Datum
function Datum (line 256) | Datum
function Lookahead (line 317) | static char
function _metaphone (line 343) | static void
function Datum (line 711) | Datum
function _soundex (line 724) | static void
function Datum (line 775) | Datum
FILE: contrib/hstore/hstore--1.1--1.2.sql
function hstore_to_json (line 31) | CREATE FUNCTION hstore_to_json(hstore)
function hstore_to_json_loose (line 39) | CREATE FUNCTION hstore_to_json_loose(hstore)
FILE: contrib/hstore/hstore--1.2--1.3.sql
function hstore_to_jsonb (line 6) | CREATE FUNCTION hstore_to_jsonb(hstore)
function hstore_to_jsonb_loose (line 14) | CREATE FUNCTION hstore_to_jsonb_loose(hstore)
FILE: contrib/hstore/hstore--1.4.sql
function hstore_in (line 8) | CREATE FUNCTION hstore_in(cstring)
function hstore_out (line 13) | CREATE FUNCTION hstore_out(hstore)
function hstore_recv (line 18) | CREATE FUNCTION hstore_recv(internal)
function hstore_send (line 23) | CREATE FUNCTION hstore_send(hstore)
function hstore_version_diag (line 37) | CREATE FUNCTION hstore_version_diag(hstore)
function fetchval (line 42) | CREATE FUNCTION fetchval(hstore,text)
function slice_array (line 47) | CREATE OPERATOR -> (
function slice (line 58) | CREATE OPERATOR -> (
function isexists (line 69) | CREATE FUNCTION isexists(hstore,text)
function exist (line 74) | CREATE FUNCTION exist(hstore,text)
function exists_any (line 79) | CREATE OPERATOR ? (
function exists_all (line 92) | CREATE OPERATOR ?| (
function isdefined (line 113) | CREATE FUNCTION isdefined(hstore,text)
function defined (line 118) | CREATE FUNCTION defined(hstore,text)
function delete (line 123) | CREATE FUNCTION delete(hstore,text)
function delete (line 128) | CREATE FUNCTION delete(hstore,text[])
function delete (line 133) | CREATE FUNCTION delete(hstore,hstore)
function hstore (line 219) | CREATE FUNCTION hstore(text,text)
function hstore (line 224) | CREATE FUNCTION hstore(text[],text[])
function hstore (line 229) | CREATE FUNCTION hstore(text[])
function hstore_to_json (line 237) | CREATE FUNCTION hstore_to_json(hstore)
function hstore_to_json_loose (line 245) | CREATE FUNCTION hstore_to_json_loose(hstore)
function hstore_to_jsonb (line 250) | CREATE FUNCTION hstore_to_jsonb(hstore)
function hstore_to_jsonb_loose (line 258) | CREATE FUNCTION hstore_to_jsonb_loose(hstore)
function hstore (line 263) | CREATE FUNCTION hstore(record)
function hstore_to_array (line 268) | CREATE FUNCTION hstore_to_array(hstore)
function hstore_to_matrix (line 273) | CREATE OPERATOR %% (
function akeys (line 283) | CREATE OPERATOR %# (
function avals (line 293) | CREATE FUNCTION avals(hstore)
function skeys (line 298) | CREATE FUNCTION skeys(hstore)
function svals (line 303) | CREATE FUNCTION svals(hstore)
function each (line 308) | CREATE FUNCTION each(IN hs hstore,
function populate_record (line 315) | CREATE FUNCTION populate_record(anyelement,hstore)
function hstore_eq (line 328) | CREATE FUNCTION hstore_eq(hstore,hstore)
function hstore_ne (line 333) | CREATE FUNCTION hstore_ne(hstore,hstore)
function hstore_gt (line 338) | CREATE FUNCTION hstore_gt(hstore,hstore)
function hstore_ge (line 343) | CREATE FUNCTION hstore_ge(hstore,hstore)
function hstore_lt (line 348) | CREATE FUNCTION hstore_lt(hstore,hstore)
function hstore_le (line 353) | CREATE FUNCTION hstore_le(hstore,hstore)
function hstore_cmp (line 358) | CREATE FUNCTION hstore_cmp(hstore,hstore)
function ghstore_out (line 457) | CREATE FUNCTION ghstore_out(ghstore)
function ghstore_compress (line 468) | CREATE FUNCTION ghstore_compress(internal)
function ghstore_decompress (line 473) | CREATE FUNCTION ghstore_decompress(internal)
function ghstore_penalty (line 478) | CREATE FUNCTION ghstore_penalty(internal,internal,internal)
function ghstore_picksplit (line 483) | CREATE FUNCTION ghstore_picksplit(internal, internal)
function ghstore_union (line 488) | CREATE FUNCTION ghstore_union(internal, internal)
function ghstore_same (line 493) | CREATE FUNCTION ghstore_same(ghstore, ghstore, internal)
function ghstore_consistent (line 498) | CREATE FUNCTION ghstore_consistent(internal,hstore,smallint,oid,internal)
function gin_extract_hstore (line 524) | CREATE FUNCTION gin_extract_hstore(hstore, internal)
function gin_extract_hstore_query (line 529) | CREATE FUNCTION gin_extract_hstore_query(hstore, internal, int2, interna...
function gin_consistent_hstore (line 534) | CREATE FUNCTION gin_consistent_hstore(internal, int2, hstore, int4, inte...
FILE: contrib/hstore/hstore.h
type HEntry (line 18) | typedef struct
type HStore (line 44) | typedef struct
type Pairs (line 161) | typedef struct
FILE: contrib/hstore/hstore_compat.c
type HOldEntry (line 99) | typedef struct
function hstoreValidNewFormat (line 118) | static int
function hstoreValidOldFormat (line 170) | static int
function HStore (line 235) | HStore *
function Datum (line 351) | Datum
FILE: contrib/hstore/hstore_gin.c
function text (line 27) | static text *
function Datum (line 43) | Datum
function Datum (line 81) | Datum
function Datum (line 152) | Datum
FILE: contrib/hstore/hstore_gist.c
type GISTTYPE (line 40) | typedef struct
function pg_crc32 (line 72) | static pg_crc32
function Datum (line 89) | Datum
function Datum (line 96) | Datum
function Datum (line 111) | Datum
function Datum (line 179) | Datum
function Datum (line 185) | Datum
function int32 (line 217) | static int32
function hemdistsign (line 231) | static int
function hemdist (line 245) | static int
function int32 (line 261) | static int32
function Datum (line 274) | Datum
function Datum (line 307) | Datum
type SPLITCOST (line 321) | typedef struct
function comparecost (line 327) | static int
function Datum (line 334) | Datum
function Datum (line 499) | Datum
FILE: contrib/hstore/hstore_io.c
type HSParser (line 29) | typedef struct
function get_val (line 60) | static bool
function parse_hstore (line 182) | static void
function comparePairs (line 281) | static int
function hstoreUniquePairs (line 311) | int
function hstoreCheckKeyLen (line 354) | size_t
function hstoreCheckValLen (line 364) | size_t
function HStore (line 375) | HStore *
function Datum (line 406) | Datum
function Datum (line 426) | Datum
function Datum (line 489) | Datum
function Datum (line 525) | Datum
function Datum (line 645) | Datum
type ColumnIOData (line 744) | typedef struct ColumnIOData
type RecordIOData (line 752) | typedef struct RecordIOData
function Datum (line 763) | Datum
function Datum (line 922) | Datum
function Datum (line 1154) | Datum
function Datum (line 1225) | Datum
function Datum (line 1271) | Datum
function Datum (line 1326) | Datum
function Datum (line 1371) | Datum
function Datum (line 1414) | Datum
FILE: contrib/hstore/hstore_op.c
function hstoreFindKey (line 36) | int
function Pairs (line 73) | Pairs *
function Datum (line 130) | Datum
function Datum (line 151) | Datum
function Datum (line 164) | Datum
function Datum (line 198) | Datum
function Datum (line 232) | Datum
function Datum (line 247) | Datum
function Datum (line 294) | Datum
function Datum (line 373) | Datum
function Datum (line 473) | Datum
function Datum (line 571) | Datum
function Datum (line 634) | Datum
function Datum (line 696) | Datum
function Datum (line 731) | Datum
function ArrayType (line 777) | static ArrayType *
function Datum (line 827) | Datum
function Datum (line 837) | Datum
function setup_firstcall (line 855) | static void
function Datum (line 885) | Datum
function Datum (line 919) | Datum
function Datum (line 967) | Datum
function Datum (line 1015) | Datum
function Datum (line 1026) | Datum
function Datum (line 1087) | Datum
function Datum (line 1168) | Datum
function Datum (line 1179) | Datum
function Datum (line 1190) | Datum
function Datum (line 1201) | Datum
function Datum (line 1212) | Datum
function Datum (line 1223) | Datum
function Datum (line 1235) | Datum
FILE: contrib/hstore/sql/hstore.sql
type testhstore0 (line 213) | create table testhstore0 (a integer, b text, c numeric, d float8)
type testhstore1 (line 214) | create table testhstore1 (a integer, b text, c numeric, d float8, e hste...
type testhstore (line 287) | CREATE TABLE testhstore (h hstore)
type hidx (line 297) | create index hidx on testhstore using gist(h)
type hidx (line 308) | create index hidx on testhstore using gin (h)
type hidx (line 333) | create index hidx on testhstore using btree (h)
type test_json_agg (line 348) | create table test_json_agg (f1 text, f2 hstore)
FILE: contrib/hstore_plperl/hstore_plperl--1.0.sql
function hstore_to_plperl (line 6) | CREATE FUNCTION hstore_to_plperl(val internal) RETURNS internal
function plperl_to_hstore (line 10) | CREATE FUNCTION plperl_to_hstore(val internal) RETURNS hstore
FILE: contrib/hstore_plperl/hstore_plperl.c
type HStore (line 15) | typedef HStore *(*hstoreUpgrade_t) (Datum orig);
type HStore (line 19) | typedef HStore *(*hstorePairs_t) (Pairs *pairs, int32 pcount, int32 bufl...
function _PG_init (line 30) | void
function Datum (line 67) | Datum
function Datum (line 100) | Datum
FILE: contrib/hstore_plperl/hstore_plperlu--1.0.sql
function hstore_to_plperlu (line 6) | CREATE FUNCTION hstore_to_plperlu(val internal) RETURNS internal
function plperlu_to_hstore (line 10) | CREATE FUNCTION plperlu_to_hstore(val internal) RETURNS hstore
FILE: contrib/hstore_plperl/sql/create_transform.sql
function hstore_to_plperl (line 10) | CREATE FUNCTION hstore_to_plperl(val internal) RETURNS internal
function plperl_to_hstore (line 14) | CREATE FUNCTION plperl_to_hstore(val internal) RETURNS hstore
FILE: contrib/hstore_plperl/sql/hstore_plperl.sql
function test2 (line 12) | CREATE FUNCTION test2() RETURNS hstore
function test2arr (line 24) | CREATE FUNCTION test2arr() RETURNS hstore[]
function test2 (line 35) | CREATE OR REPLACE FUNCTION test2() RETURNS hstore
function test2 (line 44) | CREATE OR REPLACE FUNCTION test2() RETURNS hstore
FILE: contrib/hstore_plpython/hstore_plpython.c
type PyObject (line 16) | typedef PyObject *(*PLyUnicode_FromStringAndSize_t) (const char *s, Py_s...
type HStore (line 21) | typedef HStore *(*hstoreUpgrade_t) (Datum orig);
type HStore (line 25) | typedef HStore *(*hstorePairs_t) (Pairs *pairs, int32 pcount, int32 bufl...
function _PG_init (line 36) | void
function Datum (line 85) | Datum
function Datum (line 127) | Datum
FILE: contrib/hstore_plpython/hstore_plpython2u--1.0.sql
function hstore_to_plpython2 (line 6) | CREATE FUNCTION hstore_to_plpython2(val internal) RETURNS internal
function plpython2_to_hstore (line 10) | CREATE FUNCTION plpython2_to_hstore(val internal) RETURNS hstore
FILE: contrib/hstore_plpython/hstore_plpython3u--1.0.sql
function hstore_to_plpython3 (line 6) | CREATE FUNCTION hstore_to_plpython3(val internal) RETURNS internal
function plpython3_to_hstore (line 10) | CREATE FUNCTION plpython3_to_hstore(val internal) RETURNS hstore
FILE: contrib/hstore_plpython/hstore_plpythonu--1.0.sql
function hstore_to_plpython (line 6) | CREATE FUNCTION hstore_to_plpython(val internal) RETURNS internal
function plpython_to_hstore (line 10) | CREATE FUNCTION plpython_to_hstore(val internal) RETURNS hstore
FILE: contrib/hstore_plpython/sql/hstore_plpython.sql
function test1 (line 5) | CREATE FUNCTION test1(val hstore) RETURNS int
function test1n (line 18) | CREATE FUNCTION test1n(val hstore) RETURNS int
function test1arr (line 31) | CREATE FUNCTION test1arr(val hstore[]) RETURNS int
function test2 (line 43) | CREATE FUNCTION test2() RETURNS hstore
function test2arr (line 55) | CREATE FUNCTION test2arr() RETURNS hstore[]
function test2dom (line 69) | CREATE FUNCTION test2dom(fn text) RETURNS hstore_foo
function test3 (line 81) | CREATE FUNCTION test3() RETURNS void
FILE: contrib/intagg/intagg--1.1.sql
function int_agg_state (line 8) | CREATE FUNCTION int_agg_state (internal, int4)
function int_agg_final_array (line 16) | CREATE FUNCTION int_agg_final_array (internal)
function int_array_enum (line 34) | CREATE FUNCTION int_array_enum(int4[])
FILE: contrib/intarray/_int.h
type GISTTYPE (line 72) | typedef struct
type ArrayType (line 91) | typedef ArrayType *(*formarray) (ArrayType *, ArrayType *);
type ITEM (line 125) | typedef struct ITEM
type QUERYTYPE (line 132) | typedef struct QUERYTYPE
FILE: contrib/intarray/_int_bool.c
type NODE (line 27) | typedef struct NODE
type WORKSTATE (line 34) | typedef struct
function int32 (line 48) | static int32
function pushquery (line 136) | static void
function int32 (line 153) | static int32
type CHKVAL (line 226) | typedef struct
function checkcondition_arr (line 235) | static bool
function checkcondition_bit (line 257) | static bool
function execute (line 266) | static bool
function signconsistent (line 300) | bool
function execconsistent (line 309) | bool
type GinChkVal (line 322) | typedef struct
function checkcondition_gin (line 328) | static bool
function gin_bool_consistent (line 336) | bool
function contains_required_value (line 364) | static bool
function query_has_required_values (line 399) | bool
function Datum (line 410) | Datum
function Datum (line 419) | Datum
function findoprnd (line 440) | static void
function Datum (line 477) | Datum
type INFIX (line 549) | typedef struct
function infix (line 564) | static void
function Datum (line 641) | Datum
function Datum (line 664) | Datum
FILE: contrib/intarray/_int_gin.c
function Datum (line 13) | Datum
function Datum (line 110) | Datum
FILE: contrib/intarray/_int_gist.c
function Datum (line 44) | Datum
function Datum (line 109) | Datum
function Datum (line 149) | Datum
function Datum (line 268) | Datum
function Datum (line 339) | Datum
function Datum (line 361) | Datum
type SPLITCOST (line 398) | typedef struct
function comparecost (line 404) | static int
function Datum (line 417) | Datum
FILE: contrib/intarray/_int_op.c
function Datum (line 19) | Datum
function Datum (line 28) | Datum
function Datum (line 46) | Datum
function Datum (line 58) | Datum
function Datum (line 103) | Datum
function Datum (line 126) | Datum
function Datum (line 147) | Datum
function Datum (line 183) | Datum
function Datum (line 189) | Datum
function Datum (line 199) | Datum
function Datum (line 231) | Datum
function Datum (line 241) | Datum
function Datum (line 251) | Datum
function Datum (line 263) | Datum
function Datum (line 277) | Datum
function Datum (line 327) | Datum
function Datum (line 338) | Datum
function Datum (line 351) | Datum
function Datum (line 381) | Datum
function Datum (line 393) | Datum
FILE: contrib/intarray/_int_selfuncs.c
function Datum (line 55) | Datum
function Datum (line 65) | Datum
function Datum (line 75) | Datum
function Datum (line 85) | Datum
function Datum (line 96) | Datum
function Datum (line 107) | Datum
function Datum (line 122) | Datum
function Selectivity (line 244) | static Selectivity
function compare_val_int4 (line 326) | static int
FILE: contrib/intarray/_int_tool.c
function inner_int_contains (line 14) | bool
function inner_int_overlap (line 49) | bool
function ArrayType (line 78) | ArrayType *
function ArrayType (line 135) | ArrayType *
function rt__int_size (line 183) | void
function isort_cmp (line 190) | static int
function isort (line 211) | bool
function ArrayType (line 221) | ArrayType *
function ArrayType (line 249) | ArrayType *
function ArrayType (line 280) | ArrayType *
function internal_size (line 292) | int
function ArrayType (line 310) | ArrayType *
function gensign (line 332) | void
function int32 (line 345) | int32
function ArrayType (line 361) | ArrayType *
function ArrayType (line 378) | ArrayType *
function ArrayType (line 395) | ArrayType *
function compASC (line 407) | int
function compDESC (line 415) | int
FILE: contrib/intarray/_intbig_gist.c
function Datum (line 46) | Datum
function Datum (line 55) | Datum
function _intbig_overlap (line 68) | static bool
function _intbig_contains (line 86) | static bool
function Datum (line 104) | Datum
function Datum (line 136) | Datum
function int32 (line 207) | static int32
function hemdistsign (line 218) | static int
function hemdist (line 233) | static int
function Datum (line 249) | Datum
function int32 (line 255) | static int32
function Datum (line 268) | Datum
function Datum (line 300) | Datum
type SPLITCOST (line 314) | typedef struct
function comparecost (line 320) | static int
function Datum (line 327) | Datum
function Datum (line 491) | Datum
FILE: contrib/intarray/intarray--1.0--1.1.sql
function _int_matchsel (line 6) | CREATE FUNCTION _int_matchsel(internal, oid, internal, integer)
function _int_overlap_sel (line 14) | CREATE FUNCTION _int_overlap_sel(internal, oid, internal, integer)
function _int_contains_sel (line 19) | CREATE FUNCTION _int_contains_sel(internal, oid, internal, integer)
function _int_contained_sel (line 24) | CREATE FUNCTION _int_contained_sel(internal, oid, internal, integer)
function _int_overlap_joinsel (line 29) | CREATE FUNCTION _int_overlap_joinsel(internal, oid, internal, smallint, ...
function _int_contains_joinsel (line 34) | CREATE FUNCTION _int_contains_joinsel(internal, oid, internal, smallint,...
function _int_contained_joinsel (line 39) | CREATE FUNCTION _int_contained_joinsel(internal, oid, internal, smallint...
FILE: contrib/intarray/intarray--1.2.sql
function bqarr_in (line 11) | CREATE FUNCTION bqarr_in(cstring)
function bqarr_out (line 16) | CREATE FUNCTION bqarr_out(query_int)
function querytree (line 28) | CREATE FUNCTION querytree(query_int)
function boolop (line 34) | CREATE FUNCTION boolop(_int4, query_int)
function rboolop (line 41) | CREATE FUNCTION rboolop(query_int, _int4)
function _int_matchsel (line 48) | CREATE FUNCTION _int_matchsel(internal, oid, internal, integer)
function _int_overlap (line 92) | CREATE FUNCTION _int_overlap(_int4, _int4)
function _int_same (line 99) | CREATE FUNCTION _int_same(_int4, _int4)
function _int_different (line 106) | CREATE FUNCTION _int_different(_int4, _int4)
function _int_union (line 115) | CREATE FUNCTION _int_union(_int4, _int4)
function _int_inter (line 120) | CREATE FUNCTION _int_inter(_int4, _int4)
function _int_overlap_sel (line 125) | CREATE FUNCTION _int_overlap_sel(internal, oid, internal, integer)
function _int_contains_sel (line 130) | CREATE FUNCTION _int_contains_sel(internal, oid, internal, integer)
function _int_contained_sel (line 135) | CREATE FUNCTION _int_contained_sel(internal, oid, internal, integer)
function _int_overlap_joinsel (line 140) | CREATE FUNCTION _int_overlap_joinsel(internal, oid, internal, smallint, ...
function _int_contains_joinsel (line 145) | CREATE FUNCTION _int_contains_joinsel(internal, oid, internal, smallint,...
function _int_contained_joinsel (line 150) | CREATE FUNCTION _int_contained_joinsel(internal, oid, internal, smallint...
function sort (line 238) | CREATE OPERATOR # (
function sort (line 248) | CREATE FUNCTION sort(_int4)
function sort_asc (line 253) | CREATE FUNCTION sort_asc(_int4)
function sort_desc (line 258) | CREATE FUNCTION sort_desc(_int4)
function uniq (line 263) | CREATE FUNCTION uniq(_int4)
function idx (line 268) | CREATE FUNCTION idx(_int4, int4)
function subarray (line 273) | CREATE OPERATOR # (
function subarray (line 284) | CREATE FUNCTION subarray(_int4, int4)
function intarray_push_elem (line 289) | CREATE FUNCTION intarray_push_elem(_int4, int4)
function intarray_push_array (line 294) | CREATE OPERATOR + (
function intarray_del_elem (line 305) | CREATE OPERATOR + (
function intset_union_elem (line 317) | CREATE OPERATOR - (
function intset_subtract (line 341) | CREATE FUNCTION intset_subtract(_int4, _int4)
function g_int_compress (line 366) | CREATE FUNCTION g_int_compress(internal)
function g_int_decompress (line 371) | CREATE FUNCTION g_int_decompress(internal)
function g_int_penalty (line 376) | CREATE FUNCTION g_int_penalty(internal,internal,internal)
function g_int_picksplit (line 381) | CREATE FUNCTION g_int_picksplit(internal, internal)
function g_int_union (line 386) | CREATE FUNCTION g_int_union(internal, internal)
function g_int_same (line 391) | CREATE FUNCTION g_int_same(_int4, _int4, internal)
function _intbig_in (line 422) | CREATE FUNCTION _intbig_in(cstring)
function _intbig_out (line 427) | CREATE FUNCTION _intbig_out(intbig_gkey)
function g_intbig_consistent (line 438) | CREATE FUNCTION g_intbig_consistent(internal,_int4,smallint,oid,internal)
function g_intbig_compress (line 443) | CREATE FUNCTION g_intbig_compress(internal)
function g_intbig_decompress (line 448) | CREATE FUNCTION g_intbig_decompress(internal)
function g_intbig_penalty (line 453) | CREATE FUNCTION g_intbig_penalty(internal,internal,internal)
function g_intbig_picksplit (line 458) | CREATE FUNCTION g_intbig_picksplit(internal, internal)
function g_intbig_union (line 463) | CREATE FUNCTION g_intbig_union(internal, internal)
function g_intbig_same (line 468) | CREATE FUNCTION g_intbig_same(intbig_gkey, intbig_gkey, internal)
function ginint4_queryextract (line 496) | CREATE FUNCTION ginint4_queryextract(_int4, internal, int2, internal, in...
function ginint4_consistent (line 501) | CREATE FUNCTION ginint4_consistent(internal, int2, _int4, int4, internal...
FILE: contrib/intarray/sql/_int.sql
type test__int (line 79) | CREATE TABLE test__int( a int[] )
type text_idx (line 92) | CREATE INDEX text_idx on test__int using gist ( a gist__int_ops )
type text_idx (line 104) | CREATE INDEX text_idx on test__int using gist ( a gist__intbig_ops )
type text_idx (line 116) | CREATE INDEX text_idx on test__int using gin ( a gin__int_ops )
FILE: contrib/isn/isn--1.1.sql
function ean13_in (line 18) | CREATE FUNCTION ean13_in(cstring)
function ean13_out (line 24) | CREATE FUNCTION ean13_out(ean13)
function isbn13_in (line 38) | CREATE FUNCTION isbn13_in(cstring)
function ean13_out (line 44) | CREATE FUNCTION ean13_out(isbn13)
function ismn13_in (line 58) | CREATE FUNCTION ismn13_in(cstring)
function ean13_out (line 64) | CREATE FUNCTION ean13_out(ismn13)
function issn13_in (line 78) | CREATE FUNCTION issn13_in(cstring)
function ean13_out (line 84) | CREATE FUNCTION ean13_out(issn13)
function isbn_in (line 100) | CREATE FUNCTION isbn_in(cstring)
function isn_out (line 106) | CREATE FUNCTION isn_out(isbn)
function ismn_in (line 120) | CREATE FUNCTION ismn_in(cstring)
function isn_out (line 126) | CREATE FUNCTION isn_out(ismn)
function issn_in (line 140) | CREATE FUNCTION issn_in(cstring)
function isn_out (line 146) | CREATE FUNCTION isn_out(issn)
function upc_in (line 160) | CREATE FUNCTION upc_in(cstring)
function isn_out (line 166) | CREATE FUNCTION isn_out(upc)
function isnlt (line 185) | CREATE FUNCTION isnlt(ean13, ean13)
function isnle (line 191) | CREATE FUNCTION isnle(ean13, ean13)
function isneq (line 197) | CREATE FUNCTION isneq(ean13, ean13)
function isnge (line 203) | CREATE FUNCTION isnge(ean13, ean13)
function isngt (line 209) | CREATE FUNCTION isngt(ean13, ean13)
function isnne (line 215) | CREATE FUNCTION isnne(ean13, ean13)
function isnlt (line 222) | CREATE FUNCTION isnlt(ean13, isbn13)
function isnle (line 228) | CREATE FUNCTION isnle(ean13, isbn13)
function isneq (line 234) | CREATE FUNCTION isneq(ean13, isbn13)
function isnge (line 240) | CREATE FUNCTION isnge(ean13, isbn13)
function isngt (line 246) | CREATE FUNCTION isngt(ean13, isbn13)
function isnne (line 252) | CREATE FUNCTION isnne(ean13, isbn13)
function isnlt (line 259) | CREATE FUNCTION isnlt(ean13, ismn13)
function isnle (line 265) | CREATE FUNCTION isnle(ean13, ismn13)
function isneq (line 271) | CREATE FUNCTION isneq(ean13, ismn13)
function isnge (line 277) | CREATE FUNCTION isnge(ean13, ismn13)
function isngt (line 283) | CREATE FUNCTION isngt(ean13, ismn13)
function isnne (line 289) | CREATE FUNCTION isnne(ean13, ismn13)
function isnlt (line 296) | CREATE FUNCTION isnlt(ean13, issn13)
function isnle (line 302) | CREATE FUNCTION isnle(ean13, issn13)
function isneq (line 308) | CREATE FUNCTION isneq(ean13, issn13)
function isnge (line 314) | CREATE FUNCTION isnge(ean13, issn13)
function isngt (line 320) | CREATE FUNCTION isngt(ean13, issn13)
function isnne (line 326) | CREATE FUNCTION isnne(ean13, issn13)
function isnlt (line 333) | CREATE FUNCTION isnlt(ean13, isbn)
function isnle (line 339) | CREATE FUNCTION isnle(ean13, isbn)
function isneq (line 345) | CREATE FUNCTION isneq(ean13, isbn)
function isnge (line 351) | CREATE FUNCTION isnge(ean13, isbn)
function isngt (line 357) | CREATE FUNCTION isngt(ean13, isbn)
function isnne (line 363) | CREATE FUNCTION isnne(ean13, isbn)
function isnlt (line 370) | CREATE FUNCTION isnlt(ean13, ismn)
function isnle (line 376) | CREATE FUNCTION isnle(ean13, ismn)
function isneq (line 382) | CREATE FUNCTION isneq(ean13, ismn)
function isnge (line 388) | CREATE FUNCTION isnge(ean13, ismn)
function isngt (line 394) | CREATE FUNCTION isngt(ean13, ismn)
function isnne (line 400) | CREATE FUNCTION isnne(ean13, ismn)
function isnlt (line 407) | CREATE FUNCTION isnlt(ean13, issn)
function isnle (line 413) | CREATE FUNCTION isnle(ean13, issn)
function isneq (line 419) | CREATE FUNCTION isneq(ean13, issn)
function isnge (line 425) | CREATE FUNCTION isnge(ean13, issn)
function isngt (line 431) | CREATE FUNCTION isngt(ean13, issn)
function isnne (line 437) | CREATE FUNCTION isnne(ean13, issn)
function isnlt (line 444) | CREATE FUNCTION isnlt(ean13, upc)
function isnle (line 450) | CREATE FUNCTION isnle(ean13, upc)
function isneq (line 456) | CREATE FUNCTION isneq(ean13, upc)
function isnge (line 462) | CREATE FUNCTION isnge(ean13, upc)
function isngt (line 468) | CREATE FUNCTION isngt(ean13, upc)
function isnne (line 474) | CREATE FUNCTION isnne(ean13, upc)
function isnlt (line 483) | CREATE FUNCTION isnlt(isbn13, isbn13)
function isnle (line 489) | CREATE FUNCTION isnle(isbn13, isbn13)
function isneq (line 495) | CREATE FUNCTION isneq(isbn13, isbn13)
function isnge (line 501) | CREATE FUNCTION isnge(isbn13, isbn13)
function isngt (line 507) | CREATE FUNCTION isngt(isbn13, isbn13)
function isnne (line 513) | CREATE FUNCTION isnne(isbn13, isbn13)
function isnlt (line 520) | CREATE FUNCTION isnlt(isbn13, isbn)
function isnle (line 526) | CREATE FUNCTION isnle(isbn13, isbn)
function isneq (line 532) | CREATE FUNCTION isneq(isbn13, isbn)
function isnge (line 538) | CREATE FUNCTION isnge(isbn13, isbn)
function isngt (line 544) | CREATE FUNCTION isngt(isbn13, isbn)
function isnne (line 550) | CREATE FUNCTION isnne(isbn13, isbn)
function isnlt (line 557) | CREATE FUNCTION isnlt(isbn13, ean13)
function isnle (line 563) | CREATE FUNCTION isnle(isbn13, ean13)
function isneq (line 569) | CREATE FUNCTION isneq(isbn13, ean13)
function isnge (line 575) | CREATE FUNCTION isnge(isbn13, ean13)
function isngt (line 581) | CREATE FUNCTION isngt(isbn13, ean13)
function isnne (line 587) | CREATE FUNCTION isnne(isbn13, ean13)
function isnlt (line 596) | CREATE FUNCTION isnlt(isbn, isbn)
function isnle (line 602) | CREATE FUNCTION isnle(isbn, isbn)
function isneq (line 608) | CREATE FUNCTION isneq(isbn, isbn)
function isnge (line 614) | CREATE FUNCTION isnge(isbn, isbn)
function isngt (line 620) | CREATE FUNCTION isngt(isbn, isbn)
function isnne (line 626) | CREATE FUNCTION isnne(isbn, isbn)
function isnlt (line 633) | CREATE FUNCTION isnlt(isbn, isbn13)
function isnle (line 639) | CREATE FUNCTION isnle(isbn, isbn13)
function isneq (line 645) | CREATE FUNCTION isneq(isbn, isbn13)
function isnge (line 651) | CREATE FUNCTION isnge(isbn, isbn13)
function isngt (line 657) | CREATE FUNCTION isngt(isbn, isbn13)
function isnne (line 663) | CREATE FUNCTION isnne(isbn, isbn13)
function isnlt (line 670) | CREATE FUNCTION isnlt(isbn, ean13)
function isnle (line 676) | CREATE FUNCTION isnle(isbn, ean13)
function isneq (line 682) | CREATE FUNCTION isneq(isbn, ean13)
function isnge (line 688) | CREATE FUNCTION isnge(isbn, ean13)
function isngt (line 694) | CREATE FUNCTION isngt(isbn, ean13)
function isnne (line 700) | CREATE FUNCTION isnne(isbn, ean13)
function isnlt (line 709) | CREATE FUNCTION isnlt(ismn13, ismn13)
function isnle (line 715) | CREATE FUNCTION isnle(ismn13, ismn13)
function isneq (line 721) | CREATE FUNCTION isneq(ismn13, ismn13)
function isnge (line 727) | CREATE FUNCTION isnge(ismn13, ismn13)
function isngt (line 733) | CREATE FUNCTION isngt(ismn13, ismn13)
function isnne (line 739) | CREATE FUNCTION isnne(ismn13, ismn13)
function isnlt (line 746) | CREATE FUNCTION isnlt(ismn13, ismn)
function isnle (line 752) | CREATE FUNCTION isnle(ismn13, ismn)
function isneq (line 758) | CREATE FUNCTION isneq(ismn13, ismn)
function isnge (line 764) | CREATE FUNCTION isnge(ismn13, ismn)
function isngt (line 770) | CREATE FUNCTION isngt(ismn13, ismn)
function isnne (line 776) | CREATE FUNCTION isnne(ismn13, ismn)
function isnlt (line 783) | CREATE FUNCTION isnlt(ismn13, ean13)
function isnle (line 789) | CREATE FUNCTION isnle(ismn13, ean13)
function isneq (line 795) | CREATE FUNCTION isneq(ismn13, ean13)
function isnge (line 801) | CREATE FUNCTION isnge(ismn13, ean13)
function isngt (line 807) | CREATE FUNCTION isngt(ismn13, ean13)
function isnne (line 813) | CREATE FUNCTION isnne(ismn13, ean13)
function isnlt (line 822) | CREATE FUNCTION isnlt(ismn, ismn)
function isnle (line 828) | CREATE FUNCTION isnle(ismn, ismn)
function isneq (line 834) | CREATE FUNCTION isneq(ismn, ismn)
function isnge (line 840) | CREATE FUNCTION isnge(ismn, ismn)
function isngt (line 846) | CREATE FUNCTION isngt(ismn, ismn)
function isnne (line 852) | CREATE FUNCTION isnne(ismn, ismn)
function isnlt (line 859) | CREATE FUNCTION isnlt(ismn, ismn13)
function isnle (line 865) | CREATE FUNCTION isnle(ismn, ismn13)
function isneq (line 871) | CREATE FUNCTION isneq(ismn, ismn13)
function isnge (line 877) | CREATE FUNCTION isnge(ismn, ismn13)
function isngt (line 883) | CREATE FUNCTION isngt(ismn, ismn13)
function isnne (line 889) | CREATE FUNCTION isnne(ismn, ismn13)
function isnlt (line 896) | CREATE FUNCTION isnlt(ismn, ean13)
function isnle (line 902) | CREATE FUNCTION isnle(ismn, ean13)
function isneq (line 908) | CREATE FUNCTION isneq(ismn, ean13)
function isnge (line 914) | CREATE FUNCTION isnge(ismn, ean13)
function isngt (line 920) | CREATE FUNCTION isngt(ismn, ean13)
function isnne (line 926) | CREATE FUNCTION isnne(ismn, ean13)
function isnlt (line 935) | CREATE FUNCTION isnlt(issn13, issn13)
function isnle (line 941) | CREATE FUNCTION isnle(issn13, issn13)
function isneq (line 947) | CREATE FUNCTION isneq(issn13, issn13)
function isnge (line 953) | CREATE FUNCTION isnge(issn13, issn13)
function isngt (line 959) | CREATE FUNCTION isngt(issn13, issn13)
function isnne (line 965) | CREATE FUNCTION isnne(issn13, issn13)
function isnlt (line 972) | CREATE FUNCTION isnlt(issn13, issn)
function isnle (line 978) | CREATE FUNCTION isnle(issn13, issn)
function isneq (line 984) | CREATE FUNCTION isneq(issn13, issn)
function isnge (line 990) | CREATE FUNCTION isnge(issn13, issn)
function isngt (line 996) | CREATE FUNCTION isngt(issn13, issn)
function isnne (line 1002) | CREATE FUNCTION isnne(issn13, issn)
function isnlt (line 1009) | CREATE FUNCTION isnlt(issn13, ean13)
function isnle (line 1015) | CREATE FUNCTION isnle(issn13, ean13)
function isneq (line 1021) | CREATE FUNCTION isneq(issn13, ean13)
function isnge (line 1027) | CREATE FUNCTION isnge(issn13, ean13)
function isngt (line 1033) | CREATE FUNCTION isngt(issn13, ean13)
function isnne (line 1039) | CREATE FUNCTION isnne(issn13, ean13)
function isnlt (line 1048) | CREATE FUNCTION isnlt(issn, issn)
function isnle (line 1054) | CREATE FUNCTION isnle(issn, issn)
function isneq (line 1060) | CREATE FUNCTION isneq(issn, issn)
function isnge (line 1066) | CREATE FUNCTION isnge(issn, issn)
function isngt (line 1072) | CREATE FUNCTION isngt(issn, issn)
function isnne (line 1078) | CREATE FUNCTION isnne(issn, issn)
function isnlt (line 1085) | CREATE FUNCTION isnlt(issn, issn13)
function isnle (line 1091) | CREATE FUNCTION isnle(issn, issn13)
function isneq (line 1097) | CREATE FUNCTION isneq(issn, issn13)
function isnge (line 1103) | CREATE FUNCTION isnge(issn, issn13)
function isngt (line 1109) | CREATE FUNCTION isngt(issn, issn13)
function isnne (line 1115) | CREATE FUNCTION isnne(issn, issn13)
function isnlt (line 1122) | CREATE FUNCTION isnlt(issn, ean13)
function isnle (line 1128) | CREATE FUNCTION isnle(issn, ean13)
function isneq (line 1134) | CREATE FUNCTION isneq(issn, ean13)
function isnge (line 1140) | CREATE FUNCTION isnge(issn, ean13)
function isngt (line 1146) | CREATE FUNCTION isngt(issn, ean13)
function isnne (line 1152) | CREATE FUNCTION isnne(issn, ean13)
function isnlt (line 1161) | CREATE FUNCTION isnlt(upc, upc)
function isnle (line 1167) | CREATE FUNCTION isnle(upc, upc)
function isneq (line 1173) | CREATE FUNCTION isneq(upc, upc)
function isnge (line 1179) | CREATE FUNCTION isnge(upc, upc)
function isngt (line 1185) | CREATE FUNCTION isngt(upc, upc)
function isnne (line 1191) | CREATE FUNCTION isnne(upc, upc)
function isnlt (line 1198) | CREATE FUNCTION isnlt(upc, ean13)
function isnle (line 1204) | CREATE FUNCTION isnle(upc, ean13)
function isneq (line 1210) | CREATE FUNCTION isneq(upc, ean13)
function isnge (line 1216) | CREATE FUNCTION isnge(upc, ean13)
function isngt (line 1222) | CREATE FUNCTION isngt(upc, ean13)
function isnne (line 1228) | CREATE FUNCTION isnne(upc, ean13)
function btean13cmp (line 2734) | CREATE OPERATOR CLASS ean13_ops DEFAULT
function btean13cmp (line 2746) | CREATE FUNCTION btean13cmp(ean13, ismn13)
function btean13cmp (line 2752) | CREATE FUNCTION btean13cmp(ean13, issn13)
function btean13cmp (line 2758) | CREATE FUNCTION btean13cmp(ean13, isbn)
function btean13cmp (line 2764) | CREATE FUNCTION btean13cmp(ean13, ismn)
function btean13cmp (line 2770) | CREATE FUNCTION btean13cmp(ean13, issn)
function btean13cmp (line 2776) | CREATE FUNCTION btean13cmp(ean13, upc)
function btisbn13cmp (line 2838) | CREATE FUNCTION btisbn13cmp(isbn13, isbn13)
function hashisbn13 (line 2845) | CREATE OPERATOR CLASS isbn13_ops DEFAULT
function btisbn13cmp (line 2861) | CREATE OPERATOR CLASS isbn13_ops DEFAULT
function btisbn13cmp (line 2873) | CREATE FUNCTION btisbn13cmp(isbn13, isbn)
function btisbncmp (line 2900) | CREATE FUNCTION btisbncmp(isbn, isbn)
function hashisbn (line 2907) | CREATE OPERATOR CLASS isbn_ops DEFAULT
function btisbncmp (line 2923) | CREATE OPERATOR CLASS isbn_ops DEFAULT
function btisbncmp (line 2935) | CREATE FUNCTION btisbncmp(isbn, isbn13)
function btismn13cmp (line 2962) | CREATE FUNCTION btismn13cmp(ismn13, ismn13)
function hashismn13 (line 2969) | CREATE OPERATOR CLASS ismn13_ops DEFAULT
function btismn13cmp (line 2985) | CREATE OPERATOR CLASS ismn13_ops DEFAULT
function btismn13cmp (line 2997) | CREATE FUNCTION btismn13cmp(ismn13, ismn)
function btismncmp (line 3024) | CREATE FUNCTION btismncmp(ismn, ismn)
function hashismn (line 3031) | CREATE OPERATOR CLASS ismn_ops DEFAULT
function btismncmp (line 3047) | CREATE OPERATOR CLASS ismn_ops DEFAULT
function btismncmp (line 3059) | CREATE FUNCTION btismncmp(ismn, ismn13)
function btissn13cmp (line 3086) | CREATE FUNCTION btissn13cmp(issn13, issn13)
function hashissn13 (line 3093) | CREATE OPERATOR CLASS issn13_ops DEFAULT
function btissn13cmp (line 3109) | CREATE OPERATOR CLASS issn13_ops DEFAULT
function btissn13cmp (line 3121) | CREATE FUNCTION btissn13cmp(issn13, issn)
function btissncmp (line 3148) | CREATE FUNCTION btissncmp(issn, issn)
function hashissn (line 3155) | CREATE OPERATOR CLASS issn_ops DEFAULT
function btissncmp (line 3171) | CREATE OPERATOR CLASS issn_ops DEFAULT
function btissncmp (line 3183) | CREATE FUNCTION btissncmp(issn, issn13)
function btupccmp (line 3210) | CREATE FUNCTION btupccmp(upc, upc)
function hashupc (line 3217) | CREATE OPERATOR CLASS upc_ops DEFAULT
function btupccmp (line 3233) | CREATE OPERATOR CLASS upc_ops DEFAULT
function isbn13 (line 3261) | CREATE FUNCTION isbn13(ean13)
function ismn13 (line 3265) | CREATE FUNCTION ismn13(ean13)
function issn13 (line 3269) | CREATE FUNCTION issn13(ean13)
function isbn (line 3273) | CREATE FUNCTION isbn(ean13)
function ismn (line 3277) | CREATE FUNCTION ismn(ean13)
function issn (line 3281) | CREATE FUNCTION issn(ean13)
function upc (line 3285) | CREATE FUNCTION upc(ean13)
function make_valid (line 3291) | CREATE CAST (ean13 AS isbn13) WITH FUNCTION isbn13(ean13);
function make_valid (line 3323) | CREATE FUNCTION make_valid(isbn13)
function make_valid (line 3329) | CREATE FUNCTION make_valid(ismn13)
function make_valid (line 3335) | CREATE FUNCTION make_valid(issn13)
function make_valid (line 3341) | CREATE FUNCTION make_valid(isbn)
function make_valid (line 3347) | CREATE FUNCTION make_valid(ismn)
function make_valid (line 3353) | CREATE FUNCTION make_valid(issn)
function make_valid (line 3359) | CREATE FUNCTION make_valid(upc)
function is_valid (line 3366) | CREATE FUNCTION is_valid(ean13)
function is_valid (line 3372) | CREATE FUNCTION is_valid(isbn13)
function is_valid (line 3378) | CREATE FUNCTION is_valid(ismn13)
function is_valid (line 3384) | CREATE FUNCTION is_valid(issn13)
function is_valid (line 3390) | CREATE FUNCTION is_valid(isbn)
function is_valid (line 3396) | CREATE FUNCTION is_valid(ismn)
function is_valid (line 3402) | CREATE FUNCTION is_valid(issn)
function is_valid (line 3408) | CREATE FUNCTION is_valid(upc)
function isn_weak (line 3419) | CREATE FUNCTION isn_weak(boolean)
function isn_weak (line 3429) | CREATE FUNCTION isn_weak()
FILE: contrib/isn/isn.c
type isn_type (line 37) | enum isn_type
function check_table (line 65) | static bool
function dehyphenate (line 143) | static unsigned
function hyphenate (line 168) | static unsigned
function weight_checkdig (line 278) | static unsigned
function checkdig (line 304) | static unsigned
function ean2isn (line 341) | static bool
function ean2ISBN (line 443) | static inline void
function ean2ISMN (line 468) | static inline void
function ean2ISSN (line 477) | static inline void
function ean2UPC (line 493) | static inline void
function ean13 (line 509) | static ean13
function ean2string (line 533) | static bool
function string2ean (line 685) | static bool
function _PG_init (line 930) | void
function Datum (line 951) | Datum
function Datum (line 967) | Datum
function Datum (line 983) | Datum
function Datum (line 996) | Datum
function Datum (line 1009) | Datum
function Datum (line 1022) | Datum
function Datum (line 1035) | Datum
function Datum (line 1048) | Datum
function Datum (line 1060) | Datum
function Datum (line 1072) | Datum
function Datum (line 1084) | Datum
function Datum (line 1099) | Datum
function Datum (line 1110) | Datum
function Datum (line 1124) | Datum
function Datum (line 1136) | Datum
FILE: contrib/isn/isn.h
type uint64 (line 26) | typedef uint64 ean13;
FILE: contrib/jsonb_plperl/jsonb_plperl--1.0.sql
function jsonb_to_plperl (line 6) | CREATE FUNCTION jsonb_to_plperl(val internal) RETURNS internal
function plperl_to_jsonb (line 10) | CREATE FUNCTION plperl_to_jsonb(val internal) RETURNS jsonb
FILE: contrib/jsonb_plperl/jsonb_plperl.c
function SV (line 21) | static SV *
function SV (line 63) | static SV *
function JsonbValue (line 132) | static JsonbValue *
function JsonbValue (line 152) | static JsonbValue *
function JsonbValue (line 178) | static JsonbValue *
function Datum (line 281) | Datum
function Datum (line 294) | Datum
FILE: contrib/jsonb_plperl/jsonb_plperlu--1.0.sql
function jsonb_to_plperlu (line 6) | CREATE FUNCTION jsonb_to_plperlu(val internal) RETURNS internal
function plperlu_to_jsonb (line 10) | CREATE FUNCTION plperlu_to_jsonb(val internal) RETURNS jsonb
FILE: contrib/jsonb_plperl/sql/jsonb_plperl.sql
function testHVToJsonb (line 4) | CREATE FUNCTION testHVToJsonb() RETURNS jsonb
function testAVToJsonb (line 15) | CREATE FUNCTION testAVToJsonb() RETURNS jsonb
function testSVToJsonb (line 26) | CREATE FUNCTION testSVToJsonb() RETURNS jsonb
function testUVToJsonb (line 37) | CREATE FUNCTION testUVToJsonb() RETURNS jsonb
function testRegexpResultToJsonb (line 50) | CREATE FUNCTION testRegexpResultToJsonb() RETURNS jsonb
function testTextToJsonbObject (line 61) | CREATE FUNCTION testTextToJsonbObject(text) RETURNS jsonb
function roundtrip (line 73) | CREATE FUNCTION roundtrip(val jsonb, ref text = '') RETURNS jsonb
FILE: contrib/jsonb_plperl/sql/jsonb_plperlu.sql
function testHVToJsonb (line 4) | CREATE FUNCTION testHVToJsonb() RETURNS jsonb
function testAVToJsonb (line 15) | CREATE FUNCTION testAVToJsonb() RETURNS jsonb
function testSVToJsonb (line 26) | CREATE FUNCTION testSVToJsonb() RETURNS jsonb
function testUVToJsonb (line 37) | CREATE FUNCTION testUVToJsonb() RETURNS jsonb
function testRegexpResultToJsonb (line 50) | CREATE FUNCTION testRegexpResultToJsonb() RETURNS jsonb
function testTextToJsonbObject (line 61) | CREATE FUNCTION testTextToJsonbObject(text) RETURNS jsonb
FILE: contrib/jsonb_plpython/jsonb_plpython.c
type PyObject (line 32) | typedef PyObject *(*PLyUnicode_FromStringAndSize_t)
function _PG_init (line 40) | void
function PyObject (line 72) | static PyObject *
function PLyString_ToJsonbValue (line 85) | static void
function PyObject (line 98) | static PyObject *
function PyObject (line 140) | static PyObject *
function JsonbValue (line 233) | static JsonbValue *
function JsonbValue (line 293) | static JsonbValue *
function JsonbValue (line 320) | static JsonbValue *
function JsonbValue (line 367) | static JsonbValue *
function Datum (line 421) | Datum
function Datum (line 439) | Datum
FILE: contrib/jsonb_plpython/jsonb_plpython2u--1.0.sql
function jsonb_to_plpython2 (line 6) | CREATE FUNCTION jsonb_to_plpython2(val internal) RETURNS internal
function plpython2_to_jsonb (line 10) | CREATE FUNCTION plpython2_to_jsonb(val internal) RETURNS jsonb
FILE: contrib/jsonb_plpython/jsonb_plpython3u--1.0.sql
function jsonb_to_plpython3 (line 6) | CREATE FUNCTION jsonb_to_plpython3(val internal) RETURNS internal
function plpython3_to_jsonb (line 10) | CREATE FUNCTION plpython3_to_jsonb(val internal) RETURNS jsonb
FILE: contrib/jsonb_plpython/jsonb_plpythonu--1.0.sql
function jsonb_to_plpython (line 6) | CREATE FUNCTION jsonb_to_plpython(val internal) RETURNS internal
function plpython_to_jsonb (line 10) | CREATE FUNCTION plpython_to_jsonb(val internal) RETURNS jsonb
FILE: contrib/jsonb_plpython/sql/jsonb_plpython.sql
function test1 (line 4) | CREATE FUNCTION test1(val jsonb) RETURNS int
function test1complex (line 17) | CREATE FUNCTION test1complex(val jsonb) RETURNS int
function test1arr (line 31) | CREATE FUNCTION test1arr(val jsonb) RETURNS int
function test2arr (line 44) | CREATE FUNCTION test2arr(val jsonb) RETURNS int
function test3arr (line 57) | CREATE FUNCTION test3arr(val jsonb) RETURNS int
function test1int (line 69) | CREATE FUNCTION test1int(val jsonb) RETURNS int
function test1string (line 80) | CREATE FUNCTION test1string(val jsonb) RETURNS text
function test1null (line 91) | CREATE FUNCTION test1null(val jsonb) RETURNS int
function roundtrip (line 102) | CREATE FUNCTION roundtrip(val jsonb) RETURNS jsonb
function testComplexNumbers (line 131) | CREATE FUNCTION testComplexNumbers() RETURNS jsonb
function testRange (line 142) | CREATE FUNCTION testRange() RETURNS jsonb
function testDecimal (line 153) | CREATE FUNCTION testDecimal() RETURNS jsonb
function testTuple (line 164) | CREATE FUNCTION testTuple() RETURNS jsonb
function test_dict1 (line 175) | CREATE FUNCTION test_dict1() RETURNS jsonb
FILE: contrib/lo/lo--1.1.sql
function lo_oid (line 18) | CREATE FUNCTION lo_oid(lo) RETURNS pg_catalog.oid AS
function lo_manage (line 22) | CREATE FUNCTION lo_manage()
FILE: contrib/lo/lo.c
function Datum (line 23) | Datum
FILE: contrib/lo/lo_test.sql
type a (line 21) | CREATE TABLE a (fname name,image lo)
FILE: contrib/lo/sql/lo.sql
type image (line 3) | CREATE TABLE image (title text, raster lo)
FILE: contrib/ltree/_ltree_gist.c
function hashing (line 49) | static void
function Datum (line 65) | Datum
function Datum (line 131) | Datum
function int32 (line 163) | static int32
function Datum (line 177) | Datum
function int32 (line 209) | static int32
function hemdistsign (line 220) | static int
function hemdist (line 235) | static int
function Datum (line 252) | Datum
type SPLITCOST (line 263) | typedef struct
function comparecost (line 269) | static int
function Datum (line 275) | Datum
function gist_te (line 438) | static bool
function checkcondition_bit (line 461) | static bool
function gist_qtxt (line 467) | static bool
function gist_qe (line 480) | static bool
function _arrq_cons (line 519) | static bool
function Datum (line 544) | Datum
FILE: contrib/ltree/_ltree_op.c
type Datum (line 32) | typedef Datum (*PGCALL2) (PG_FUNCTION_ARGS);
function array_iterator (line 36) | static bool
function Datum (line 70) | Datum
function Datum (line 82) | Datum
function Datum (line 91) | Datum
function Datum (line 103) | Datum
function Datum (line 112) | Datum
function Datum (line 124) | Datum
function Datum (line 133) | Datum
function Datum (line 167) | Datum
function Datum (line 177) | Datum
function Datum (line 189) | Datum
function Datum (line 199) | Datum
function Datum (line 222) | Datum
function Datum (line 245) | Datum
function Datum (line 268) | Datum
function Datum (line 291) | Datum
FILE: contrib/ltree/crc32.c
function ltree_crc32_sz (line 22) | unsigned int
FILE: contrib/ltree/lquery_op.c
type FieldNot (line 22) | typedef struct
function compare_subnode (line 52) | bool
function ltree_strncasecmp (line 90) | int
function checkLevel (line 105) | static bool
function checkCond (line 156) | static bool
function Datum (line 302) | Datum
function Datum (line 329) | Datum
function Datum (line 338) | Datum
function Datum (line 374) | Datum
FILE: contrib/ltree/ltree--1.1.sql
function ltree_in (line 6) | CREATE FUNCTION ltree_in(cstring)
function ltree_out (line 11) | CREATE FUNCTION ltree_out(ltree)
function ltree_cmp (line 25) | CREATE FUNCTION ltree_cmp(ltree,ltree)
function ltree_lt (line 30) | CREATE FUNCTION ltree_lt(ltree,ltree)
function ltree_le (line 35) | CREATE FUNCTION ltree_le(ltree,ltree)
function ltree_eq (line 40) | CREATE FUNCTION ltree_eq(ltree,ltree)
function ltree_ge (line 45) | CREATE FUNCTION ltree_ge(ltree,ltree)
function ltree_gt (line 50) | CREATE FUNCTION ltree_gt(ltree,ltree)
function ltree_ne (line 55) | CREATE FUNCTION ltree_ne(ltree,ltree)
function subpath (line 130) | CREATE FUNCTION subpath(ltree,int4,int4)
function subpath (line 135) | CREATE FUNCTION subpath(ltree,int4)
function index (line 140) | CREATE FUNCTION index(ltree,ltree)
function index (line 145) | CREATE FUNCTION index(ltree,ltree,int4)
function nlevel (line 150) | CREATE FUNCTION nlevel(ltree)
function ltree2text (line 155) | CREATE FUNCTION ltree2text(ltree)
function text2ltree (line 160) | CREATE FUNCTION text2ltree(text)
function lca (line 165) | CREATE FUNCTION lca(_ltree)
function lca (line 170) | CREATE FUNCTION lca(ltree,ltree)
function lca (line 175) | CREATE FUNCTION lca(ltree,ltree,ltree)
function lca (line 180) | CREATE FUNCTION lca(ltree,ltree,ltree,ltree)
function lca (line 185) | CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree)
function lca (line 190) | CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree)
function lca (line 195) | CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree)
function lca (line 200) | CREATE FUNCTION lca(ltree,ltree,ltree,ltree,ltree,ltree,ltree,ltree)
function ltree_isparent (line 205) | CREATE FUNCTION ltree_isparent(ltree,ltree)
function ltree_risparent (line 210) | CREATE FUNCTION ltree_risparent(ltree,ltree)
function ltree_addltree (line 215) | CREATE FUNCTION ltree_addltree(ltree,ltree)
function ltree_addtext (line 220) | CREATE FUNCTION ltree_addtext(ltree,text)
function ltree_textadd (line 225) | CREATE FUNCTION ltree_textadd(text,ltree)
function ltreeparentsel (line 230) | CREATE FUNCTION ltreeparentsel(internal, oid, internal, integer)
function lquery_out (line 308) | CREATE FUNCTION lquery_out(lquery)
function ltq_regex (line 320) | CREATE FUNCTION ltq_regex(ltree,lquery)
function ltq_rregex (line 325) | CREATE FUNCTION ltq_rregex(lquery,ltree)
function ltxtq_exec (line 433) | CREATE FUNCTION ltxtq_exec(ltree, ltxtquery)
function ltxtq_rexec (line 438) | CREATE FUNCTION ltxtq_rexec(ltxtquery, ltree)
function ltree_consistent (line 499) | CREATE FUNCTION ltree_consistent(internal,ltree,int2,oid,internal)
function ltree_compress (line 502) | CREATE FUNCTION ltree_compress(internal)
function ltree_decompress (line 505) | CREATE FUNCTION ltree_decompress(internal)
function ltree_penalty (line 508) | CREATE FUNCTION ltree_penalty(internal,internal,internal)
function ltree_picksplit (line 511) | CREATE FUNCTION ltree_picksplit(internal, internal)
function ltree_union (line 514) | CREATE FUNCTION ltree_union(internal, internal)
function ltree_same (line 517) | CREATE FUNCTION ltree_same(ltree_gist, ltree_gist, internal)
function _ltree_isparent (line 547) | CREATE FUNCTION _ltree_isparent(_ltree,ltree)
function _ltree_r_isparent (line 552) | CREATE FUNCTION _ltree_r_isparent(ltree,_ltree)
function _ltree_risparent (line 557) | CREATE FUNCTION _ltree_risparent(_ltree,ltree)
function _ltree_r_risparent (line 562) | CREATE FUNCTION _ltree_r_risparent(ltree,_ltree)
function _ltq_regex (line 567) | CREATE FUNCTION _ltq_regex(_ltree,lquery)
function _ltq_rregex (line 572) | CREATE FUNCTION _ltq_rregex(lquery,_ltree)
function _lt_q_regex (line 577) | CREATE FUNCTION _lt_q_regex(_ltree,_lquery)
function _lt_q_rregex (line 582) | CREATE FUNCTION _lt_q_rregex(_lquery,_ltree)
function _ltxtq_exec (line 587) | CREATE FUNCTION _ltxtq_exec(_ltree, ltxtquery)
function _ltxtq_rexec (line 592) | CREATE FUNCTION _ltxtq_rexec(ltxtquery, _ltree)
function _ltree_compress (line 830) | CREATE FUNCTION _ltree_compress(internal)
function _ltree_penalty (line 835) | CREATE FUNCTION _ltree_penalty(internal,internal,internal)
function _ltree_picksplit (line 840) | CREATE FUNCTION _ltree_picksplit(internal, internal)
function _ltree_union (line 845) | CREATE FUNCTION _ltree_union(internal, internal)
function _ltree_same (line 850) | CREATE FUNCTION _ltree_same(ltree_gist, ltree_gist, internal)
FILE: contrib/ltree/ltree.h
type ltree_level (line 10) | typedef struct
type ltree (line 19) | typedef struct
type lquery_variant (line 32) | typedef struct
type lquery_level (line 47) | typedef struct
type lquery (line 69) | typedef struct
type ITEM (line 91) | typedef struct ITEM
type ltxtquery (line 106) | typedef struct
type ltree_gist (line 216) | typedef struct
FILE: contrib/ltree/ltree_gist.c
function Datum (line 18) | Datum
function Datum (line 27) | Datum
function Datum (line 47) | Datum
function Datum (line 72) | Datum
function Datum (line 90) | Datum
function hashing (line 134) | static void
function Datum (line 150) | Datum
function Datum (line 234) | Datum
type RIX (line 252) | typedef struct rix
function treekey_cmp (line 258) | static int
function Datum (line 268) | Datum
function gist_isparent (line 425) | static bool
function ltree (line 445) | static ltree *
function gist_ischild (line 454) | static bool
function gist_qe (line 479) | static bool
function gist_tqcmp (line 518) | static int
function gist_between (line 547) | static bool
function checkcondition_bit (line 562) | static bool
function gist_qtxt (line 568) | static bool
function arrq_cons (line 581) | static bool
function Datum (line 606) | Datum
FILE: contrib/ltree/ltree_io.c
type nodeitem (line 26) | typedef struct
function Datum (line 37) | Datum
function Datum (line 149) | Datum
function Datum (line 193) | Datum
function Datum (line 521) | Datum
FILE: contrib/ltree/ltree_op.c
function ltree_compare (line 41) | int
function Datum (line 83) | Datum
function Datum (line 90) | Datum
function Datum (line 97) | Datum
function Datum (line 104) | Datum
function Datum (line 111) | Datum
function Datum (line 118) | Datum
function Datum (line 125) | Datum
function Datum (line 132) | Datum
function inner_isparent (line 142) | bool
function Datum (line 166) | Datum
function Datum (line 178) | Datum
function ltree (line 191) | static ltree *
function Datum (line 230) | Datum
function Datum (line 240) | Datum
function ltree (line 273) | static ltree *
function Datum (line 289) | Datum
function Datum (line 302) | Datum
function Datum (line 327) | Datum
function Datum (line 387) | Datum
function ltree (line 418) | ltree *
function Datum (line 493) | Datum
function Datum (line 514) | Datum
function Datum (line 531) | Datum
function Datum (line 567) | Datum
FILE: contrib/ltree/ltreetest.sql
type test (line 6) | CREATE TABLE test ( path ltree)
type path_gist_idx (line 20) | CREATE INDEX path_gist_idx ON test USING gist(path)
type path_idx (line 21) | CREATE INDEX path_idx ON test USING btree(path)
FILE: contrib/ltree/ltxtquery_io.c
type NODE (line 27) | typedef struct NODE
type QPRS_STATE (line 37) | typedef struct
function int32 (line 57) | static int32
function pushquery (line 145) | static void
function pushval_asis (line 171) | static void
function int32 (line 202) | static int32
function findoprnd (line 277) | static void
function ltxtquery (line 310) | static ltxtquery *
function Datum (line 385) | Datum
type INFIX (line 394) | typedef struct
function infix (line 416) | static void
function Datum (line 515) | Datum
FILE: contrib/ltree/ltxtquery_op.c
function ltree_execute (line 19) | bool
type CHKVAL (line 49) | typedef struct
function checkcondition_str (line 55) | static bool
function Datum (line 86) | Datum
function Datum (line 109) | Datum
FILE: contrib/ltree/sql/ltree.sql
type ltreetest (line 223) | CREATE TABLE ltreetest (t ltree)
type tstidx (line 241) | create unique index tstidx on ltreetest (t)
type tstidx (line 251) | create index tstidx on ltreetest using gist (t)
type _ltreetest (line 269) | create table _ltreetest (t ltree[])
type _tstidx (line 282) | create index _tstidx on _ltreetest using gist (t)
FILE: contrib/ltree_plpython/ltree_plpython.c
type PyObject (line 13) | typedef PyObject *(*PLyUnicode_FromStringAndSize_t) (const char *s, Py_s...
function _PG_init (line 21) | void
function Datum (line 40) | Datum
FILE: contrib/ltree_plpython/ltree_plpython2u--1.0.sql
function ltree_to_plpython2 (line 6) | CREATE FUNCTION ltree_to_plpython2(val internal) RETURNS internal
FILE: contrib/ltree_plpython/ltree_plpython3u--1.0.sql
function ltree_to_plpython3 (line 6) | CREATE FUNCTION ltree_to_plpython3(val internal) RETURNS internal
FILE: contrib/ltree_plpython/ltree_plpythonu--1.0.sql
function ltree_to_plpython (line 6) | CREATE FUNCTION ltree_to_plpython(val internal) RETURNS internal
FILE: contrib/ltree_plpython/sql/ltree_plpython.sql
function test1 (line 4) | CREATE FUNCTION test1(val ltree) RETURNS int
function test1n (line 15) | CREATE FUNCTION test1n(val ltree) RETURNS int
function test2 (line 26) | CREATE FUNCTION test2() RETURNS ltree
FILE: contrib/oid2name/oid2name.c
type eary (line 19) | typedef struct
type options (line 27) | struct options
type options (line 49) | struct options
type options (line 52) | struct options
type options (line 54) | struct options
type options (line 55) | struct options
type options (line 56) | struct options
type options (line 57) | struct options
function get_opts (line 60) | void
function help (line 172) | static void
function add_one_elt (line 203) | void
function PGconn (line 263) | PGconn *
function sql_exec (line 346) | int
function sql_exec_dumpalldbs (line 426) | void
function sql_exec_dumpalltables (line 443) | void
function sql_exec_searchtables (line 475) | void
function sql_exec_dumpalltbspc (line 545) | void
function main (line 557) | int
FILE: contrib/pageinspect/brinfuncs.c
type brin_column_state (line 36) | typedef struct brin_column_state
function Datum (line 46) | Datum
function Page (line 91) | static Page
function Datum (line 125) | Datum
function Datum (line 327) | Datum
function Datum (line 366) | Datum
FILE: contrib/pageinspect/btreefuncs.c
type BTPageStat (line 59) | typedef struct BTPageStat
function GetBTPageStatistics (line 89) | static void
function Datum (line 160) | Datum
type user_args (line 243) | struct user_args
function Datum (line 255) | static Datum
function Datum (line 309) | Datum
function Datum (line 420) | Datum
function Datum (line 504) | Datum
FILE: contrib/pageinspect/fsmfuncs.c
function Datum (line 35) | Datum
FILE: contrib/pageinspect/ginfuncs.c
function Datum (line 34) | Datum
function Datum (line 90) | Datum
type gin_leafpage_items_state (line 156) | typedef struct gin_leafpage_items_state
function Datum (line 163) | Datum
FILE: contrib/pageinspect/hashfuncs.c
type HashPageStat (line 36) | typedef struct HashPageStat
function Page (line 56) | static Page
function GetHashPageStatistics (line 150) | static void
function Datum (line 186) | Datum
function Datum (line 231) | Datum
type user_args (line 282) | struct user_args
function Datum (line 296) | Datum
function Datum (line 392) | Datum
function Datum (line 511) | Datum
FILE: contrib/pageinspect/heapfuncs.c
function bits8 (line 68) | static bits8 *
type heap_page_items_state (line 105) | typedef struct heap_page_items_state
function Datum (line 112) | Datum
function Datum (line 287) | static Datum
function Datum (line 402) | Datum
FILE: contrib/pageinspect/pageinspect--1.2--1.3.sql
function brin_page_type (line 9) | CREATE FUNCTION brin_page_type(IN page bytea)
function brin_revmap_data (line 25) | CREATE FUNCTION brin_revmap_data(IN page bytea,
function brin_page_items (line 34) | CREATE FUNCTION brin_page_items(IN page bytea, IN index_oid regclass,
function gin_leafpage_items (line 76) | CREATE FUNCTION gin_leafpage_items(IN page bytea,
FILE: contrib/pageinspect/pageinspect--1.3--1.4.sql
function heap_page_items (line 10) | CREATE FUNCTION heap_page_items(IN page bytea,
function tuple_data_split (line 32) | CREATE FUNCTION tuple_data_split(rel_oid oid,
function tuple_data_split (line 41) | CREATE FUNCTION tuple_data_split(rel_oid oid,
function heap_page_item_attrs (line 54) | CREATE FUNCTION heap_page_item_attrs(
function heap_page_item_attrs (line 98) | CREATE FUNCTION heap_page_item_attrs(
FILE: contrib/pageinspect/pageinspect--1.5--1.6.sql
function hash_page_type (line 13) | CREATE FUNCTION hash_page_type(IN page bytea)
function hash_page_items (line 37) | CREATE FUNCTION hash_page_items(IN page bytea,
function hash_bitmap_info (line 48) | CREATE FUNCTION hash_bitmap_info(IN index_oid regclass, IN blkno int8,
function page_checksum (line 82) | CREATE FUNCTION page_checksum(IN page bytea, IN blkno int4)
function bt_page_items (line 90) | CREATE FUNCTION bt_page_items(IN page bytea,
FILE: contrib/pageinspect/pageinspect--1.5.sql
function get_raw_page (line 9) | CREATE FUNCTION get_raw_page(text, int4)
function get_raw_page (line 14) | CREATE FUNCTION get_raw_page(text, text, int4)
function heap_page_items (line 38) | CREATE FUNCTION heap_page_items(IN page bytea,
function tuple_data_split (line 60) | CREATE FUNCTION tuple_data_split(rel_oid oid,
function tuple_data_split (line 69) | CREATE FUNCTION tuple_data_split(rel_oid oid,
function heap_page_item_attrs (line 82) | CREATE FUNCTION heap_page_item_attrs(
function heap_page_item_attrs (line 126) | CREATE FUNCTION heap_page_item_attrs(IN page bytea, IN rel_oid regclass,
function bt_page_items (line 180) | CREATE FUNCTION bt_page_items(IN relname text, IN blkno int4,
function brin_page_type (line 194) | CREATE FUNCTION brin_page_type(IN page bytea)
function brin_revmap_data (line 210) | CREATE FUNCTION brin_revmap_data(IN page bytea,
function brin_page_items (line 219) | CREATE FUNCTION brin_page_items(IN page bytea, IN index_oid regclass,
function fsm_page_contents (line 234) | CREATE FUNCTION fsm_page_contents(IN page bytea)
function gin_leafpage_items (line 273) | CREATE FUNCTION gin_leafpage_items(IN page bytea,
FILE: contrib/pageinspect/pageinspect--unpackaged--1.0.sql
function heap_page_items (line 7) | CREATE FUNCTION heap_page_items(IN page bytea,
FILE: contrib/pageinspect/rawpage.c
function Datum (line 45) | Datum
function Datum (line 74) | Datum
function bytea (line 93) | static bytea *
function Page (line 186) | Page
function Datum (line 217) | Datum
function Datum (line 297) | Datum
FILE: contrib/pageinspect/sql/brin.sql
type test1 (line 1) | CREATE TABLE test1 (a int, b text)
type test1_a_idx (line 3) | CREATE INDEX test1_a_idx ON test1 USING brin (a)
FILE: contrib/pageinspect/sql/btree.sql
type test1 (line 1) | CREATE TABLE test1 (a int8, b text)
type test1_a_idx (line 3) | CREATE INDEX test1_a_idx ON test1 USING btree (a)
FILE: contrib/pageinspect/sql/gin.sql
type test1 (line 1) | CREATE TABLE test1 (x int, y int[])
type test1_y_idx (line 3) | CREATE INDEX test1_y_idx ON test1 USING gin (y) WITH (fastupdate = off)
FILE: contrib/pageinspect/sql/hash.sql
type test_hash (line 1) | CREATE TABLE test_hash (a int, b text)
type test_hash_a_idx (line 3) | CREATE INDEX test_hash_a_idx ON test_hash USING hash (a)
FILE: contrib/pageinspect/sql/page.sql
type test1 (line 3) | CREATE TABLE test1 (a int, b int)
type test_partitioned (line 38) | create table test_partitioned (a int) partition by range (a)
type test_partitioned_index (line 39) | create index test_partitioned_index on test_partitioned (a)
type test8 (line 49) | create table test8 (f1 int, f2 int, f3 int, f4 int, f5 int, f6 int, f7 i...
FILE: contrib/passwordcheck/passwordcheck.c
function check_password (line 55) | static void
function _PG_init (line 141) | void
function _PG_fini (line 152) | void
FILE: contrib/pg_buffercache/pg_buffercache--1.0--1.1.sql
type pg_buffercache (line 7) | CREATE OR REPLACE VIEW pg_buffercache AS
FILE: contrib/pg_buffercache/pg_buffercache--1.2.sql
function pg_buffercache_pages (line 7) | CREATE FUNCTION pg_buffercache_pages()
type pg_buffercache (line 13) | CREATE VIEW pg_buffercache AS
FILE: contrib/pg_buffercache/pg_buffercache_pages.c
type BufferCachePagesRec (line 26) | typedef struct
type BufferCachePagesContext (line 50) | typedef struct
function Datum (line 63) | Datum
FILE: contrib/pg_freespacemap/pg_freespacemap--1.1.sql
function pg_freespace (line 7) | CREATE FUNCTION pg_freespace(regclass, bigint)
function pg_freespace (line 13) | CREATE FUNCTION
FILE: contrib/pg_freespacemap/pg_freespacemap.c
function Datum (line 22) | Datum
FILE: contrib/pg_prewarm/autoprewarm.c
type BlockInfoRecord (line 58) | typedef struct BlockInfoRecord
type AutoPrewarmSharedState (line 68) | typedef struct AutoPrewarmSharedState
function _PG_init (line 113) | void
function autoprewarm_main (line 156) | void
function apw_load_buffers (line 274) | static void
function autoprewarm_database_main (line 427) | void
function apw_dump_now (line 562) | static int
function Datum (line 702) | Datum
function Datum (line 734) | Datum
function apw_init_shmem (line 755) | static bool
function apw_detach_shmem (line 781) | static void
function apw_start_master_worker (line 795) | static void
function apw_start_database_worker (line 837) | static void
function apw_compare_blockinfo (line 887) | static int
function apw_sigterm_handler (line 905) | static void
function apw_sighup_handler (line 921) | static void
FILE: contrib/pg_prewarm/pg_prewarm--1.1--1.2.sql
function autoprewarm_start_worker (line 6) | CREATE FUNCTION autoprewarm_start_worker()
function autoprewarm_dump_now (line 11) | CREATE FUNCTION autoprewarm_dump_now()
FILE: contrib/pg_prewarm/pg_prewarm--1.1.sql
function pg_prewarm (line 7) | CREATE FUNCTION pg_prewarm(regclass,
FILE: contrib/pg_prewarm/pg_prewarm.c
type PrewarmType (line 32) | typedef enum
function Datum (line 53) | Datum
FILE: contrib/pg_standby/pg_standby.c
type stat (line 103) | struct stat
function CustomizableInitialize (line 130) | static void
function CustomizableNextWALFileReady (line 179) | static bool
function CustomizableCleanupPriorWALFiles (line 256) | static void
function SetWALFileNameForCleanup (line 342) | static bool
function SetWALSegSize (line 406) | static bool
function CheckForExternalTrigger (line 472) | static void
function RestoreWALFileForRecovery (line 565) | static bool
function usage (line 600) | static void
function sighandler (line 629) | static void
function sigquit_handler (line 636) | static void
function main (line 645) | int
FILE: contrib/pg_stat_statements/pg_stat_statements--1.0--1.1.sql
function pg_stat_statements (line 15) | CREATE FUNCTION pg_stat_statements(
type pg_stat_statements (line 39) | CREATE VIEW pg_stat_statements AS
FILE: contrib/pg_stat_statements/pg_stat_statements--1.1--1.2.sql
function pg_stat_statements (line 15) | CREATE FUNCTION pg_stat_statements(IN showtext boolean,
type pg_stat_statements (line 40) | CREATE VIEW pg_stat_statements AS
FILE: contrib/pg_stat_statements/pg_stat_statements--1.2--1.3.sql
function pg_stat_statements (line 15) | CREATE FUNCTION pg_stat_statements(IN showtext boolean,
type pg_stat_statements (line 44) | CREATE VIEW pg_stat_statements AS
FILE: contrib/pg_stat_statements/pg_stat_statements--1.4.sql
function pg_stat_statements_reset (line 7) | CREATE FUNCTION pg_stat_statements_reset()
function pg_stat_statements (line 12) | CREATE FUNCTION pg_stat_statements(IN showtext boolean,
type pg_stat_statements (line 42) | CREATE VIEW pg_stat_statements AS
FILE: contrib/pg_stat_statements/pg_stat_statements.c
type pgssVersion (line 118) | typedef enum pgssVersion
type pgssHashKey (line 135) | typedef struct pgssHashKey
type Counters (line 145) | typedef struct Counters
type pgssEntry (line 176) | typedef struct pgssEntry
type pgssSharedState (line 189) | typedef struct pgssSharedState
type pgssLocationLen (line 203) | typedef struct pgssLocationLen
type pgssJumbleState (line 213) | typedef struct pgssJumbleState
type PGSSTrackLevel (line 254) | typedef enum
type config_enum_entry (line 261) | struct config_enum_entry
function _PG_init (line 347) | void
function _PG_fini (line 443) | void
function pgss_shmem_startup (line 462) | static void
function pgss_shmem_shutdown (line 681) | static void
function pgss_post_parse_analyze (line 777) | static void
function pgss_ExecutorStart (line 848) | static void
function pgss_ExecutorRun (line 882) | static void
function pgss_ExecutorFinish (line 906) | static void
function pgss_ExecutorEnd (line 929) | static void
function pgss_ProcessUtility (line 961) | static void
function uint64 (line 1080) | static uint64
function pgss_store (line 1097) | static void
function Datum (line 1298) | Datum
function Datum (line 1326) | Datum
function Datum (line 1336) | Datum
function Datum (line 1350) | Datum
function pg_stat_statements_internal (line 1360) | static void
function Size (line 1650) | static Size
function pgssEntry (line 1678) | static pgssEntry *
function entry_cmp (line 1715) | static int
function entry_dealloc (line 1734) | static void
function qtext_store (line 1820) | static bool
type stat (line 1908) | struct stat
function need_gc_qtexts (line 2003) | static bool
function gc_qtexts (line 2050) | static void
function entry_reset (line 2234) | static void
function AppendJumble (line 2284) | static void
function JumbleQuery (line 2335) | static void
function JumbleRangeTable (line 2364) | static void
function JumbleExpr (line 2428) | static void
function RecordConstLocation (line 2906) | static void
function fill_in_constant_lengths (line 3054) | static void
function comp_location (line 3154) | static int
FILE: contrib/pg_stat_statements/sql/pg_stat_statements.sql
function PLUS_TWO (line 129) | CREATE FUNCTION PLUS_TWO(i INTEGER) RETURNS INTEGER AS $$
function PLUS_ONE (line 141) | CREATE FUNCTION PLUS_ONE(i INTEGER) RETURNS INTEGER AS
function PLUS_TWO (line 160) | CREATE FUNCTION PLUS_TWO(i INTEGER) RETURNS INTEGER AS $$
function PLUS_ONE (line 172) | CREATE FUNCTION PLUS_ONE(i INTEGER) RETURNS INTEGER AS
type test_b (line 187) | CREATE INDEX test_b ON test(b)
FILE: contrib/pg_trgm/pg_trgm--1.1--1.2.sql
function word_similarity (line 6) | CREATE FUNCTION word_similarity(text,text)
function word_similarity_op (line 11) | CREATE FUNCTION word_similarity_op(text,text)
function word_similarity_commutator_op (line 16) | CREATE FUNCTION word_similarity_commutator_op(text,text)
function word_similarity_dist_op (line 21) | CREATE FUNCTION word_similarity_dist_op(text,text)
function word_similarity_dist_commutator_op (line 26) | CREATE FUNCTION word_similarity_dist_commutator_op(text,text)
function gin_trgm_triconsistent (line 63) | CREATE FUNCTION gin_trgm_triconsistent(internal, int2, text, int4, inter...
FILE: contrib/pg_trgm/pg_trgm--1.3--1.4.sql
function strict_word_similarity (line 6) | CREATE FUNCTION strict_word_similarity(text,text)
function strict_word_similarity_op (line 11) | CREATE FUNCTION strict_word_similarity_op(text,text)
function strict_word_similarity_commutator_op (line 16) | CREATE FUNCTION strict_word_similarity_commutator_op(text,text)
function strict_word_similarity_dist_commutator_op (line 44) | CREATE FUNCTION strict_word_similarity_dist_commutator_op(text,text)
FILE: contrib/pg_trgm/pg_trgm--1.3.sql
function set_limit (line 7) | CREATE FUNCTION set_limit(float4)
function show_limit (line 13) | CREATE FUNCTION show_limit()
function show_trgm (line 18) | CREATE FUNCTION show_trgm(text)
function similarity (line 23) | CREATE FUNCTION similarity(text,text)
function similarity_op (line 28) | CREATE FUNCTION similarity_op(text,text)
function word_similarity (line 33) | CREATE OPERATOR % (
function word_similarity_op (line 47) | CREATE FUNCTION word_similarity_op(text,text)
function word_similarity_commutator_op (line 52) | CREATE FUNCTION word_similarity_commutator_op(text,text)
function word_similarity_dist_op (line 80) | CREATE OPERATOR <-> (
function word_similarity_dist_commutator_op (line 92) | CREATE FUNCTION word_similarity_dist_commutator_op(text,text)
function gtrgm_in (line 97) | CREATE OPERATOR <<-> (
function gtrgm_out (line 117) | CREATE FUNCTION gtrgm_out(gtrgm)
function gtrgm_consistent (line 129) | CREATE FUNCTION gtrgm_consistent(internal,text,smallint,oid,internal)
function gtrgm_distance (line 134) | CREATE FUNCTION gtrgm_distance(internal,text,smallint,oid,internal)
function gtrgm_compress (line 139) | CREATE FUNCTION gtrgm_compress(internal)
function gtrgm_decompress (line 144) | CREATE FUNCTION gtrgm_decompress(internal)
function gtrgm_penalty (line 149) | CREATE FUNCTION gtrgm_penalty(internal,internal,internal)
function gtrgm_picksplit (line 154) | CREATE FUNCTION gtrgm_picksplit(internal, internal)
function gtrgm_union (line 159) | CREATE FUNCTION gtrgm_union(internal, internal)
function gtrgm_same (line 164) | CREATE FUNCTION gtrgm_same(gtrgm, gtrgm, internal)
function gin_extract_value_trgm (line 170) | CREATE OPERATOR CLASS gist_trgm_ops
function gin_extract_query_trgm (line 212) | CREATE FUNCTION gin_extract_query_trgm(text, internal, int2, internal, i...
function gin_trgm_consistent (line 217) | CREATE FUNCTION gin_trgm_consistent(internal, int2, text, int4, internal...
function gin_trgm_triconsistent (line 223) | CREATE OPERATOR CLASS gin_trgm_ops
FILE: contrib/pg_trgm/pg_trgm--unpackaged--1.0.sql
function gin_extract_value_trgm (line 42) | CREATE OR REPLACE FUNCTION gin_extract_value_trgm(text, internal)
function gin_extract_query_trgm (line 49) | CREATE OR REPLACE FUNCTION gin_extract_query_trgm(text, internal, int2, ...
function similarity_dist (line 71) | CREATE FUNCTION similarity_dist(text,text)
function gtrgm_distance (line 76) | CREATE OPERATOR <-> (
FILE: contrib/pg_trgm/sql/pg_strict_word_trgm.sql
type trgm_idx2 (line 11) | create index trgm_idx2 on test_trgm2 using gist (t gist_trgm_ops)
type trgm_idx2 (line 24) | create index trgm_idx2 on test_trgm2 using gin (t gin_trgm_ops)
FILE: contrib/pg_trgm/sql/pg_trgm.sql
type test_trgm (line 25) | CREATE TABLE test_trgm(t text COLLATE "C")
type trgm_idx (line 35) | create index trgm_idx on test_trgm using gist (t gist_trgm_ops)
type trgm_idx (line 47) | create index trgm_idx on test_trgm using gin (t gin_trgm_ops)
type test2 (line 55) | create table test2(t text COLLATE "C")
type test2_idx_gin (line 60) | create index test2_idx_gin on test2 using gin (t gin_trgm_ops)
type test2_idx_gist (line 98) | create index test2_idx_gist on test2 using gist (t gist_trgm_ops)
type restaurants (line 137) | CREATE TEMP TABLE restaurants (city text)
type restaurants (line 140) | CREATE INDEX ON restaurants USING gist(city gist_trgm_ops)
FILE: contrib/pg_trgm/sql/pg_word_trgm.sql
type test_trgm2 (line 1) | CREATE TABLE test_trgm2(t text COLLATE "C")
type trgm_idx2 (line 11) | create index trgm_idx2 on test_trgm2 using gist (t gist_trgm_ops)
type trgm_idx2 (line 24) | create index trgm_idx2 on test_trgm2 using gin (t gin_trgm_ops)
FILE: contrib/pg_trgm/trgm.h
type TRGM (line 66) | typedef struct
type TrgmPackedGraph (line 122) | typedef struct TrgmPackedGraph TrgmPackedGraph;
FILE: contrib/pg_trgm/trgm_gin.c
function Datum (line 24) | Datum
function Datum (line 35) | Datum
function Datum (line 70) | Datum
function Datum (line 169) | Datum
function Datum (line 267) | Datum
FILE: contrib/pg_trgm/trgm_gist.c
type gtrgm_consistent_cache (line 12) | typedef struct
function Datum (line 63) | Datum
function Datum (line 70) | Datum
function makesign (line 77) | static void
function Datum (line 94) | Datum
function Datum (line 138) | Datum
function int32 (line 162) | static int32
function Datum (line 180) | Datum
function Datum (line 432) | Datum
function int32 (line 513) | static int32
function Datum (line 543) | Datum
function Datum (line 576) | Datum
function int32 (line 634) | static int32
function hemdistsign (line 645) | static int
function hemdist (line 660) | static int
function Datum (line 676) | Datum
type CACHESIGN (line 731) | typedef struct
function fillcache (line 737) | static void
type SPLITCOST (line 750) | typedef struct
function comparecost (line 756) | static int
function hemdistcache (line 766) | static int
function Datum (line 782) | Datum
FILE: contrib/pg_trgm/trgm_op.c
type pos_trgm (line 43) | typedef struct
type uint8 (line 50) | typedef uint8 TrgmBound;
function _PG_init (line 63) | void
function Datum (line 109) | Datum
function index_strategy_get_limit (line 131) | double
function Datum (line 154) | Datum
function comp_trgm (line 160) | static int
function unique_array (line 166) | static int
function compact_trigram (line 217) | void
function trgm (line 242) | static trgm *
function generate_trgm_only (line 294) | static int
function protect_out_of_mem (line 358) | static void
function TRGM (line 375) | TRGM *
function pos_trgm (line 416) | static pos_trgm *
function comp_ptrgm (line 443) | static int
function float4 (line 476) | static float4
function float4 (line 640) | static float4
function TRGM (line 885) | TRGM *
function uint32 (line 954) | uint32
function Datum (line 968) | Datum
function float4 (line 1017) | float4
function trgm_contained_by (line 1065) | bool
function Datum (line 1143) | Datum
function Datum (line 1165) | Datum
function Datum (line 1181) | Datum
function Datum (line 1197) | Datum
function Datum (line 1207) | Datum
function Datum (line 1217) | Datum
function Datum (line 1233) | Datum
function Datum (line 1249) | Datum
function Datum (line 1265) | Datum
function Datum (line 1281) | Datum
function Datum (line 1297) | Datum
function Datum (line 1313) | Datum
function Datum (line 1329) | Datum
FILE: contrib/pg_trgm/trgm_regexp.c
type trgm_mb_char (line 242) | typedef struct
type TrgmColorInfo (line 260) | typedef struct
type TrgmColor (line 284) | typedef int TrgmColor;
type TrgmPrefix (line 290) | typedef struct
type ColorTrgm (line 299) | typedef struct
type TrgmStateKey (line 309) | typedef struct
type TrgmState (line 333) | typedef struct TrgmState
type TrgmArc (line 348) | typedef struct
type TrgmArcInfo (line 359) | typedef struct
type ColorTrgmInfo (line 374) | typedef struct
type TrgmNFA (line 401) | typedef struct
type TrgmPackedArc (line 428) | typedef struct
type TrgmPackedState (line 434) | typedef struct
type TrgmPackedGraph (line 441) | struct TrgmPackedGraph
type TrgmPackArcInfo (line 471) | typedef struct
function TRGM (line 522) | TRGM *
function TRGM (line 579) | static TRGM *
function trigramsMatchGraph (line 640) | bool
function RE_compile (line 733) | static void
function getColorInfo (line 777) | static void
function convertPgWchar (line 840) | static bool
function transformGraph (line 906) | static void
function processState (line 968) | static void
function addKey (line 1011) | static void
function addKeyToQueue (line 1182) | static void
function addArcs (line 1194) | static void
function addArc (line 1286) | static void
function validArcLabel (line 1328) | static bool
function TrgmState (line 1383) | static TrgmState *
function prefixContains (line 1414) | static bool
function selectColorTrigrams (line 1456) | static bool
function TRGM (line 1775) | static TRGM *
function fillTrgm (line 1843) | static void
function mergeStates (line 1875) | static void
function colorTrgmInfoCmp (line 1892) | static int
function colorTrgmInfoPenaltyCmp (line 1905) | static int
function TrgmPackedGraph (line 1930) | static TrgmPackedGraph *
function packArcInfoCmp (line 2085) | static int
function printSourceNFA (line 2119) | static void
function printTrgmNFA (line 2203) | static void
function printTrgmColor (line 2265) | static void
function printTrgmPackedGraph (line 2279) | static void
FILE: contrib/pg_visibility/pg_visibility--1.0--1.1.sql
function pg_check_frozen (line 6) | CREATE FUNCTION pg_check_frozen(regclass, t_ctid OUT tid)
function pg_check_visible (line 11) | CREATE FUNCTION pg_check_visible(regclass, t_ctid OUT tid)
function pg_truncate_visibility_map (line 16) | CREATE FUNCTION pg_truncate_visibility_map(regclass)
FILE: contrib/pg_visibility/pg_visibility--1.1.sql
function pg_visibility_map (line 7) | CREATE FUNCTION pg_visibility_map(regclass, blkno bigint,
function pg_visibility (line 15) | CREATE FUNCTION pg_visibility(regclass, blkno bigint,
function pg_visibility_map (line 24) | CREATE FUNCTION pg_visibility_map(regclass, blkno OUT bigint,
function pg_visibility (line 32) | CREATE FUNCTION pg_visibility(regclass, blkno OUT bigint,
function pg_visibility_map_summary (line 41) | CREATE FUNCTION pg_visibility_map_summary(regclass,
function pg_check_frozen (line 49) | CREATE FUNCTION pg_check_frozen(regclass, t_ctid OUT tid)
function pg_check_visible (line 55) | CREATE FUNCTION pg_check_visible(regclass, t_ctid OUT tid)
function pg_truncate_visibility_map (line 61) | CREATE FUNCTION pg_truncate_visibility_map(regclass)
FILE: contrib/pg_visibility/pg_visibility.c
type vbits (line 26) | typedef struct vbits
type corrupt_items (line 33) | typedef struct corrupt_items
function Datum (line 65) | Datum
function Datum (line 105) | Datum
function Datum (line 163) | Datum
function Datum (line 208) | Datum
function Datum (line 254) | Datum
function Datum (line 312) | Datum
function Datum (line 344) | Datum
function Datum (line 379) | Datum
function TupleDesc (line 439) | static TupleDesc
function vbits (line 468) | static vbits *
function corrupt_items (line 546) | static corrupt_items *
function record_corrupt_item (line 723) | static void
function tuple_all_visible (line 741) | static bool
function check_relation_relkind (line 769) | static void
FILE: contrib/pg_visibility/sql/pg_visibility.sql
type test_partitioned (line 8) | create table test_partitioned (a int) partition by list (a)
type test_index (line 17) | create index test_index on test_partition (a)
type test_view (line 25) | create view test_view as select 1
type test_foreign_table (line 43) | create foreign table test_foreign_table () server dummy_server
type regular_table (line 52) | create table regular_table (a int)
FILE: contrib/pgcrypto/blf.c
function blowfish_encrypt (line 252) | static void
function blowfish_decrypt (line 286) | static void
function blowfish_encrypt_cbc (line 320) | void
function blowfish_decrypt_cbc (line 353) | void
function blowfish_encrypt_ecb (line 386) | void
function blowfish_decrypt_ecb (line 407) | void
function blowfish_setkey (line 428) | void
function blowfish_setiv (line 494) | void
FILE: contrib/pgcrypto/blf.h
type BlowfishContext (line 30) | typedef struct
FILE: contrib/pgcrypto/crypt-blowfish.c
type BF_word (line 52) | typedef unsigned int BF_word;
type BF_word_signed (line 53) | typedef signed int BF_word_signed;
type BF_word (line 58) | typedef BF_word BF_key[BF_N + 2];
type BF_ctx (line 60) | typedef struct
function BF_decode (line 371) | static int
function BF_encode (line 403) | static void
function BF_swap (line 440) | static void
function BF_set_key (line 548) | static void
FILE: contrib/pgcrypto/crypt-des.c
function ascii_to_bin (line 202) | static inline int
function des_init (line 220) | static void
function setup_salt (line 372) | static void
function des_setkey (line 395) | static int
function do_des (line 482) | static int
function des_cipher (line 616) | static int
FILE: contrib/pgcrypto/crypt-gensalt.c
type BF_word (line 19) | typedef unsigned int BF_word;
function BF_encode (line 123) | static void
FILE: contrib/pgcrypto/crypt-md5.c
function _crypt_to64 (line 19) | static void
FILE: contrib/pgcrypto/imath.c
function mp_size (line 318) | mp_size
function mp_set_default_precision (line 328) | void
function mp_size (line 340) | mp_size
function mp_set_multiply_threshold (line 350) | void
function mp_result (line 360) | mp_result
function mp_int (line 370) | mp_int
function mp_result (line 388) | mp_result
function mp_result (line 411) | mp_result
function mp_result (line 437) | mp_result
function mp_result (line 454) | mp_result
function mp_int_clear (line 477) | void
function mp_int_free (line 494) | void
function mp_result (line 509) | mp_result
function mp_int_swap (line 538) | void
function mp_int_zero (line 554) | void
function mp_result (line 568) | mp_result
function mp_result (line 586) | mp_result
function mp_result (line 606) | mp_result
function mp_result (line 683) | mp_result
function mp_result (line 698) | mp_result
function mp_result (line 778) | mp_result
function mp_result (line 793) | mp_result
function mp_result (line 866) | mp_result
function mp_result (line 881) | mp_result
function mp_result (line 901) | mp_result
function mp_result (line 954) | mp_result
function mp_result (line 1079) | mp_result
function mp_result (line 1118) | mp_result
function mp_result (line 1145) | mp_result
function mp_result (line 1165) | mp_result
function mp_result (line 1203) | mp_result
function mp_int_compare (line 1241) | int
function mp_int_compare_unsigned (line 1274) | int
function mp_int_compare_zero (line 1286) | int
function mp_int_compare_value (line 1303) | int
function mp_result (line 1332) | mp_result
function mp_result (line 1385) | mp_result
function mp_result (line 1400) | mp_result
function mp_result (line 1416) | mp_result
function mp_result (line 1465) | mp_result
function mp_result (line 1477) | mp_result
function mp_result (line 1532) | mp_result
function mp_result (line 1627) | mp_result
function mp_int_divisible_value (line 1777) | int
function mp_int_is_pow2 (line 1792) | int
function mp_result (line 1804) | mp_result
function mp_result (line 1861) | mp_result
function mp_result (line 1897) | mp_result
function mp_result (line 1965) | mp_result
function mp_result (line 1989) | mp_result
function mp_result (line 2000) | mp_result
function mp_result (line 2069) | mp_result
function mp_result (line 2099) | mp_result
function mp_result (line 2121) | mp_result
function mp_result (line 2166) | mp_result
function mp_result (line 2192) | mp_result
function mp_result (line 2206) | mp_result
function mp_result (line 2237) | mp_result
function mp_digit (line 2280) | static mp_digit *
function mp_digit (line 2294) | static mp_digit *
function s_free (line 2309) | static void
function s_pad (line 2320) | static int
function s_clamp (line 2343) | static void
function s_fake (line 2360) | static void
function s_cdig (line 2375) | static int
function s_vpack (line 2396) | static int
function s_ucmp (line 2421) | static int
function s_vcmp (line 2439) | static int
function mp_digit (line 2460) | static mp_digit
function s_usub (line 2499) | static void
function s_kmul (line 2537) | static int
function s_umul (line 2640) | static void
function s_ksqr (line 2673) | static int
function s_usqr (line 2738) | static void
function s_dadd (line 2804) | static void
function s_dmul (line 2834) | static void
function s_dbmul (line 2860) | static void
function mp_digit (line 2882) | static mp_digit
function s_qdiv (line 2915) | static void
function s_qmod (line 2972) | static void
function s_qmul (line 2992) | static int
function s_qsub (line 3074) | static int
function s_dp2k (line 3109) | static int
function s_isp2 (line 3139) | static int
function s_2expt (line 3171) | static int
function s_norm (line 3196) | static int
function mp_result (line 3222) | static mp_result
function s_reduce (line 3238) | static int
function mp_result (line 3294) | static mp_result
function mp_result (line 3395) | static mp_result
function s_outlen (line 3505) | static int
function mp_size (line 3521) | static mp_size
function s_ch2val (line 3534) | static int
function s_val2ch (line 3553) | static char
function s_2comp (line 3575) | static void
function mp_result (line 3599) | static mp_result
function s_print (line 3653) | void
function s_print_buf (line 3668) | void
FILE: contrib/pgcrypto/imath.h
type mp_sign (line 39) | typedef unsigned char mp_sign;
type mp_size (line 40) | typedef unsigned int mp_size;
type mp_result (line 41) | typedef int mp_result;
type uint32 (line 44) | typedef uint32 mp_digit;
type uint64 (line 45) | typedef uint64 mp_word;
type uint16 (line 50) | typedef uint16 mp_digit;
type uint32 (line 51) | typedef uint32 mp_word;
type mpz_t (line 57) | typedef struct mpz
FILE: contrib/pgcrypto/internal-sha2.c
function int_sha224_len (line 46) | static unsigned
function int_sha224_block_len (line 52) | static unsigned
function int_sha224_update (line 58) | static void
function int_sha224_reset (line 66) | static void
function int_sha224_finish (line 74) | static void
function int_sha224_free (line 82) | static void
function int_sha256_len (line 94) | static unsigned
function int_sha256_block_len (line 100) | static unsigned
function int_sha256_update (line 106) | static void
function int_sha256_reset (line 114) | static void
function int_sha256_finish (line 122) | static void
function int_sha256_free (line 130) | static void
function int_sha384_len (line 142) | static unsigned
function int_sha384_block_len (line 148) | static unsigned
function int_sha384_update (line 154) | static void
function int_sha384_reset (line 162) | static void
function int_sha384_finish (line 170) | static void
function int_sha384_free (line 178) | static void
function int_sha512_len (line 190) | static unsigned
function int_sha512_block_len (line 196) | static unsigned
function int_sha512_update (line 202) | static void
function int_sha512_reset (line 210) | static void
function int_sha512_finish (line 218) | static void
function int_sha512_free (line 226) | static void
function init_sha224 (line 238) | void
function init_sha256 (line 258) | void
function init_sha384 (line 278) | void
function init_sha512 (line 298) | void
FILE: contrib/pgcrypto/internal.c
type int_digest (line 84) | struct int_digest
type int_digest (line 90) | struct int_digest
function int_md5_len (line 103) | static unsigned
function int_md5_block_len (line 109) | static unsigned
function int_md5_update (line 115) | static void
function int_md5_reset (line 123) | static void
function int_md5_finish (line 131) | static void
function int_md5_free (line 139) | static void
function int_sha1_len (line 151) | static unsigned
function int_sha1_block_len (line 157) | static unsigned
function int_sha1_update (line 163) | static void
function int_sha1_reset (line 171) | static void
function int_sha1_finish (line 179) | static void
function int_sha1_free (line 187) | static void
function init_md5 (line 199) | static void
function init_sha1 (line 219) | static void
type int_ctx (line 246) | struct int_ctx
function intctx_free (line 260) | static void
function rj_block_size (line 280) | static unsigned
function rj_key_size (line 286) | static unsigned
function rj_iv_size (line 292) | static unsigned
function rj_init (line 298) | static int
function rj_real_init (line 320) | static int
function rj_encrypt (line 327) | static int
function rj_decrypt (line 357) | static int
function PX_Cipher (line 389) | static PX_Cipher *
function bf_block_size (line 418) | static unsigned
function bf_key_size (line 424) | static unsigned
function bf_iv_size (line 430) | static unsigned
function bf_init (line 436) | static int
function bf_encrypt (line 448) | static int
function bf_decrypt (line 473) | static int
function PX_Cipher (line 498) | static PX_Cipher *
function PX_Cipher (line 524) | static PX_Cipher *
function PX_Cipher (line 530) | static PX_Cipher *
function PX_Cipher (line 536) | static PX_Cipher *
function PX_Cipher (line 542) | static PX_Cipher *
type int_cipher (line 548) | struct int_cipher
type int_cipher (line 554) | struct int_cipher
function px_find_digest (line 577) | int
function px_find_cipher (line 596) | int
FILE: contrib/pgcrypto/mbuf.c
type MBuf (line 39) | struct MBuf
function mbuf_avail (line 49) | int
function mbuf_size (line 55) | int
function mbuf_tell (line 61) | int
function mbuf_free (line 67) | int
function prepare_room (line 79) | static void
function mbuf_append (line 101) | int
function MBuf (line 118) | MBuf *
function MBuf (line 138) | MBuf *
function mbuf_grab (line 156) | int
function mbuf_rewind (line 169) | int
function mbuf_steal_data (line 176) | int
type PullFilter (line 195) | struct PullFilter
function pullf_create (line 205) | int
function pullf_free (line 244) | void
function pullf_read (line 261) | int
function pullf_read_max (line 278) | int
function pullf_read_fixed (line 316) | int
function pull_from_mbuf (line 338) | static int
type PullFilterOps (line 347) | struct PullFilterOps
function pullf_create_mbuf_reader (line 351) | int
type PushFilter (line 362) | struct PushFilter
function pushf_create (line 372) | int
function pushf_free (line 411) | void
function pushf_free_all (line 427) | void
function wrap_process (line 440) | static int
function pushf_write (line 455) | int
function pushf_flush (line 515) | int
function push_into_mbuf (line 545) | static int
type PushFilterOps (line 556) | struct PushFilterOps
function pushf_create_mbuf_writer (line 560) | int
FILE: contrib/pgcrypto/mbuf.h
type MBuf (line 35) | typedef struct MBuf MBuf;
type PushFilter (line 36) | typedef struct PushFilter PushFilter;
type PullFilter (line 37) | typedef struct PullFilter PullFilter;
type PushFilterOps (line 38) | typedef struct PushFilterOps PushFilterOps;
type PullFilterOps (line 39) | typedef struct PullFilterOps PullFilterOps;
type PushFilterOps (line 41) | struct PushFilterOps
type PullFilterOps (line 59) | struct PullFilterOps
FILE: contrib/pgcrypto/md5.c
function md5_init (line 137) | void
function md5_loop (line 149) | void
function md5_pad (line 176) | void
function md5_result (line 214) | void
function md5_calc (line 244) | static void
FILE: contrib/pgcrypto/md5.h
type md5_ctxt (line 38) | typedef struct
FILE: contrib/pgcrypto/openssl.c
type OSSLDigest (line 58) | typedef struct OSSLDigest
function free_openssl_digest (line 71) | static void
function digest_free_callback (line 87) | static void
function digest_result_size (line 114) | static unsigned
function digest_block_size (line 122) | static unsigned
function digest_reset (line 130) | static void
function digest_update (line 138) | static void
function digest_finish (line 146) | static void
function digest_free (line 154) | static void
function px_find_digest (line 167) | int
type EVP_CIPHER (line 241) | typedef const EVP_CIPHER *(*ossl_EVP_cipher_func) (void);
type ossl_cipher (line 246) | struct ossl_cipher
type OSSLCipher (line 262) | typedef struct OSSLCipher
function free_openssl_cipher (line 280) | static void
function cipher_free_callback (line 296) | static void
function gen_ossl_block_size (line 325) | static unsigned
function gen_ossl_key_size (line 333) | static unsigned
function gen_ossl_iv_size (line 341) | static unsigned
function gen_ossl_free (line 351) | static void
function gen_ossl_decrypt (line 360) | static int
function gen_ossl_encrypt (line 384) | static int
function bf_check_supported_key_len (line 415) | static int
function bf_init (line 458) | static int
function ossl_des_init (line 490) | static int
function ossl_des3_init (line 509) | static int
function ossl_cast_init (line 528) | static int
function ossl_aes_init (line 546) | static int
function ossl_aes_ecb_init (line 571) | static int
function ossl_aes_cbc_init (line 601) | static int
type ossl_cipher (line 653) | struct ossl_cipher
type ossl_cipher (line 659) | struct ossl_cipher
type ossl_cipher (line 665) | struct ossl_cipher
type ossl_cipher (line 671) | struct ossl_cipher
type ossl_cipher (line 677) | struct ossl_cipher
type ossl_cipher (line 683) | struct ossl_cipher
type ossl_cipher (line 689) | struct ossl_cipher
type ossl_cipher (line 695) | struct ossl_cipher
type ossl_cipher (line 701) | struct ossl_cipher
type ossl_cipher (line 707) | struct ossl_cipher
type ossl_cipher (line 714) | struct ossl_cipher
type ossl_cipher_lookup (line 724) | struct ossl_cipher_lookup
type ossl_cipher_lookup (line 730) | struct ossl_cipher_lookup
function px_find_cipher (line 747) | int
FILE: contrib/pgcrypto/pgcrypto--1.0--1.1.sql
function gen_random_uuid (line 6) | CREATE FUNCTION gen_random_uuid()
FILE: contrib/pgcrypto/pgcrypto--1.1--1.2.sql
function armor (line 6) | CREATE FUNCTION armor(bytea, text[], text[])
function pgp_armor_headers (line 11) | CREATE FUNCTION pgp_armor_headers(text, key OUT text, value OUT text)
FILE: contrib/pgcrypto/pgcrypto--1.3.sql
function digest (line 6) | CREATE FUNCTION digest(text, text)
function digest (line 11) | CREATE FUNCTION digest(bytea, text)
function hmac (line 16) | CREATE FUNCTION hmac(text, text, text)
function hmac (line 21) | CREATE FUNCTION hmac(bytea, bytea, text)
function crypt (line 26) | CREATE FUNCTION crypt(text, text)
function gen_salt (line 31) | CREATE FUNCTION gen_salt(text)
function gen_salt (line 36) | CREATE FUNCTION gen_salt(text, int4)
function encrypt (line 41) | CREATE FUNCTION encrypt(bytea, bytea, text)
function decrypt (line 46) | CREATE FUNCTION decrypt(bytea, bytea, text)
function encrypt_iv (line 51) | CREATE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
function decrypt_iv (line 56) | CREATE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
function gen_random_bytes (line 61) | CREATE FUNCTION gen_random_bytes(int4)
function gen_random_uuid (line 66) | CREATE FUNCTION gen_random_uuid()
function pgp_sym_encrypt (line 74) | CREATE FUNCTION pgp_sym_encrypt(text, text)
function pgp_sym_encrypt_bytea (line 79) | CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text)
function pgp_sym_encrypt (line 87) | CREATE FUNCTION pgp_sym_encrypt(text, text, text)
function pgp_sym_encrypt_bytea (line 92) | CREATE FUNCTION pgp_sym_encrypt_bytea(bytea, text, text)
function pgp_sym_decrypt (line 100) | CREATE FUNCTION pgp_sym_decrypt(bytea, text)
function pgp_sym_decrypt_bytea (line 105) | CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text)
function pgp_sym_decrypt (line 113) | CREATE FUNCTION pgp_sym_decrypt(bytea, text, text)
function pgp_sym_decrypt_bytea (line 118) | CREATE FUNCTION pgp_sym_decrypt_bytea(bytea, text, text)
function pgp_pub_encrypt (line 126) | CREATE FUNCTION pgp_pub_encrypt(text, bytea)
function pgp_pub_encrypt_bytea (line 131) | CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea)
function pgp_pub_encrypt (line 139) | CREATE FUNCTION pgp_pub_encrypt(text, bytea, text)
function pgp_pub_encrypt_bytea (line 144) | CREATE FUNCTION pgp_pub_encrypt_bytea(bytea, bytea, text)
function pgp_pub_decrypt (line 152) | CREATE FUNCTION pgp_pub_decrypt(bytea, bytea)
function pgp_pub_decrypt_bytea (line 157) | CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea)
function pgp_pub_decrypt (line 165) | CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text)
function pgp_pub_decrypt_bytea (line 170) | CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text)
function pgp_pub_decrypt (line 178) | CREATE FUNCTION pgp_pub_decrypt(bytea, bytea, text, text)
function pgp_pub_decrypt_bytea (line 183) | CREATE FUNCTION pgp_pub_decrypt_bytea(bytea, bytea, text, text)
function pgp_key_id (line 191) | CREATE FUNCTION pgp_key_id(bytea)
function armor (line 199) | CREATE FUNCTION armor(bytea)
function armor (line 204) | CREATE FUNCTION armor(bytea, text[], text[])
function dearmor (line 209) | CREATE FUNCTION dearmor(text)
function pgp_armor_headers (line 214) | CREATE FUNCTION pgp_armor_headers(text, key OUT text, value OUT text)
FILE: contrib/pgcrypto/pgcrypto.c
function Datum (line 55) | Datum
function Datum (line 91) | Datum
function Datum (line 134) | Datum
function Datum (line 156) | Datum
function Datum (line 179) | Datum
function Datum (line 218) | Datum
function Datum (line 267) | Datum
function Datum (line 315) | Datum
function Datum (line 369) | Datum
function Datum (line 423) | Datum
function Datum (line 451) | Datum
FILE: contrib/pgcrypto/pgp-armor.c
function pg_base64_encode (line 44) | static int
function pg_base64_decode (line 94) | static int
function pg_base64_enc_len (line 162) | static unsigned
function pg_base64_dec_len (line 171) | static unsigned
function crc24 (line 187) | static long
function pgp_armor_encode (line 206) | void
function uint8 (line 242) | static const uint8 *
function find_header (line 265) | static int
function pgp_armor_decode (line 313) | int
function pgp_extract_armor_headers (line 389) | int
FILE: contrib/pgcrypto/pgp-cfb.c
type PGP_CFB (line 39) | struct PGP_CFB
function pgp_cfb_create (line 51) | int
function pgp_cfb_free (line 83) | void
function mix_encrypt_normal (line 94) | static int
function mix_decrypt_normal (line 105) | static int
function mix_encrypt_resync (line 125) | static int
function mix_decrypt_resync (line 157) | static int
function cfb_process (line 197) | static int
function pgp_cfb_encrypt (line 250) | int
function pgp_cfb_decrypt (line 258) | int
FILE: contrib/pgcrypto/pgp-compress.c
type ZipStat (line 49) | struct ZipStat
function z_free (line 64) | static void
function compress_init (line 70) | static int
function compress_process (line 108) | static int
function compress_flush (line 141) | static int
function compress_free (line 171) | static void
function pgp_compress_filter (line 186) | int
type DecomprData (line 195) | struct DecomprData
function decompress_init (line 205) | static int
function decompress_read (line 238) | static int
function decompress_free (line 294) | static void
function pgp_decompress_filter (line 309) | int
function pgp_compress_filter (line 316) | int
function pgp_decompress_filter (line 322) | int
FILE: contrib/pgcrypto/pgp-decrypt.c
function parse_new_len (line 51) | static int
function parse_old_len (line 94) | static int
function pgp_parse_pkt_hdr (line 128) | int
type PktData (line 168) | struct PktData
function pktreader_pull (line 174) | static int
function pktreader_free (line 208) | static void
type PullFilterOps (line 217) | struct PullFilterOps
function pgp_create_pkt_reader (line 222) | int
function prefix_init (line 243) | static int
type PullFilterOps (line 276) | struct PullFilterOps
function decrypt_init (line 285) | static int
function decrypt_read (line 296) | static int
type PullFilterOps (line 313) | struct PullFilterOps
function mdc_init (line 322) | static int
function mdc_free (line 331) | static void
function mdc_finish (line 342) | static int
function mdc_read (line 394) | static int
type PullFilterOps (line 418) | struct PullFilterOps
type MDCBufData (line 432) | struct MDCBufData
function mdcbuf_init (line 444) | static int
function mdcbuf_finish (line 462) | static int
function mdcbuf_load_data (line 487) | static void
function mdcbuf_load_mdc (line 497) | static void
function mdcbuf_refill (line 504) | static int
function mdcbuf_read (line 548) | static int
function mdcbuf_free (line 571) | static void
type PullFilterOps (line 582) | struct PullFilterOps
function decrypt_key (line 590) | static int
function parse_symenc_sesskey (line 623) | static int
function copy_crlf (line 693) | static int
function parse_literal_data (line 743) | static int
function parse_compressed_data (line 817) | static int
function process_data_packets (line 871) | static int
function parse_symenc_data (line 974) | static int
function parse_symenc_mdc_data (line 1008) | static int
function pgp_skip_packet (line 1060) | int
function pgp_expect_packet_end (line 1074) | int
function pgp_decrypt (line 1089) | int
FILE: contrib/pgcrypto/pgp-encrypt.c
function uint8 (line 47) | static uint8 *
function write_tag_only (line 70) | static int
function write_normal_header (line 78) | static int
function mdc_init (line 94) | static int
function mdc_write (line 108) | static int
function mdc_flush (line 117) | static int
function mdc_free (line 137) | static void
type EncStat (line 154) | struct EncStat
function encrypt_init (line 160) | static int
function encrypt_process (line 192) | static int
function encrypt_free (line 217) | static void
type PktStreamStat (line 236) | struct PktStreamStat
function pkt_stream_init (line 242) | static int
function pkt_stream_process (line 255) | static int
function pkt_stream_flush (line 281) | static int
function pkt_stream_free (line 301) | static void
function pgp_create_pkt_writer (line 314) | int
function crlf_process (line 330) | static int
function init_litdata_packet (line 377) | static int
function init_compress (line 432) | static int
function init_encdata_packet (line 460) | static int
function write_prefix (line 481) | static int
function symencrypt_sesskey (line 508) | static int
function write_symenc_sesskey (line 528) | static int
function init_s2k_key (line 569) | static int
function init_sess_key (line 585) | static int
function pgp_encrypt (line 610) | int
FILE: contrib/pgcrypto/pgp-info.c
function read_pubkey_keyid (line 37) | static int
function read_pubenc_keyid (line 70) | static int
function print_key (line 89) | static int
function pgp_get_keyid (line 111) | int
FILE: contrib/pgcrypto/pgp-mpi-internal.c
function mpz_t (line 38) | static mpz_t *
function mp_clear_free (line 47) | static void
function mp_px_rand (line 57) | static int
function mp_modmul (line 91) | static void
function mpz_t (line 101) | static mpz_t *
function PGP_MPI (line 120) | static PGP_MPI *
function decide_k_bits (line 158) | static int
function pgp_elgamal_encrypt (line 167) | int
function pgp_elgamal_decrypt (line 217) | int
function pgp_rsa_encrypt (line 255) | int
function pgp_rsa_decrypt (line 283) | int
FILE: contrib/pgcrypto/pgp-mpi-openssl.c
function BIGNUM (line 38) | static BIGNUM *
function PGP_MPI (line 55) | static PGP_MPI *
function decide_k_bits (line 91) | static int
function pgp_elgamal_encrypt (line 100) | int
function pgp_elgamal_decrypt (line 163) | int
function pgp_rsa_encrypt (line 214) | int
function pgp_rsa_decrypt (line 250) | int
FILE: contrib/pgcrypto/pgp-mpi.c
function pgp_mpi_alloc (line 36) | int
function pgp_mpi_create (line 55) | int
function pgp_mpi_free (line 69) | int
function pgp_mpi_read (line 79) | int
function pgp_mpi_write (line 104) | int
function pgp_mpi_hash (line 118) | int
function pgp_mpi_cksum (line 131) | unsigned
FILE: contrib/pgcrypto/pgp-pgsql.c
function text (line 67) | static text *
function text (line 84) | static text *
function text (line 90) | static text *
function string_is_ascii (line 96) | static bool
function clear_and_pfree (line 109) | static void
type debug_expect (line 119) | struct debug_expect
function fill_expect (line 134) | static void
function check_expect (line 159) | static void
function show_debug (line 174) | static void
function set_arg (line 180) | static int
function parse_args (line 318) | static int
function MBuf (line 356) | static MBuf *
function init_work (line 363) | static void
function bytea (line 384) | static bytea *
function bytea (line 470) | static bytea *
function Datum (line 566) | Datum
function Datum (line 588) | Datum
function Datum (line 611) | Datum
function Datum (line 633) | Datum
function Datum (line 659) | Datum
function Datum (line 681) | Datum
function Datum (line 704) | Datum
function Datum (line 731) | Datum
function parse_key_value_arrays (line 767) | static int
function Datum (line 857) | Datum
function Datum (line 895) | Datum
type pgp_armor_headers_state (line 922) | typedef struct
function Datum (line 929) | Datum
function Datum (line 999) | Datum
FILE: contrib/pgcrypto/pgp-pubdec.c
function uint8 (line 41) | static uint8 *
function control_cksum (line 73) | static int
function decrypt_elgamal (line 96) | static int
function decrypt_rsa (line 123) | static int
function pgp_parse_pubenc_sesskey (line 149) | int
FILE: contrib/pgcrypto/pgp-pubenc.c
function pad_eme_pkcs1_v15 (line 39) | static int
function create_secmsg (line 87) | static int
function encrypt_and_write_elgamal (line 137) | static int
function encrypt_and_write_rsa (line 168) | static int
function pgp_write_pubenc_sesskey (line 194) | int
FILE: contrib/pgcrypto/pgp-pubkey.c
function pgp_key_alloc (line 37) | int
function pgp_key_free (line 48) | void
function calc_key_id (line 84) | static int
function _pgp_read_public_key (line 158) | int
function check_key_sha1 (line 253) | static int
function check_key_cksum (line 299) | static int
function process_secret_key (line 337) | static int
function internal_read_key (line 458) | static int
function pgp_set_pubkey (line 565) | int
FILE: contrib/pgcrypto/pgp-s2k.c
function calc_s2k_simple (line 39) | static int
function calc_s2k_salted (line 83) | static int
function calc_s2k_iter_salted (line 127) | static int
function uint8 (line 210) | static uint8
function pgp_s2k_fill (line 224) | int
function pgp_s2k_read (line 254) | int
function pgp_s2k_process (line 280) | int
FILE: contrib/pgcrypto/pgp.c
type digest_info (line 53) | struct digest_info
type cipher_info (line 60) | struct cipher_info
type digest_info (line 69) | struct digest_info
type cipher_info (line 80) | struct cipher_info
type cipher_info (line 93) | struct cipher_info
type cipher_info (line 96) | struct cipher_info
function pgp_get_digest_code (line 104) | int
function pgp_get_cipher_code (line 115) | int
type digest_info (line 129) | struct digest_info
type cipher_info (line 140) | struct cipher_info
function pgp_get_cipher_key_size (line 147) | int
function pgp_get_cipher_block_size (line 157) | int
function pgp_load_cipher (line 167) | int
function pgp_load_digest (line 183) | int
function pgp_init (line 199) | int
function pgp_free (line 224) | int
function pgp_disable_mdc (line 234) | int
function pgp_set_sess_key (line 241) | int
function pgp_set_convert_crlf (line 248) | int
function pgp_set_s2k_mode (line 255) | int
function pgp_set_s2k_count (line 274) | int
function pgp_set_compress_algo (line 285) | int
function pgp_set_compress_level (line 300) | int
function pgp_set_text_mode (line 311) | int
function pgp_set_cipher_algo (line 318) | int
function pgp_set_s2k_cipher_algo (line 329) | int
function pgp_set_s2k_digest_algo (line 340) | int
function pgp_get_unicode_mode (line 351) | int
function pgp_set_unicode_mode (line 357) | int
function pgp_set_symkey (line 364) | int
FILE: contrib/pgcrypto/pgp.h
type PGP_S2K_TYPE (line 37) | enum PGP_S2K_TYPE
type PGP_PKT_TYPE (line 44) | enum PGP_PKT_TYPE
type PGP_PUB_ALGO_TYPE (line 66) | enum PGP_PUB_ALGO_TYPE
type PGP_SYMENC_TYPE (line 75) | enum PGP_SYMENC_TYPE
type PGP_COMPR_TYPE (line 90) | enum PGP_COMPR_TYPE
type PGP_DIGEST_TYPE (line 98) | enum PGP_DIGEST_TYPE
type PGP_MPI (line 117) | typedef struct PGP_MPI PGP_MPI;
type PGP_PubKey (line 118) | typedef struct PGP_PubKey PGP_PubKey;
type PGP_Context (line 119) | typedef struct PGP_Context PGP_Context;
type PGP_S2K (line 120) | typedef struct PGP_S2K PGP_S2K;
type PGP_S2K (line 122) | struct PGP_S2K
type PGP_Context (line 134) | struct PGP_Context
type PGP_MPI (line 179) | struct PGP_MPI
type PGP_PubKey (line 186) | struct PGP_PubKey
type PGP_CFB (line 280) | typedef struct PGP_CFB PGP_CFB;
type PullFilterOps (line 327) | struct PullFilterOps
FILE: contrib/pgcrypto/px-crypt.c
type px_crypt_algo (line 72) | struct px_crypt_algo
Copy disabled (too large)
Download .json
Condensed preview — 5549 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (101,299K chars).
[
{
"path": ".github/FUNDING.yml",
"chars": 657,
"preview": "# These are supported funding model platforms\n\ngithub: david.zhao.cn@gmail.com\npatreon: # Replace with a single Patreon "
},
{
"path": ".gitignore",
"chars": 930,
"preview": "# Global excludes across all subdirectories\n*.o\n*.obj\n*.bc\n*.so\n*.so.[0-9]\n*.so.[0-9].[0-9]\n*.so.[0-9].[0-9][0-9]\n*.sl\n*"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5223,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participa"
},
{
"path": "COPYRIGHT",
"chars": 1192,
"preview": "PostgreSQL Database Management System\n(formerly known as Postgres, then as Postgres95)\n\nPortions Copyright (c) 1996-2019"
},
{
"path": "Commons_Clause_License",
"chars": 991,
"preview": "“Commons Clause” License Condition v1.0\n\nThe Software is provided to you by the Licensor under the License, as defined b"
},
{
"path": "GNUmakefile.in",
"chars": 3886,
"preview": "#\n# PostgreSQL top level makefile\n#\n# GNUmakefile.in\n#\n\nsubdir =\ntop_builddir = .\ninclude $(top_builddir)/src/Makefile.g"
},
{
"path": "HISTORY",
"chars": 284,
"preview": "Release notes for all versions of PostgreSQL can be found on-line at\nhttps://www.postgresql.org/docs/current/static/rele"
},
{
"path": "INSTALL.PostgreSQL",
"chars": 74623,
"preview": "To build computing node program from source, use build.sh directly or refer to it for instructions.\nTo build kunlun-stor"
},
{
"path": "INSTALL.kunlun.md",
"chars": 12759,
"preview": "# Installation Guides for Kunlun Distributed Database Cluster\n\nThis document helps users to install KunlunBase clusters."
},
{
"path": "LICENSE",
"chars": 11357,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "Makefile",
"chars": 1665,
"preview": "# The PostgreSQL make files exploit features of GNU make that other\n# makes do not have. Because it is a common mistake "
},
{
"path": "NOTICE",
"chars": 289,
"preview": "This source code is licensed under both the Apache 2.0 License as detailed in the\nLICENSE file, and combined with Common"
},
{
"path": "README.PostgreSQL",
"chars": 1772,
"preview": "See README to know about Kunlun distributed DBMS.\n\nSee ReleaseNotes.txt for the list of features released in each releas"
},
{
"path": "README.md",
"chars": 21585,
"preview": "# KunlunBase Introduction\n\n## Directions\n\nFor more information and resources of KunlunBase, such as software, documentat"
},
{
"path": "README_CN.md",
"chars": 6066,
"preview": "# KunlunBase(昆仑分布式数据库)简介\n\n昆仑分布式数据库集群(下文简称KunlunBase)是一个分布式关系数据库管理系统,面向TB和PB级别海量数据处理,帮助用户高吞吐量和低延时处理海量数据高并发读写请求。它提供健壮的事务AC"
},
{
"path": "ReleaseNotes.md",
"chars": 15630,
"preview": "# Introduction\nFor more information, resources, documentation of Kunlun distributed RDBMS, please visit www.kunlunbase.c"
},
{
"path": "aclocal.m4",
"chars": 522,
"preview": "dnl aclocal.m4\nm4_include([config/ac_func_accept_argtypes.m4])\nm4_include([config/ax_prog_perl_modules.m4])\nm4_include(["
},
{
"path": "build.sh",
"chars": 1994,
"preview": "#! /bin/bash\n# configure and build Kunlun computing node program.\n# If you don't need to configure it, simply do make in"
},
{
"path": "config/Makefile",
"chars": 441,
"preview": "# config/Makefile\n\nsubdir = config\ntop_builddir = ..\ninclude $(top_builddir)/src/Makefile.global\n\n\ninstall: all installd"
},
{
"path": "config/ac_func_accept_argtypes.m4",
"chars": 3418,
"preview": "# config/ac_func_accept_argtypes.m4\n# This comes from the official Autoconf macro archive at\n# <http://research.cys.de/a"
},
{
"path": "config/ax_prog_perl_modules.m4",
"chars": 2252,
"preview": "# ===========================================================================\n# https://www.gnu.org/software/autoconf-"
},
{
"path": "config/ax_pthread.m4",
"chars": 15900,
"preview": "# ===========================================================================\n# http://www.gnu.org/software/autoc"
},
{
"path": "config/c-compiler.m4",
"chars": 25535,
"preview": "# Macros to detect C compiler features\n# config/c-compiler.m4\n\n\n# PGAC_C_SIGNED\n# -------------\n# Check if the C compile"
},
{
"path": "config/c-library.m4",
"chars": 9823,
"preview": "# Macros that test various C library quirks\n# config/c-library.m4\n\n\n# PGAC_VAR_INT_TIMEZONE\n# ---------------------\n# Ch"
},
{
"path": "config/check_decls.m4",
"chars": 4969,
"preview": "# config/check_decls.m4\n\n# This file redefines the standard Autoconf macro _AC_CHECK_DECL_BODY,\n# and adds a supporting "
},
{
"path": "config/config.guess",
"chars": 49446,
"preview": "#! /bin/sh\n# Attempt to guess a canonical system name.\n# Copyright 1992-2021 Free Software Foundation, Inc.\n\ntimestamp"
},
{
"path": "config/config.sub",
"chars": 35753,
"preview": "#! /bin/sh\n# Configuration validation subroutine script.\n# Copyright 1992-2018 Free Software Foundation, Inc.\n\ntimesta"
},
{
"path": "config/docbook.m4",
"chars": 906,
"preview": "# config/docbook.m4\n\n# PGAC_PATH_XMLLINT\n# -----------------\nAC_DEFUN([PGAC_PATH_XMLLINT],\n[PGAC_PATH_PROGS(XMLLINT, xml"
},
{
"path": "config/general.m4",
"chars": 5281,
"preview": "# config/general.m4\n\n# This file defines new macros to process configure command line\n# arguments, to replace the brain-"
},
{
"path": "config/install-sh",
"chars": 13997,
"preview": "#!/bin/sh\n# install - install a program, script, or datafile\n\nscriptversion=2011-11-20.07; # UTC\n\n# This originates from"
},
{
"path": "config/libtool.m4",
"chars": 4214,
"preview": "## libtool.m4 - Configure libtool for the host system. -*-Shell-script-*-\n## Copyright (C) 1996-1999,2000 Free Software "
},
{
"path": "config/llvm.m4",
"chars": 4571,
"preview": "# config/llvm.m4\n\n# PGAC_LLVM_SUPPORT\n# -----------------\n#\n# Look for the LLVM installation, check that it's new enough"
},
{
"path": "config/missing",
"chars": 1348,
"preview": "#! /bin/sh\n\n# config/missing\n\n# This is *not* the GNU `missing' script, although it is similar in\n# concept. You can cal"
},
{
"path": "config/perl.m4",
"chars": 4753,
"preview": "# config/perl.m4\n\n\n# PGAC_PATH_PERL\n# --------------\nAC_DEFUN([PGAC_PATH_PERL],\n[PGAC_PATH_PROGS(PERL, perl)\n\nif test \"$"
},
{
"path": "config/pkg.m4",
"chars": 10245,
"preview": "# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-\n# serial 12 (pkg-config-0.29.2)\n\ndnl Copyright © "
},
{
"path": "config/prep_buildtree",
"chars": 1252,
"preview": "#! /bin/sh\n\n# This script prepares a PostgreSQL build tree. It is intended\n# to be run by the configure script.\n\nme=`ba"
},
{
"path": "config/programs.m4",
"chars": 9495,
"preview": "# config/programs.m4\n\n\n# PGAC_PATH_PROGS\n# ---------------\n# This wrapper for AC_PATH_PROGS behaves like that macro exce"
},
{
"path": "config/python.m4",
"chars": 7166,
"preview": "#\n# Autoconf macros for configuring the build of Python extension modules\n#\n# config/python.m4\n#\n\n# PGAC_PATH_PYTHON\n# -"
},
{
"path": "config/tcl.m4",
"chars": 3093,
"preview": "# config/tcl.m4\n\n# Autoconf macros to check for Tcl related things\n\n\nAC_DEFUN([PGAC_PATH_TCLSH],\n[PGAC_PATH_PROGS(TCLSH,"
},
{
"path": "configure",
"chars": 565882,
"preview": "#! /bin/sh\n# Guess values for system-dependent variables and create Makefiles.\n# Generated by GNU Autoconf 2.69 for Post"
},
{
"path": "configure.in",
"chars": 85193,
"preview": "dnl Process this file with autoconf to produce a configure script.\ndnl configure.in\ndnl\ndnl Developers, please strive to"
},
{
"path": "contrib/Makefile",
"chars": 1437,
"preview": "# contrib/Makefile\n\nsubdir = contrib\ntop_builddir = ..\ninclude $(top_builddir)/src/Makefile.global\n\nSUBDIRS = \\\n\t\tadminp"
},
{
"path": "contrib/README",
"chars": 1131,
"preview": "The PostgreSQL contrib tree\n---------------------------\n\nThis subtree contains porting tools, analysis utilities, and pl"
},
{
"path": "contrib/adminpack/.gitignore",
"chars": 55,
"preview": "# Generated subdirectories\n/log/\n/results/\n/tmp_check/\n"
},
{
"path": "contrib/adminpack/Makefile",
"chars": 533,
"preview": "# contrib/adminpack/Makefile\n\nMODULE_big = adminpack\nOBJS = adminpack.o $(WIN32RES)\nPG_CPPFLAGS = -I$(libpq_srcdir)\n\nEXT"
},
{
"path": "contrib/adminpack/adminpack--1.0--1.1.sql",
"chars": 274,
"preview": "/* contrib/adminpack/adminpack--1.0--1.1.sql */\n\n-- complain if script is sourced in psql, rather than via ALTER EXTENSI"
},
{
"path": "contrib/adminpack/adminpack--1.0.sql",
"chars": 1535,
"preview": "/* contrib/adminpack/adminpack--1.0.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENSION\n\\"
},
{
"path": "contrib/adminpack/adminpack--1.1--2.0.sql",
"chars": 1682,
"preview": "/* contrib/adminpack/adminpack--1.1--2.0.sql */\n\n-- complain if script is sourced in psql, rather than via ALTER EXTENSI"
},
{
"path": "contrib/adminpack/adminpack.c",
"chars": 13867,
"preview": "/*-------------------------------------------------------------------------\n *\n * adminpack.c\n *\n *\n * Copyright (c) 200"
},
{
"path": "contrib/adminpack/adminpack.control",
"chars": 176,
"preview": "# adminpack extension\ncomment = 'administrative functions for PostgreSQL'\ndefault_version = '2.0'\nmodule_pathname = '$li"
},
{
"path": "contrib/adminpack/expected/adminpack.out",
"chars": 3704,
"preview": "CREATE EXTENSION adminpack;\n-- create new file\nSELECT pg_file_write('test_file1', 'test1', false);\n pg_file_write \n-----"
},
{
"path": "contrib/adminpack/sql/adminpack.sql",
"chars": 2180,
"preview": "CREATE EXTENSION adminpack;\n\n-- create new file\nSELECT pg_file_write('test_file1', 'test1', false);\nSELECT pg_read_file("
},
{
"path": "contrib/amcheck/.gitignore",
"chars": 55,
"preview": "# Generated subdirectories\n/log/\n/results/\n/tmp_check/\n"
},
{
"path": "contrib/amcheck/Makefile",
"chars": 488,
"preview": "# contrib/amcheck/Makefile\n\nMODULE_big\t= amcheck\nOBJS\t\t= verify_nbtree.o $(WIN32RES)\n\nEXTENSION = amcheck\nDATA = amcheck"
},
{
"path": "contrib/amcheck/amcheck--1.0--1.1.sql",
"chars": 931,
"preview": "/* contrib/amcheck/amcheck--1.0--1.1.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENSION\n"
},
{
"path": "contrib/amcheck/amcheck--1.0.sql",
"chars": 704,
"preview": "/* contrib/amcheck/amcheck--1.0.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENSION\n\\echo"
},
{
"path": "contrib/amcheck/amcheck.control",
"chars": 154,
"preview": "# amcheck extension\ncomment = 'functions for verifying relation integrity'\ndefault_version = '1.1'\nmodule_pathname = '$l"
},
{
"path": "contrib/amcheck/expected/check.out",
"chars": 26,
"preview": "CREATE EXTENSION amcheck;\n"
},
{
"path": "contrib/amcheck/expected/check_btree.out",
"chars": 5783,
"preview": "CREATE TABLE bttest_a(id int8);\nCREATE TABLE bttest_b(id int8);\nCREATE TABLE bttest_multi(id int8, data int8);\nCREATE TA"
},
{
"path": "contrib/amcheck/sql/check.sql",
"chars": 26,
"preview": "CREATE EXTENSION amcheck;\n"
},
{
"path": "contrib/amcheck/sql/check_btree.sql",
"chars": 4439,
"preview": "CREATE TABLE bttest_a(id int8);\nCREATE TABLE bttest_b(id int8);\nCREATE TABLE bttest_multi(id int8, data int8);\nCREATE TA"
},
{
"path": "contrib/amcheck/verify_nbtree.c",
"chars": 79866,
"preview": "/*-------------------------------------------------------------------------\n *\n * verify_nbtree.c\n *\t\tVerifies the integ"
},
{
"path": "contrib/auth_delay/Makefile",
"chars": 360,
"preview": "# contrib/auth_delay/Makefile\n\nMODULES = auth_delay\nPGFILEDESC = \"auth_delay - delay authentication failure reports\"\n\nif"
},
{
"path": "contrib/auth_delay/auth_delay.c",
"chars": 1506,
"preview": "/* -------------------------------------------------------------------------\n *\n * auth_delay.c\n *\n * Copyright (c) 2010"
},
{
"path": "contrib/auto_explain/Makefile",
"chars": 405,
"preview": "# contrib/auto_explain/Makefile\n\nMODULE_big = auto_explain\nOBJS = auto_explain.o $(WIN32RES)\nPGFILEDESC = \"auto_explain "
},
{
"path": "contrib/auto_explain/auto_explain.c",
"chars": 9911,
"preview": "/*-------------------------------------------------------------------------\n *\n * auto_explain.c\n *\n *\n * Copyright (c) "
},
{
"path": "contrib/bloom/.gitignore",
"chars": 55,
"preview": "# Generated subdirectories\n/log/\n/results/\n/tmp_check/\n"
},
{
"path": "contrib/bloom/Makefile",
"chars": 528,
"preview": "# contrib/bloom/Makefile\n\nMODULE_big = bloom\nOBJS = blcost.o blinsert.o blscan.o blutils.o blvacuum.o blvalidate.o $(WIN"
},
{
"path": "contrib/bloom/blcost.c",
"chars": 1312,
"preview": "/*-------------------------------------------------------------------------\n *\n * blcost.c\n *\t\tCost estimate function fo"
},
{
"path": "contrib/bloom/blinsert.c",
"chars": 9900,
"preview": "/*-------------------------------------------------------------------------\n *\n * blinsert.c\n *\t\tBloom index build and i"
},
{
"path": "contrib/bloom/bloom--1.0.sql",
"chars": 666,
"preview": "/* contrib/bloom/bloom--1.0.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENSION\n\\echo Use"
},
{
"path": "contrib/bloom/bloom.control",
"chars": 156,
"preview": "# bloom extension\ncomment = 'bloom access method - signature file based index'\ndefault_version = '1.0'\nmodule_pathname ="
},
{
"path": "contrib/bloom/bloom.h",
"chars": 7058,
"preview": "/*-------------------------------------------------------------------------\n *\n * bloom.h\n *\t Header for bloom index.\n "
},
{
"path": "contrib/bloom/blscan.c",
"chars": 3615,
"preview": "/*-------------------------------------------------------------------------\n *\n * blscan.c\n *\t\tBloom index scan function"
},
{
"path": "contrib/bloom/blutils.c",
"chars": 13033,
"preview": "/*-------------------------------------------------------------------------\n *\n * blutils.c\n *\t\tBloom index utilities.\n "
},
{
"path": "contrib/bloom/blvacuum.c",
"chars": 5773,
"preview": "/*-------------------------------------------------------------------------\n *\n * blvacuum.c\n *\t\tBloom VACUUM functions."
},
{
"path": "contrib/bloom/blvalidate.c",
"chars": 6591,
"preview": "/*-------------------------------------------------------------------------\n *\n * blvalidate.c\n *\t Opclass validator fo"
},
{
"path": "contrib/bloom/expected/bloom.out",
"chars": 5228,
"preview": "CREATE EXTENSION bloom;\nCREATE TABLE tst (\n\ti\tint4,\n\tt\ttext\n);\nINSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) F"
},
{
"path": "contrib/bloom/sql/bloom.sql",
"chars": 2742,
"preview": "CREATE EXTENSION bloom;\n\nCREATE TABLE tst (\n\ti\tint4,\n\tt\ttext\n);\n\nINSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1)"
},
{
"path": "contrib/bloom/t/001_wal.pl",
"chars": 2635,
"preview": "# Test generic xlog record work for bloom index replication.\nuse strict;\nuse warnings;\nuse PostgresNode;\nuse TestLib;\nus"
},
{
"path": "contrib/btree_gin/.gitignore",
"chars": 55,
"preview": "# Generated subdirectories\n/log/\n/results/\n/tmp_check/\n"
},
{
"path": "contrib/btree_gin/Makefile",
"chars": 770,
"preview": "# contrib/btree_gin/Makefile\n\nMODULE_big = btree_gin\nOBJS = btree_gin.o $(WIN32RES)\n\nEXTENSION = btree_gin\nDATA = btree_"
},
{
"path": "contrib/btree_gin/btree_gin--1.0--1.1.sql",
"chars": 1372,
"preview": "/* contrib/btree_gin/btree_gin--1.0--1.1.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENS"
},
{
"path": "contrib/btree_gin/btree_gin--1.0.sql",
"chars": 24818,
"preview": "/* contrib/btree_gin/btree_gin--1.0.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENSION\n\\"
},
{
"path": "contrib/btree_gin/btree_gin--1.1--1.2.sql",
"chars": 1445,
"preview": "/* contrib/btree_gin/btree_gin--1.1--1.2.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENS"
},
{
"path": "contrib/btree_gin/btree_gin--1.2--1.3.sql",
"chars": 4571,
"preview": "/* contrib/btree_gin/btree_gin--1.2--1.3.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENS"
},
{
"path": "contrib/btree_gin/btree_gin--unpackaged--1.0.sql",
"chars": 10107,
"preview": "/* contrib/btree_gin/btree_gin--unpackaged--1.0.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE"
},
{
"path": "contrib/btree_gin/btree_gin.c",
"chars": 11642,
"preview": "/*\n * contrib/btree_gin/btree_gin.c\n */\n#include \"postgres.h\"\n\n#include <limits.h>\n\n#include \"access/stratnum.h\"\n#includ"
},
{
"path": "contrib/btree_gin/btree_gin.control",
"chars": 160,
"preview": "# btree_gin extension\ncomment = 'support for indexing common datatypes in GIN'\ndefault_version = '1.3'\nmodule_pathname ="
},
{
"path": "contrib/btree_gin/expected/bit.out",
"chars": 647,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_bit (\n\ti bit(3)\n);\nINSERT INTO test_bit VALUES ('001'),('010'),('011'),('100')"
},
{
"path": "contrib/btree_gin/expected/bool.out",
"chars": 2442,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_bool (\n\ti boolean\n);\nINSERT INTO test_bool VALUES (false),(true),(null);\nCREAT"
},
{
"path": "contrib/btree_gin/expected/bpchar.out",
"chars": 2808,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_bpchar (\n\ti char(10)\n);\nINSERT INTO test_bpchar VALUES ('a'),('ab'),('abc'),('"
},
{
"path": "contrib/btree_gin/expected/bytea.out",
"chars": 750,
"preview": "set enable_seqscan=off;\n-- ensure consistent test output regardless of the default bytea format\nSET bytea_output TO esca"
},
{
"path": "contrib/btree_gin/expected/char.out",
"chars": 567,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_char (\n\ti \"char\"\n);\nINSERT INTO test_char VALUES ('a'),('b'),('c'),('d'),('e')"
},
{
"path": "contrib/btree_gin/expected/cidr.out",
"chars": 873,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_cidr (\n\ti cidr\n);\nINSERT INTO test_cidr VALUES\n\t( '1.2.3.4' ),\n\t( '1.2.4.4' ),"
},
{
"path": "contrib/btree_gin/expected/date.out",
"chars": 906,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_date (\n\ti date\n);\nINSERT INTO test_date VALUES\n\t( '2004-10-23' ),\n\t( '2004-10-"
},
{
"path": "contrib/btree_gin/expected/enum.out",
"chars": 1298,
"preview": "set enable_seqscan=off;\nCREATE TYPE rainbow AS ENUM ('r','o','y','g','b','i','v');\nCREATE TABLE test_enum (\n i rainbow"
},
{
"path": "contrib/btree_gin/expected/float4.out",
"chars": 597,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_float4 (\n\ti float4\n);\nINSERT INTO test_float4 VALUES (-2),(-1),(0),(1),(2),(3)"
},
{
"path": "contrib/btree_gin/expected/float8.out",
"chars": 597,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_float8 (\n\ti float8\n);\nINSERT INTO test_float8 VALUES (-2),(-1),(0),(1),(2),(3)"
},
{
"path": "contrib/btree_gin/expected/inet.out",
"chars": 906,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_inet (\n\ti inet\n);\nINSERT INTO test_inet VALUES\n\t( '1.2.3.4/16' ),\n\t( '1.2.4.4/"
},
{
"path": "contrib/btree_gin/expected/install_btree_gin.out",
"chars": 266,
"preview": "CREATE EXTENSION btree_gin;\n-- Check whether any of our opclasses fail amvalidate\nSELECT amname, opcname\nFROM pg_opclass"
},
{
"path": "contrib/btree_gin/expected/int2.out",
"chars": 567,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_int2 (\n\ti int2\n);\nINSERT INTO test_int2 VALUES (-2),(-1),(0),(1),(2),(3);\nCREA"
},
{
"path": "contrib/btree_gin/expected/int4.out",
"chars": 567,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_int4 (\n\ti int4\n);\nINSERT INTO test_int4 VALUES (-2),(-1),(0),(1),(2),(3);\nCREA"
},
{
"path": "contrib/btree_gin/expected/int8.out",
"chars": 567,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_int8 (\n\ti int8\n);\nINSERT INTO test_int8 VALUES (-2),(-1),(0),(1),(2),(3);\nCREA"
},
{
"path": "contrib/btree_gin/expected/interval.out",
"chars": 1272,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_interval (\n\ti interval\n);\nINSERT INTO test_interval VALUES\n\t( '03:55:08' ),\n\t("
},
{
"path": "contrib/btree_gin/expected/macaddr.out",
"chars": 1189,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_macaddr (\n\ti macaddr\n);\nINSERT INTO test_macaddr VALUES\n\t( '22:00:5c:03:55:08'"
},
{
"path": "contrib/btree_gin/expected/macaddr8.out",
"chars": 1408,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_macaddr8 (\n\ti macaddr8\n);\nINSERT INTO test_macaddr8 VALUES\n\t( '22:00:5c:03:55:"
},
{
"path": "contrib/btree_gin/expected/money.out",
"chars": 696,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_money (\n\ti money\n);\nINSERT INTO test_money VALUES ('-2'),('-1'),('0'),('1'),('"
},
{
"path": "contrib/btree_gin/expected/name.out",
"chars": 2353,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_name (\n\ti name\n);\nINSERT INTO test_name VALUES ('a'),('ab'),('abc'),('abb'),('"
},
{
"path": "contrib/btree_gin/expected/numeric.out",
"chars": 622,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_numeric (\n\ti numeric\n);\nINSERT INTO test_numeric VALUES (-2),(-1),(0),(1),(2),"
},
{
"path": "contrib/btree_gin/expected/oid.out",
"chars": 539,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_oid (\n\ti oid\n);\nINSERT INTO test_oid VALUES (0),(1),(2),(3),(4),(5);\nCREATE IN"
},
{
"path": "contrib/btree_gin/expected/text.out",
"chars": 605,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_text (\n\ti text\n);\nINSERT INTO test_text VALUES ('a'),('ab'),('abc'),('abb'),('"
},
{
"path": "contrib/btree_gin/expected/time.out",
"chars": 838,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_time (\n\ti time\n);\nINSERT INTO test_time VALUES\n\t( '03:55:08' ),\n\t( '04:55:08' "
},
{
"path": "contrib/btree_gin/expected/timestamp.out",
"chars": 1402,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_timestamp (\n\ti timestamp\n);\nINSERT INTO test_timestamp VALUES\n\t( '2004-10-26 0"
},
{
"path": "contrib/btree_gin/expected/timestamptz.out",
"chars": 1524,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_timestamptz (\n\ti timestamptz\n);\nINSERT INTO test_timestamptz VALUES\n\t( '2004-1"
},
{
"path": "contrib/btree_gin/expected/timetz.out",
"chars": 1003,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_timetz (\n\ti timetz\n);\nINSERT INTO test_timetz VALUES\n\t( '03:55:08 GMT+2' ),\n\t("
},
{
"path": "contrib/btree_gin/expected/uuid.out",
"chars": 4393,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_uuid (\n\ti uuid\n);\nINSERT INTO test_uuid VALUES\n\t( '00000000-0000-0000-0000-000"
},
{
"path": "contrib/btree_gin/expected/varbit.out",
"chars": 674,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_varbit (\n\ti varbit\n);\nINSERT INTO test_varbit VALUES ('001'),('010'),('011'),("
},
{
"path": "contrib/btree_gin/expected/varchar.out",
"chars": 680,
"preview": "set enable_seqscan=off;\nCREATE TABLE test_varchar (\n\ti varchar\n);\nINSERT INTO test_varchar VALUES ('a'),('ab'),('abc'),("
},
{
"path": "contrib/btree_gin/sql/bit.sql",
"chars": 477,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_bit (\n\ti bit(3)\n);\n\nINSERT INTO test_bit VALUES ('001'),('010'),('011'),('100"
},
{
"path": "contrib/btree_gin/sql/bool.sql",
"chars": 1017,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_bool (\n\ti boolean\n);\n\nINSERT INTO test_bool VALUES (false),(true),(null);\n\nCR"
},
{
"path": "contrib/btree_gin/sql/bpchar.sql",
"chars": 901,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_bpchar (\n\ti char(10)\n);\n\nINSERT INTO test_bpchar VALUES ('a'),('ab'),('abc'),"
},
{
"path": "contrib/btree_gin/sql/bytea.sql",
"chars": 586,
"preview": "set enable_seqscan=off;\n-- ensure consistent test output regardless of the default bytea format\nSET bytea_output TO esca"
},
{
"path": "contrib/btree_gin/sql/char.sql",
"chars": 464,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_char (\n\ti \"char\"\n);\n\nINSERT INTO test_char VALUES ('a'),('b'),('c'),('d'),('e"
},
{
"path": "contrib/btree_gin/sql/cidr.sql",
"chars": 542,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_cidr (\n\ti cidr\n);\n\nINSERT INTO test_cidr VALUES\n\t( '1.2.3.4' ),\n\t( '1.2.4.4' "
},
{
"path": "contrib/btree_gin/sql/date.sql",
"chars": 575,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_date (\n\ti date\n);\n\nINSERT INTO test_date VALUES\n\t( '2004-10-23' ),\n\t( '2004-1"
},
{
"path": "contrib/btree_gin/sql/enum.sql",
"chars": 875,
"preview": "set enable_seqscan=off;\n\nCREATE TYPE rainbow AS ENUM ('r','o','y','g','b','i','v');\n\nCREATE TABLE test_enum (\n i rainb"
},
{
"path": "contrib/btree_gin/sql/float4.sql",
"chars": 462,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_float4 (\n\ti float4\n);\n\nINSERT INTO test_float4 VALUES (-2),(-1),(0),(1),(2),("
},
{
"path": "contrib/btree_gin/sql/float8.sql",
"chars": 462,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_float8 (\n\ti float8\n);\n\nINSERT INTO test_float8 VALUES (-2),(-1),(0),(1),(2),("
},
{
"path": "contrib/btree_gin/sql/inet.sql",
"chars": 575,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_inet (\n\ti inet\n);\n\nINSERT INTO test_inet VALUES\n\t( '1.2.3.4/16' ),\n\t( '1.2.4."
},
{
"path": "contrib/btree_gin/sql/install_btree_gin.sql",
"chars": 219,
"preview": "CREATE EXTENSION btree_gin;\n\n-- Check whether any of our opclasses fail amvalidate\nSELECT amname, opcname\nFROM pg_opclas"
},
{
"path": "contrib/btree_gin/sql/int2.sql",
"chars": 432,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_int2 (\n\ti int2\n);\n\nINSERT INTO test_int2 VALUES (-2),(-1),(0),(1),(2),(3);\n\nC"
},
{
"path": "contrib/btree_gin/sql/int4.sql",
"chars": 432,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_int4 (\n\ti int4\n);\n\nINSERT INTO test_int4 VALUES (-2),(-1),(0),(1),(2),(3);\n\nC"
},
{
"path": "contrib/btree_gin/sql/int8.sql",
"chars": 432,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_int8 (\n\ti int8\n);\n\nINSERT INTO test_int8 VALUES (-2),(-1),(0),(1),(2),(3);\n\nC"
},
{
"path": "contrib/btree_gin/sql/interval.sql",
"chars": 613,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_interval (\n\ti interval\n);\n\nINSERT INTO test_interval VALUES\n\t( '03:55:08' ),\n"
},
{
"path": "contrib/btree_gin/sql/macaddr.sql",
"chars": 697,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_macaddr (\n\ti macaddr\n);\n\nINSERT INTO test_macaddr VALUES\n\t( '22:00:5c:03:55:0"
},
{
"path": "contrib/btree_gin/sql/macaddr8.sql",
"chars": 778,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_macaddr8 (\n\ti macaddr8\n);\n\nINSERT INTO test_macaddr8 VALUES\n\t( '22:00:5c:03:5"
},
{
"path": "contrib/btree_gin/sql/money.sql",
"chars": 469,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_money (\n\ti money\n);\n\nINSERT INTO test_money VALUES ('-2'),('-1'),('0'),('1'),"
},
{
"path": "contrib/btree_gin/sql/name.sql",
"chars": 794,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_name (\n\ti name\n);\n\nINSERT INTO test_name VALUES ('a'),('ab'),('abc'),('abb'),"
},
{
"path": "contrib/btree_gin/sql/numeric.sql",
"chars": 487,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_numeric (\n\ti numeric\n);\n\nINSERT INTO test_numeric VALUES (-2),(-1),(0),(1),(2"
},
{
"path": "contrib/btree_gin/sql/oid.sql",
"chars": 415,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_oid (\n\ti oid\n);\n\nINSERT INTO test_oid VALUES (0),(1),(2),(3),(4),(5);\n\nCREATE"
},
{
"path": "contrib/btree_gin/sql/text.sql",
"chars": 441,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_text (\n\ti text\n);\n\nINSERT INTO test_text VALUES ('a'),('ab'),('abc'),('abb'),"
},
{
"path": "contrib/btree_gin/sql/time.sql",
"chars": 553,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_time (\n\ti time\n);\n\nINSERT INTO test_time VALUES\n\t( '03:55:08' ),\n\t( '04:55:08"
},
{
"path": "contrib/btree_gin/sql/timestamp.sql",
"chars": 749,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_timestamp (\n\ti timestamp\n);\n\nINSERT INTO test_timestamp VALUES\n\t( '2004-10-26"
},
{
"path": "contrib/btree_gin/sql/timestamptz.sql",
"chars": 779,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_timestamptz (\n\ti timestamptz\n);\n\nINSERT INTO test_timestamptz VALUES\n\t( '2004"
},
{
"path": "contrib/btree_gin/sql/timetz.sql",
"chars": 649,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_timetz (\n\ti timetz\n);\n\nINSERT INTO test_timetz VALUES\n\t( '03:55:08 GMT+2' ),\n"
},
{
"path": "contrib/btree_gin/sql/uuid.sql",
"chars": 1409,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_uuid (\n\ti uuid\n);\n\nINSERT INTO test_uuid VALUES\n\t( '00000000-0000-0000-0000-0"
},
{
"path": "contrib/btree_gin/sql/varbit.sql",
"chars": 504,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_varbit (\n\ti varbit\n);\n\nINSERT INTO test_varbit VALUES ('001'),('010'),('011')"
},
{
"path": "contrib/btree_gin/sql/varchar.sql",
"chars": 516,
"preview": "set enable_seqscan=off;\n\nCREATE TABLE test_varchar (\n\ti varchar\n);\n\nINSERT INTO test_varchar VALUES ('a'),('ab'),('abc')"
},
{
"path": "contrib/btree_gist/.gitignore",
"chars": 55,
"preview": "# Generated subdirectories\n/log/\n/results/\n/tmp_check/\n"
},
{
"path": "contrib/btree_gist/Makefile",
"chars": 1225,
"preview": "# contrib/btree_gist/Makefile\n\nMODULE_big = btree_gist\n\nOBJS = btree_gist.o btree_utils_num.o btree_utils_var.o btree_i"
},
{
"path": "contrib/btree_gist/btree_bit.c",
"chars": 4761,
"preview": "/*\n * contrib/btree_gist/btree_bit.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_var.h\"\n#in"
},
{
"path": "contrib/btree_gist/btree_bytea.c",
"chars": 3951,
"preview": "/*\n * contrib/btree_gist/btree_bytea.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_var.h\"\n#"
},
{
"path": "contrib/btree_gist/btree_cash.c",
"chars": 5014,
"preview": "/*\n * contrib/btree_gist/btree_cash.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_date.c",
"chars": 6380,
"preview": "/*\n * contrib/btree_gist/btree_date.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_enum.c",
"chars": 4768,
"preview": "/*\n * contrib/btree_gist/btree_enum.c\n */\n#include \"postgres.h\"\n#include \"fmgr.h\"\n#include \"utils/builtins.h\"\n\n#include "
},
{
"path": "contrib/btree_gist/btree_float4.c",
"chars": 4991,
"preview": "/*\n * contrib/btree_gist/btree_float4.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n"
},
{
"path": "contrib/btree_gist/btree_float8.c",
"chars": 5126,
"preview": "/*\n * contrib/btree_gist/btree_float8.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n"
},
{
"path": "contrib/btree_gist/btree_gist--1.0--1.1.sql",
"chars": 3739,
"preview": "/* contrib/btree_gist/btree_gist--1.0--1.1.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTE"
},
{
"path": "contrib/btree_gist/btree_gist--1.1--1.2.sql",
"chars": 4346,
"preview": "/* contrib/btree_gist/btree_gist--1.1--1.2.sql */\n\n-- complain if script is sourced in psql, rather than via ALTER EXTEN"
},
{
"path": "contrib/btree_gist/btree_gist--1.2--1.3.sql",
"chars": 1955,
"preview": "/* contrib/btree_gist/btree_gist--1.2--1.3.sql */\n\n-- complain if script is sourced in psql, rather than via ALTER EXTEN"
},
{
"path": "contrib/btree_gist/btree_gist--1.2.sql",
"chars": 41115,
"preview": "/* contrib/btree_gist/btree_gist--1.2.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTENSION"
},
{
"path": "contrib/btree_gist/btree_gist--1.3--1.4.sql",
"chars": 1932,
"preview": "/* contrib/btree_gist/btree_gist--1.3--1.4.sql */\n\n-- complain if script is sourced in psql, rather than via ALTER EXTEN"
},
{
"path": "contrib/btree_gist/btree_gist--1.4--1.5.sql",
"chars": 1872,
"preview": "/* contrib/btree_gist/btree_gist--1.4--1.5.sql */\n\n-- complain if script is sourced in psql, rather than via CREATE EXTE"
},
{
"path": "contrib/btree_gist/btree_gist--unpackaged--1.0.sql",
"chars": 21479,
"preview": "/* contrib/btree_gist/btree_gist--unpackaged--1.0.sql */\n\n-- complain if script is sourced in psql, rather than via CREA"
},
{
"path": "contrib/btree_gist/btree_gist.c",
"chars": 905,
"preview": "/*\n * contrib/btree_gist/btree_gist.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n\nPG_MODULE_MAGIC;\n\nPG_FUNCTION_"
},
{
"path": "contrib/btree_gist/btree_gist.control",
"chars": 163,
"preview": "# btree_gist extension\ncomment = 'support for indexing common datatypes in GiST'\ndefault_version = '1.5'\nmodule_pathname"
},
{
"path": "contrib/btree_gist/btree_gist.h",
"chars": 526,
"preview": "/*\n * contrib/btree_gist/btree_gist.h\n */\n#ifndef __BTREE_GIST_H__\n#define __BTREE_GIST_H__\n\n#include \"fmgr.h\"\n#include "
},
{
"path": "contrib/btree_gist/btree_inet.c",
"chars": 4431,
"preview": "/*\n * contrib/btree_gist/btree_inet.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_int2.c",
"chars": 5038,
"preview": "/*\n * contrib/btree_gist/btree_int2.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_int4.c",
"chars": 5038,
"preview": "/*\n * contrib/btree_gist/btree_int4.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_int8.c",
"chars": 5039,
"preview": "/*\n * contrib/btree_gist/btree_int8.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_interval.c",
"chars": 7518,
"preview": "/*\n * contrib/btree_gist/btree_interval.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h"
},
{
"path": "contrib/btree_gist/btree_macaddr.c",
"chars": 4854,
"preview": "/*\n * contrib/btree_gist/btree_macaddr.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\""
},
{
"path": "contrib/btree_gist/btree_macaddr8.c",
"chars": 4902,
"preview": "/*\n * contrib/btree_gist/btree_macaddr8.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h"
},
{
"path": "contrib/btree_gist/btree_numeric.c",
"chars": 5657,
"preview": "/*\n * contrib/btree_gist/btree_numeric.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n\n#include <math.h>\n#include "
},
{
"path": "contrib/btree_gist/btree_oid.c",
"chars": 4854,
"preview": "/*\n * contrib/btree_gist/btree_oid.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n\nty"
},
{
"path": "contrib/btree_gist/btree_text.c",
"chars": 5636,
"preview": "/*\n * contrib/btree_gist/btree_text.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_var.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_time.c",
"chars": 8522,
"preview": "/*\n * contrib/btree_gist/btree_time.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/btree_ts.c",
"chars": 9838,
"preview": "/*\n * contrib/btree_gist/btree_ts.c\n */\n#include \"postgres.h\"\n\n#include <limits.h>\n\n#include \"btree_gist.h\"\n#include \"bt"
},
{
"path": "contrib/btree_gist/btree_utils_num.c",
"chars": 8892,
"preview": "/*\n * contrib/btree_gist/btree_utils_num.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num."
},
{
"path": "contrib/btree_gist/btree_utils_num.h",
"chars": 4034,
"preview": "/*\n * contrib/btree_gist/btree_utils_num.h\n */\n#ifndef __BTREE_UTILS_NUM_H__\n#define __BTREE_UTILS_NUM_H__\n\n#include \"bt"
},
{
"path": "contrib/btree_gist/btree_utils_var.c",
"chars": 14483,
"preview": "/*\n * contrib/btree_gist/btree_utils_var.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n\n#include <math.h>\n#includ"
},
{
"path": "contrib/btree_gist/btree_utils_var.h",
"chars": 2237,
"preview": "/*\n * contrib/btree_gist/btree_utils_var.h\n */\n#ifndef __BTREE_UTILS_VAR_H__\n#define __BTREE_UTILS_VAR_H__\n\n#include \"bt"
},
{
"path": "contrib/btree_gist/btree_uuid.c",
"chars": 5781,
"preview": "/*\n * contrib/btree_gist/btree_uuid.c\n */\n#include \"postgres.h\"\n\n#include \"btree_gist.h\"\n#include \"btree_utils_num.h\"\n#i"
},
{
"path": "contrib/btree_gist/data/bit.data",
"chars": 20436,
"preview": "010000100100001100101100011110110\n010110001111011000001101000000101\n101100011110110000011010000001010\n001101100101000001"
},
{
"path": "contrib/btree_gist/data/cash.data",
"chars": 5758,
"preview": "-166122.30\n-432746.26\n\\N\n-282683.84\n454558.76\n-446358.85\n374604.84\n-207772.37\n-447987.84\n326562.77\n-269813.11\n-191115.13"
},
{
"path": "contrib/btree_gist/data/char.data",
"chars": 9113,
"preview": "b026324c6904b2a9cb4b88d6d\n26ab0db90d72e28ad0ba1e22ee\n6d7fce9fe\n48a24b70a0b376\n1dcc\n9ae0ea9\n84bc3da1b3e33\nc30f7472766d25a"
},
{
"path": "contrib/btree_gist/data/date.data",
"chars": 6152,
"preview": "2019-11-22\n1995-05-20\n1989-04-12\n\\N\n2023-10-21\n2028-11-27\n2024-05-24\n2018-08-31\n1988-07-16\n\\N\n2019-05-21\n1972-12-12\n1975"
},
{
"path": "contrib/btree_gist/data/enum.data",
"chars": 1253,
"preview": "r\nv\ni\nb\nr\n\\N\ny\nv\ng\no\ny\nb\no\no\no\no\nv\nr\ni\no\nb\nr\ng\nb\ni\no\nr\nr\nr\n\\N\no\nb\nv\ny\no\n\\N\ni\no\no\ng\ng\nb\ny\nv\ng\ng\n\\N\nv\ng\ni\ni\n\\N\nv\ny\ni\nr\n\\N\n"
},
{
"path": "contrib/btree_gist/data/float4.data",
"chars": 6864,
"preview": "3926.686551\n-3078.593513\n-1523.429224\n-669.684166\n234.904986\n2226.918930\n-4718.612498\n2093.397950\n-1914.453566\n4027.2262"
},
{
"path": "contrib/btree_gist/data/float8.data",
"chars": 7373,
"preview": "-39017.848619\n17104.680681\n-9885.090245\n-931.243017\n-29740.660628\n-14665.622294\n46069.995126\n2910.093476\n7714.560143\n172"
},
{
"path": "contrib/btree_gist/data/inet.data",
"chars": 8844,
"preview": "205.48.101.94\n64.191.16.251\n104.18.168.108\n32.163.254.222\n95.221.129.147\n183.253.140.85\n70.165.215.123\n84.170.107.43\n79."
},
{
"path": "contrib/btree_gist/data/int2.data",
"chars": 3039,
"preview": "3093\n4550\n-3556\n-3363\n324\n-149\n-265\n-3432\n1122\n-2534\n-4263\n660\n-2263\n-468\n-3605\n-663\n-4713\n\\N\n1361\n\\N\n\\N\n2681\n-550\n\\N\n19"
},
{
"path": "contrib/btree_gist/data/int4.data",
"chars": 5861,
"preview": "-278383369\n-747067264\n-444347454\n943059602\n760126298\n-313957087\n69871373\n1047228793\n549563771\n-849172813\n742152707\n-1021"
},
{
"path": "contrib/btree_gist/data/int8.data",
"chars": 10000,
"preview": "571162582773129\n-968633726566092\n-84469929177915858\n4162557330816307\n37260777124104530\n-4777143170215921\n-18226963197866"
},
{
"path": "contrib/btree_gist/data/interval.data",
"chars": 12124,
"preview": "1748 days 11:26:21\n-2771 days -11:53:23\n-6230 days -20:26:04\n8945 days 14:56:37\n3581 days 23:33:20\n199 days 21:21:23\n\\N\n"
},
{
"path": "contrib/btree_gist/data/macaddr.data",
"chars": 10932,
"preview": "4a:31:57:23:9b:54\ne2:cc:11:0d:3a:a5\na9:2b:32:79:3e:60\n53:1c:b9:1d:db:c7\n\\N\n70:8a:83:2b:c0:23\n4c:55:af:1e:79:f9\nb9:4c:7c:"
},
{
"path": "contrib/btree_gist/data/numeric.data",
"chars": 1447,
"preview": "-1890.000000000000000000000000000000000000000000000000000000000000000000000000001\n-1889.99999999999999999999999999999999"
},
{
"path": "contrib/btree_gist/data/text.data",
"chars": 32368,
"preview": "2eb2c961c1cbf6 cf8d7b68cb9a2f36 7bbedb4ae7 06ec46c55611a466eb7e3edcc009ca6 e 5ed9cd0ea5a4e55d601027c56a 64cacf3a42afc 9"
}
]
// ... and 5349 more files (download for full content)
About this extraction
This page contains the full source code of the zettadb/kunlun GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 5549 files (88.2 MB), approximately 23.4M tokens, and a symbol index with 30783 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.