diff -Nru postgresql-10-10.10/configure postgresql-10-10.12/configure --- postgresql-10-10.10/configure 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/configure 2020-02-10 22:19:45.000000000 +0000 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for PostgreSQL 10.10. +# Generated by GNU Autoconf 2.69 for PostgreSQL 10.12. # # Report bugs to . # @@ -582,8 +582,8 @@ # Identity of this package. PACKAGE_NAME='PostgreSQL' PACKAGE_TARNAME='postgresql' -PACKAGE_VERSION='10.10' -PACKAGE_STRING='PostgreSQL 10.10' +PACKAGE_VERSION='10.12' +PACKAGE_STRING='PostgreSQL 10.12' PACKAGE_BUGREPORT='pgsql-bugs@postgresql.org' PACKAGE_URL='' @@ -728,6 +728,7 @@ TAS GCC CPP +CFLAGS_SL CFLAGS_VECTOR SUN_STUDIO_CC OBJEXT @@ -1411,7 +1412,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures PostgreSQL 10.10 to adapt to many kinds of systems. +\`configure' configures PostgreSQL 10.12 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1476,7 +1477,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of PostgreSQL 10.10:";; + short | recursive ) echo "Configuration of PostgreSQL 10.12:";; esac cat <<\_ACEOF @@ -1635,7 +1636,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -PostgreSQL configure 10.10 +PostgreSQL configure 10.12 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2350,7 +2351,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by PostgreSQL $as_me 10.10, which was +It was created by PostgreSQL $as_me 10.12, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -5143,7 +5144,6 @@ fi -CFLAGS_VECTOR=$CFLAGS_VECTOR # supply -g if --enable-debug @@ -5182,6 +5182,9 @@ # the automatic additions. CFLAGS="$CFLAGS $user_CFLAGS" +# The template file must set up CFLAGS_SL; we don't support user override + + # Check if the compiler still works with the final flag settings { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler still works" >&5 $as_echo_n "checking whether the C compiler still works... " >&6; } @@ -16345,6 +16348,10 @@ # On most platforms, if perl.h is there then libperl.so will be too, but at # this writing Debian packages them separately. There is no known reason to # waste cycles on separate probes for the Tcl or Python libraries, though. + # On some Red Hat platforms, the link attempt can fail if we don't use + # CFLAGS_SL while building the test program. + ac_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $CFLAGS_SL" pgac_save_LIBS=$LIBS LIBS="$perl_embed_ldflags" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libperl" >&5 @@ -16374,6 +16381,7 @@ rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$pgac_save_LIBS + CFLAGS=$ac_save_CFLAGS CPPFLAGS=$ac_save_CPPFLAGS fi @@ -17684,7 +17692,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by PostgreSQL $as_me 10.10, which was +This file was extended by PostgreSQL $as_me 10.12, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17754,7 +17762,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -PostgreSQL config.status 10.10 +PostgreSQL config.status 10.12 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -Nru postgresql-10-10.10/configure.in postgresql-10-10.12/configure.in --- postgresql-10-10.10/configure.in 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/configure.in 2020-02-10 22:19:45.000000000 +0000 @@ -17,7 +17,7 @@ dnl m4_pattern_forbid(^PGAC_)dnl to catch undefined macros -AC_INIT([PostgreSQL], [10.10], [pgsql-bugs@postgresql.org]) +AC_INIT([PostgreSQL], [10.12], [pgsql-bugs@postgresql.org]) m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required. Untested combinations of 'autoconf' and PostgreSQL versions are not @@ -500,7 +500,7 @@ PGAC_PROG_CC_CFLAGS_OPT([+Olibmerrno]) fi -AC_SUBST(CFLAGS_VECTOR, $CFLAGS_VECTOR) +AC_SUBST(CFLAGS_VECTOR) # supply -g if --enable-debug if test "$enable_debug" = yes && test "$ac_cv_prog_cc_g" = yes; then @@ -537,6 +537,9 @@ # the automatic additions. CFLAGS="$CFLAGS $user_CFLAGS" +# The template file must set up CFLAGS_SL; we don't support user override +AC_SUBST(CFLAGS_SL) + # Check if the compiler still works with the final flag settings AC_MSG_CHECKING([whether the C compiler still works]) AC_LINK_IFELSE([AC_LANG_PROGRAM([], [return 0;])], @@ -2148,6 +2151,10 @@ # On most platforms, if perl.h is there then libperl.so will be too, but at # this writing Debian packages them separately. There is no known reason to # waste cycles on separate probes for the Tcl or Python libraries, though. + # On some Red Hat platforms, the link attempt can fail if we don't use + # CFLAGS_SL while building the test program. + ac_save_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS $CFLAGS_SL" pgac_save_LIBS=$LIBS LIBS="$perl_embed_ldflags" AC_MSG_CHECKING([for libperl]) @@ -2159,6 +2166,7 @@ [AC_MSG_RESULT(no) AC_MSG_ERROR([libperl library is required for Perl])]) LIBS=$pgac_save_LIBS + CFLAGS=$ac_save_CFLAGS CPPFLAGS=$ac_save_CPPFLAGS fi diff -Nru postgresql-10-10.10/contrib/amcheck/verify_nbtree.c postgresql-10-10.12/contrib/amcheck/verify_nbtree.c --- postgresql-10-10.10/contrib/amcheck/verify_nbtree.c 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/amcheck/verify_nbtree.c 2020-02-10 22:19:45.000000000 +0000 @@ -25,6 +25,7 @@ #include "commands/tablecmds.h" #include "miscadmin.h" #include "storage/lmgr.h" +#include "storage/smgr.h" #include "utils/memutils.h" #include "utils/snapmgr.h" @@ -94,6 +95,7 @@ static void bt_index_check_internal(Oid indrelid, bool parentcheck); static inline void btree_index_checkable(Relation rel); +static inline bool btree_index_mainfork_expected(Relation rel); static void bt_check_every_level(Relation rel, bool readonly); static BtreeLevel bt_check_level_from_leftmost(BtreeCheckState *state, BtreeLevel level); @@ -204,8 +206,18 @@ /* Relation suitable for checking as B-Tree? */ btree_index_checkable(indrel); - /* Check index */ - bt_check_every_level(indrel, parentcheck); + if (btree_index_mainfork_expected(indrel)) + { + RelationOpenSmgr(indrel); + if (!smgrexists(indrel->rd_smgr, MAIN_FORKNUM)) + ereport(ERROR, + (errcode(ERRCODE_INDEX_CORRUPTED), + errmsg("index \"%s\" lacks a main relation fork", + RelationGetRelationName(indrel)))); + + /* Check index */ + bt_check_every_level(indrel, parentcheck); + } /* * Release locks early. That's ok here because nothing in the called @@ -252,6 +264,28 @@ } /* + * Check if B-Tree index relation should have a file for its main relation + * fork. Verification uses this to skip unlogged indexes when in hot standby + * mode, where there is simply nothing to verify. + * + * NB: Caller should call btree_index_checkable() before calling here. + */ +static inline bool +btree_index_mainfork_expected(Relation rel) +{ + if (rel->rd_rel->relpersistence != RELPERSISTENCE_UNLOGGED || + !RecoveryInProgress()) + return true; + + ereport(NOTICE, + (errcode(ERRCODE_READ_ONLY_SQL_TRANSACTION), + errmsg("cannot verify unlogged index \"%s\" during recovery, skipping", + RelationGetRelationName(rel)))); + + return false; +} + +/* * Main entry point for B-Tree SQL-callable functions. Walks the B-Tree in * logical order, verifying invariants as it goes. * diff -Nru postgresql-10-10.10/contrib/bloom/expected/bloom.out postgresql-10-10.12/contrib/bloom/expected/bloom.out --- postgresql-10-10.10/contrib/bloom/expected/bloom.out 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/bloom/expected/bloom.out 2020-02-10 22:19:45.000000000 +0000 @@ -5,6 +5,7 @@ ); INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series(1,2000) i; CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (col1 = 3); +ALTER INDEX bloomidx SET (length=80); SET enable_seqscan=on; SET enable_bitmapscan=off; SET enable_indexscan=off; diff -Nru postgresql-10-10.10/contrib/bloom/sql/bloom.sql postgresql-10-10.12/contrib/bloom/sql/bloom.sql --- postgresql-10-10.10/contrib/bloom/sql/bloom.sql 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/bloom/sql/bloom.sql 2020-02-10 22:19:45.000000000 +0000 @@ -7,6 +7,7 @@ INSERT INTO tst SELECT i%10, substr(md5(i::text), 1, 1) FROM generate_series(1,2000) i; CREATE INDEX bloomidx ON tst USING bloom (i, t) WITH (col1 = 3); +ALTER INDEX bloomidx SET (length=80); SET enable_seqscan=on; SET enable_bitmapscan=off; diff -Nru postgresql-10-10.10/contrib/cube/cubeparse.c postgresql-10-10.12/contrib/cube/cubeparse.c --- postgresql-10-10.10/contrib/cube/cubeparse.c 2019-08-05 21:30:54.000000000 +0000 +++ postgresql-10-10.12/contrib/cube/cubeparse.c 2020-02-10 22:32:37.000000000 +0000 @@ -1,8 +1,9 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 3.3.2. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Inc. 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 @@ -40,11 +41,14 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.4" +#define YYBISON_VERSION "3.3.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,8 +73,8 @@ #define yylval cube_yylval #define yychar cube_yychar -/* Copy the first part of user declarations. */ -#line 1 "cubeparse.y" /* yacc.c:339 */ +/* First part of user prologue. */ +#line 1 "cubeparse.y" /* yacc.c:337 */ /* contrib/cube/cubeparse.y */ @@ -104,13 +108,16 @@ static NDBOX *write_point_as_box(int dim, char *str); -#line 108 "cubeparse.c" /* yacc.c:339 */ - +#line 112 "cubeparse.c" /* yacc.c:337 */ # ifndef YY_NULLPTR -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif # else -# define YY_NULLPTR 0 +# define YY_NULLPTR ((void*)0) # endif # endif @@ -159,9 +166,7 @@ -/* Copy the second part of user declarations. */ -#line 165 "cubeparse.c" /* yacc.c:358 */ #ifdef short # undef short @@ -182,13 +187,13 @@ #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else -typedef unsigned short int yytype_uint16; +typedef unsigned short yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else -typedef short int yytype_int16; +typedef short yytype_int16; #endif #ifndef YYSIZE_T @@ -200,7 +205,7 @@ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif @@ -236,15 +241,6 @@ # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -252,7 +248,7 @@ # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ @@ -414,16 +410,16 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 19 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 263 +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ + as returned by yylex. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -570,22 +566,22 @@ #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (result, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (result, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) /* Error token number */ #define YYTERROR 1 @@ -625,38 +621,38 @@ } while (0) -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result) +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result) { - FILE *yyo = yyoutput; - YYUSE (yyo); + FILE *yyoutput = yyo; + YYUSE (yyoutput); YYUSE (result); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result) +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, NDBOX **result) { - YYFPRINTF (yyoutput, "%s %s (", + YYFPRINTF (yyo, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - yy_symbol_value_print (yyoutput, yytype, yyvaluep, result); - YYFPRINTF (yyoutput, ")"); + yy_symbol_value_print (yyo, yytype, yyvaluep, result); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -690,7 +686,7 @@ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, NDBOX **result) { - unsigned long int yylno = yyrline[yyrule]; + unsigned long yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", @@ -701,7 +697,7 @@ YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) + &yyvsp[(yyi + 1) - (yynrhs)] , result); YYFPRINTF (stderr, "\n"); } @@ -805,7 +801,10 @@ case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - /* Fall through. */ + else + goto append; + + append: default: if (yyres) yyres[yyn] = *yyp; @@ -823,7 +822,7 @@ if (! yyres) return yystrlen (yystr); - return yystpcpy (yyres, yystr) - yyres; + return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } # endif @@ -901,10 +900,10 @@ yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } } } @@ -916,6 +915,7 @@ case N: \ yyformat = S; \ break + default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); @@ -927,9 +927,10 @@ { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } if (*yymsg_alloc < yysize) @@ -1056,23 +1057,31 @@ yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yynewstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + *yyssp = (yytype_int16) yystate; if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); -#ifdef yyoverflow +# if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into @@ -1088,14 +1097,10 @@ &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); - yyss = yyss1; yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; @@ -1111,22 +1116,22 @@ goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -1135,11 +1140,11 @@ goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ @@ -1212,7 +1217,7 @@ /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ @@ -1233,18 +1238,18 @@ switch (yyn) { case 2: -#line 47 "cubeparse.y" /* yacc.c:1646 */ +#line 47 "cubeparse.y" /* yacc.c:1652 */ { int dim; - dim = item_count((yyvsp[-3]), ','); - if (item_count((yyvsp[-1]), ',') != dim) + dim = item_count(yyvsp[-3], ','); + if (item_count(yyvsp[-1], ',') != dim) { ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for cube"), errdetail("Different point dimensions in (%s) and (%s).", - (yyvsp[-3]), (yyvsp[-1])))); + yyvsp[-3], yyvsp[-1]))); YYABORT; } if (dim > CUBE_MAX_DIM) @@ -1257,24 +1262,24 @@ YYABORT; } - *result = write_box( dim, (yyvsp[-3]), (yyvsp[-1]) ); + *result = write_box( dim, yyvsp[-3], yyvsp[-1] ); } -#line 1263 "cubeparse.c" /* yacc.c:1646 */ +#line 1268 "cubeparse.c" /* yacc.c:1652 */ break; case 3: -#line 74 "cubeparse.y" /* yacc.c:1646 */ +#line 74 "cubeparse.y" /* yacc.c:1652 */ { int dim; - dim = item_count((yyvsp[-2]), ','); - if (item_count((yyvsp[0]), ',') != dim) + dim = item_count(yyvsp[-2], ','); + if (item_count(yyvsp[0], ',') != dim) { ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for cube"), errdetail("Different point dimensions in (%s) and (%s).", - (yyvsp[-2]), (yyvsp[0])))); + yyvsp[-2], yyvsp[0]))); YYABORT; } if (dim > CUBE_MAX_DIM) @@ -1287,17 +1292,17 @@ YYABORT; } - *result = write_box( dim, (yyvsp[-2]), (yyvsp[0]) ); + *result = write_box( dim, yyvsp[-2], yyvsp[0] ); } -#line 1293 "cubeparse.c" /* yacc.c:1646 */ +#line 1298 "cubeparse.c" /* yacc.c:1652 */ break; case 4: -#line 101 "cubeparse.y" /* yacc.c:1646 */ +#line 101 "cubeparse.y" /* yacc.c:1652 */ { int dim; - dim = item_count((yyvsp[0]), ','); + dim = item_count(yyvsp[0], ','); if (dim > CUBE_MAX_DIM) { ereport(ERROR, @@ -1308,17 +1313,17 @@ YYABORT; } - *result = write_point_as_box(dim, (yyvsp[0])); + *result = write_point_as_box(dim, yyvsp[0]); } -#line 1314 "cubeparse.c" /* yacc.c:1646 */ +#line 1319 "cubeparse.c" /* yacc.c:1652 */ break; case 5: -#line 119 "cubeparse.y" /* yacc.c:1646 */ +#line 119 "cubeparse.y" /* yacc.c:1652 */ { int dim; - dim = item_count((yyvsp[0]), ','); + dim = item_count(yyvsp[0], ','); if (dim > CUBE_MAX_DIM) { ereport(ERROR, @@ -1329,49 +1334,49 @@ YYABORT; } - *result = write_point_as_box(dim, (yyvsp[0])); + *result = write_point_as_box(dim, yyvsp[0]); } -#line 1335 "cubeparse.c" /* yacc.c:1646 */ +#line 1340 "cubeparse.c" /* yacc.c:1652 */ break; case 6: -#line 138 "cubeparse.y" /* yacc.c:1646 */ +#line 138 "cubeparse.y" /* yacc.c:1652 */ { - (yyval) = (yyvsp[-1]); + yyval = yyvsp[-1]; } -#line 1343 "cubeparse.c" /* yacc.c:1646 */ +#line 1348 "cubeparse.c" /* yacc.c:1652 */ break; case 7: -#line 142 "cubeparse.y" /* yacc.c:1646 */ +#line 142 "cubeparse.y" /* yacc.c:1652 */ { - (yyval) = pstrdup(""); + yyval = pstrdup(""); } -#line 1351 "cubeparse.c" /* yacc.c:1646 */ +#line 1356 "cubeparse.c" /* yacc.c:1652 */ break; case 8: -#line 148 "cubeparse.y" /* yacc.c:1646 */ +#line 148 "cubeparse.y" /* yacc.c:1652 */ { /* alloc enough space to be sure whole list will fit */ - (yyval) = palloc(scanbuflen + 1); - strcpy((yyval), (yyvsp[0])); + yyval = palloc(scanbuflen + 1); + strcpy(yyval, yyvsp[0]); } -#line 1361 "cubeparse.c" /* yacc.c:1646 */ +#line 1366 "cubeparse.c" /* yacc.c:1652 */ break; case 9: -#line 154 "cubeparse.y" /* yacc.c:1646 */ +#line 154 "cubeparse.y" /* yacc.c:1652 */ { - (yyval) = (yyvsp[-2]); - strcat((yyval), ","); - strcat((yyval), (yyvsp[0])); + yyval = yyvsp[-2]; + strcat(yyval, ","); + strcat(yyval, yyvsp[0]); } -#line 1371 "cubeparse.c" /* yacc.c:1646 */ +#line 1376 "cubeparse.c" /* yacc.c:1652 */ break; -#line 1375 "cubeparse.c" /* yacc.c:1646 */ +#line 1380 "cubeparse.c" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1396,14 +1401,13 @@ /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; @@ -1486,12 +1490,10 @@ | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ @@ -1553,6 +1555,7 @@ yyresult = 0; goto yyreturn; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -1560,6 +1563,7 @@ yyresult = 1; goto yyreturn; + #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | @@ -1570,6 +1574,10 @@ /* Fall through. */ #endif + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1599,7 +1607,7 @@ #endif return yyresult; } -#line 161 "cubeparse.y" /* yacc.c:1906 */ +#line 161 "cubeparse.y" /* yacc.c:1918 */ /* This assumes the string has been normalized by productions above */ diff -Nru postgresql-10-10.10/contrib/cube/cubescan.c postgresql-10-10.12/contrib/cube/cubescan.c --- postgresql-10-10.10/contrib/cube/cubescan.c 2019-08-05 21:30:54.000000000 +0000 +++ postgresql-10-10.12/contrib/cube/cubescan.c 2020-02-10 22:32:37.000000000 +0000 @@ -8,11 +8,17 @@ #define yy_create_buffer cube_yy_create_buffer #define yy_delete_buffer cube_yy_delete_buffer -#define yy_flex_debug cube_yy_flex_debug +#define yy_scan_buffer cube_yy_scan_buffer +#define yy_scan_string cube_yy_scan_string +#define yy_scan_bytes cube_yy_scan_bytes #define yy_init_buffer cube_yy_init_buffer #define yy_flush_buffer cube_yy_flush_buffer #define yy_load_buffer_state cube_yy_load_buffer_state #define yy_switch_to_buffer cube_yy_switch_to_buffer +#define yypush_buffer_state cube_yypush_buffer_state +#define yypop_buffer_state cube_yypop_buffer_state +#define yyensure_buffer_stack cube_yyensure_buffer_stack +#define yy_flex_debug cube_yy_flex_debug #define yyin cube_yyin #define yyleng cube_yyleng #define yylex cube_yylex @@ -28,11 +34,245 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 1 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif +#ifdef yy_create_buffer +#define cube_yy_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer cube_yy_create_buffer +#endif + +#ifdef yy_delete_buffer +#define cube_yy_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer cube_yy_delete_buffer +#endif + +#ifdef yy_scan_buffer +#define cube_yy_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer cube_yy_scan_buffer +#endif + +#ifdef yy_scan_string +#define cube_yy_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string cube_yy_scan_string +#endif + +#ifdef yy_scan_bytes +#define cube_yy_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes cube_yy_scan_bytes +#endif + +#ifdef yy_init_buffer +#define cube_yy_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer cube_yy_init_buffer +#endif + +#ifdef yy_flush_buffer +#define cube_yy_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer cube_yy_flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define cube_yy_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state cube_yy_load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define cube_yy_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer cube_yy_switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define cube_yypush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state cube_yypush_buffer_state +#endif + +#ifdef yypop_buffer_state +#define cube_yypop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state cube_yypop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define cube_yyensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack cube_yyensure_buffer_stack +#endif + +#ifdef yylex +#define cube_yylex_ALREADY_DEFINED +#else +#define yylex cube_yylex +#endif + +#ifdef yyrestart +#define cube_yyrestart_ALREADY_DEFINED +#else +#define yyrestart cube_yyrestart +#endif + +#ifdef yylex_init +#define cube_yylex_init_ALREADY_DEFINED +#else +#define yylex_init cube_yylex_init +#endif + +#ifdef yylex_init_extra +#define cube_yylex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra cube_yylex_init_extra +#endif + +#ifdef yylex_destroy +#define cube_yylex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy cube_yylex_destroy +#endif + +#ifdef yyget_debug +#define cube_yyget_debug_ALREADY_DEFINED +#else +#define yyget_debug cube_yyget_debug +#endif + +#ifdef yyset_debug +#define cube_yyset_debug_ALREADY_DEFINED +#else +#define yyset_debug cube_yyset_debug +#endif + +#ifdef yyget_extra +#define cube_yyget_extra_ALREADY_DEFINED +#else +#define yyget_extra cube_yyget_extra +#endif + +#ifdef yyset_extra +#define cube_yyset_extra_ALREADY_DEFINED +#else +#define yyset_extra cube_yyset_extra +#endif + +#ifdef yyget_in +#define cube_yyget_in_ALREADY_DEFINED +#else +#define yyget_in cube_yyget_in +#endif + +#ifdef yyset_in +#define cube_yyset_in_ALREADY_DEFINED +#else +#define yyset_in cube_yyset_in +#endif + +#ifdef yyget_out +#define cube_yyget_out_ALREADY_DEFINED +#else +#define yyget_out cube_yyget_out +#endif + +#ifdef yyset_out +#define cube_yyset_out_ALREADY_DEFINED +#else +#define yyset_out cube_yyset_out +#endif + +#ifdef yyget_leng +#define cube_yyget_leng_ALREADY_DEFINED +#else +#define yyget_leng cube_yyget_leng +#endif + +#ifdef yyget_text +#define cube_yyget_text_ALREADY_DEFINED +#else +#define yyget_text cube_yyget_text +#endif + +#ifdef yyget_lineno +#define cube_yyget_lineno_ALREADY_DEFINED +#else +#define yyget_lineno cube_yyget_lineno +#endif + +#ifdef yyset_lineno +#define cube_yyset_lineno_ALREADY_DEFINED +#else +#define yyset_lineno cube_yyset_lineno +#endif + +#ifdef yywrap +#define cube_yywrap_ALREADY_DEFINED +#else +#define yywrap cube_yywrap +#endif + +#ifdef yyalloc +#define cube_yyalloc_ALREADY_DEFINED +#else +#define yyalloc cube_yyalloc +#endif + +#ifdef yyrealloc +#define cube_yyrealloc_ALREADY_DEFINED +#else +#define yyrealloc cube_yyrealloc +#endif + +#ifdef yyfree +#define cube_yyfree_ALREADY_DEFINED +#else +#define yyfree cube_yyfree +#endif + +#ifdef yytext +#define cube_yytext_ALREADY_DEFINED +#else +#define yytext cube_yytext +#endif + +#ifdef yyleng +#define cube_yyleng_ALREADY_DEFINED +#else +#define yyleng cube_yyleng +#endif + +#ifdef yyin +#define cube_yyin_ALREADY_DEFINED +#else +#define yyin cube_yyin +#endif + +#ifdef yyout +#define cube_yyout_ALREADY_DEFINED +#else +#define yyout cube_yyout +#endif + +#ifdef yy_flex_debug +#define cube_yy_flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug cube_yy_flex_debug +#endif + +#ifdef yylineno +#define cube_yylineno_ALREADY_DEFINED +#else +#define yylineno cube_yylineno +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -103,10 +343,16 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ +/* begin standard C++ headers. */ + /* TODO: this is always defined, so inline it */ #define yyconst const @@ -119,32 +365,26 @@ /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE cube_yyrestart(cube_yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -174,14 +414,14 @@ typedef size_t yy_size_t; #endif -extern int cube_yyleng; +extern int yyleng; -extern FILE *cube_yyin, *cube_yyout; +extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) @@ -189,16 +429,15 @@ #define yyless(n) \ do \ { \ - /* Undo effects of setting up cube_yytext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up cube_yytext again */ \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -258,8 +497,8 @@ * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via cube_yyrestart()), so that the user can continue scanning by - * just pointing cube_yyin at a new input file. + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -280,109 +519,101 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -/* yy_hold_char holds the character lost when cube_yytext is formed. */ +/* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int cube_yyleng; +int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ -/* Flag which is used to allow cube_yywrap()'s to do buffer switches - * instead of setting up a fresh cube_yyin. A bit of a hack ... +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; -void cube_yyrestart (FILE *input_file ); -void cube_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE cube_yy_create_buffer (FILE *file,int size ); -void cube_yy_delete_buffer (YY_BUFFER_STATE b ); -void cube_yy_flush_buffer (YY_BUFFER_STATE b ); -void cube_yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void cube_yypop_buffer_state (void ); - -static void cube_yyensure_buffer_stack (void ); -static void cube_yy_load_buffer_state (void ); -static void cube_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER cube_yy_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE cube_yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE cube_yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE cube_yy_scan_bytes (yyconst char *bytes,int len ); - -void *cube_yyalloc (yy_size_t ); -void *cube_yyrealloc (void *,yy_size_t ); -void cube_yyfree (void * ); - -#define yy_new_buffer cube_yy_create_buffer +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); + +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); + +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - cube_yyensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - cube_yyensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define cube_yywrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *cube_yyin = NULL, *cube_yyout = NULL; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; -extern int cube_yylineno; +extern int yylineno; +int yylineno = 1; -int cube_yylineno = 1; - -extern char *cube_yytext; +extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif -#define yytext_ptr cube_yytext +#define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yynoreturn yy_fatal_error (yyconst char* msg ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the - * corresponding action - sets up cube_yytext. + * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - cube_yyleng = (int) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 11 #define YY_END_OF_BUFFER 12 /* This struct is not used in this scanner, @@ -392,7 +623,7 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[37] = +static const flex_int16_t yy_accept[37] = { 0, 0, 0, 12, 10, 9, 9, 6, 7, 10, 8, 10, 1, 10, 10, 4, 5, 9, 0, 1, 0, @@ -400,7 +631,7 @@ 0, 0, 0, 0, 2, 0 } ; -static yyconst YY_CHAR yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, @@ -432,13 +663,13 @@ 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[19] = +static const YY_CHAR yy_meta[19] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[37] = +static const flex_int16_t yy_base[37] = { 0, 0, 0, 53, 54, 17, 19, 54, 54, 15, 54, 43, 21, 37, 40, 54, 54, 23, 40, 0, 34, @@ -446,7 +677,7 @@ 28, 28, 25, 11, 54, 54 } ; -static yyconst flex_int16_t yy_def[37] = +static const flex_int16_t yy_def[37] = { 0, 36, 1, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 12, 36, @@ -454,7 +685,7 @@ 36, 36, 36, 36, 36, 0 } ; -static yyconst flex_uint16_t yy_nxt[73] = +static const flex_int16_t yy_nxt[73] = { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 4, 4, 4, 13, 14, 4, 4, 15, 16, 17, 17, @@ -466,7 +697,7 @@ 36, 36 } ; -static yyconst flex_int16_t yy_chk[73] = +static const flex_int16_t yy_chk[73] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, @@ -481,8 +712,8 @@ static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -extern int cube_yy_flex_debug; -int cube_yy_flex_debug = 0; +extern int yy_flex_debug; +int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -491,7 +722,7 @@ #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *cube_yytext; +char *yytext; #line 1 "cubescan.l" #line 2 "cubescan.l" /* @@ -517,8 +748,9 @@ /* this is now declared in cubeparse.y: */ /* static char *scanbuf; */ /* static int scanbuflen; */ +#line 752 "cubescan.c" #define YY_NO_INPUT 1 -#line 522 "cubescan.c" +#line 754 "cubescan.c" #define INITIAL 0 @@ -534,36 +766,36 @@ #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int cube_yylex_destroy (void ); +int yylex_destroy ( void ); -int cube_yyget_debug (void ); +int yyget_debug ( void ); -void cube_yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE cube_yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void cube_yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *cube_yyget_in (void ); +FILE *yyget_in ( void ); -void cube_yyset_in (FILE * _in_str ); +void yyset_in ( FILE * _in_str ); -FILE *cube_yyget_out (void ); +FILE *yyget_out ( void ); -void cube_yyset_out (FILE * _out_str ); +void yyset_out ( FILE * _out_str ); - int cube_yyget_leng (void ); + int yyget_leng ( void ); -char *cube_yyget_text (void ); +char *yyget_text ( void ); -int cube_yyget_lineno (void ); +int yyget_lineno ( void ); -void cube_yyset_lineno (int _line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -571,9 +803,9 @@ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int cube_yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int cube_yywrap (void ); +extern int yywrap ( void ); #endif #endif @@ -582,19 +814,18 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif @@ -614,7 +845,7 @@ /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( cube_yytext, (size_t) cube_yyleng, 1, cube_yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -625,20 +856,20 @@ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ - (c = getc( cube_yyin )) != EOF && c != '\n'; ++n ) \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( cube_yyin ) ) \ + if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, max_size, cube_yyin))==0 && ferror(cube_yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -646,7 +877,7 @@ break; \ } \ errno=0; \ - clearerr(cube_yyin); \ + clearerr(yyin); \ } \ }\ \ @@ -679,12 +910,12 @@ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int cube_yylex (void); +extern int yylex (void); -#define YY_DECL int cube_yylex (void) +#define YY_DECL int yylex (void) #endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after cube_yytext and cube_yyleng +/* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION @@ -718,32 +949,32 @@ if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ - if ( ! cube_yyin ) - cube_yyin = stdin; + if ( ! yyin ) + yyin = stdin; - if ( ! cube_yyout ) - cube_yyout = stdout; + if ( ! yyout ) + yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { - cube_yyensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - cube_yy_load_buffer_state( ); + yy_load_buffer_state( ); } { #line 44 "cubescan.l" -#line 741 "cubescan.c" +#line 972 "cubescan.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); - /* Support of cube_yytext. */ + /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of @@ -765,9 +996,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 37 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 36 ); @@ -793,17 +1024,17 @@ case 1: YY_RULE_SETUP #line 46 "cubescan.l" -yylval = cube_yytext; return CUBEFLOAT; +yylval = yytext; return CUBEFLOAT; YY_BREAK case 2: YY_RULE_SETUP #line 47 "cubescan.l" -yylval = cube_yytext; return CUBEFLOAT; +yylval = yytext; return CUBEFLOAT; YY_BREAK case 3: YY_RULE_SETUP #line 48 "cubescan.l" -yylval = cube_yytext; return CUBEFLOAT; +yylval = yytext; return CUBEFLOAT; YY_BREAK case 4: YY_RULE_SETUP @@ -839,14 +1070,14 @@ case 10: YY_RULE_SETUP #line 55 "cubescan.l" -return cube_yytext[0]; /* alert parser of the garbage */ +return yytext[0]; /* alert parser of the garbage */ YY_BREAK case 11: YY_RULE_SETUP #line 57 "cubescan.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 850 "cubescan.c" +#line 1081 "cubescan.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -863,15 +1094,15 @@ { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed cube_yyin at a new source and called - * cube_yylex(). If so, then we have to assure + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = cube_yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -925,11 +1156,11 @@ { (yy_did_buffer_switch_on_eof) = 0; - if ( cube_yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * cube_yytext, we can now set up + * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the @@ -979,7 +1210,7 @@ } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ -} /* end of cube_yylex */ +} /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1057,7 +1288,8 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - cube_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -1089,7 +1321,7 @@ if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - cube_yyrestart(cube_yyin ); + yyrestart( yyin ); } else @@ -1106,9 +1338,12 @@ if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cube_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1141,9 +1376,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 37 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1169,9 +1404,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 37 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 36); return yy_is_jam ? 0 : yy_current_state; @@ -1205,7 +1440,7 @@ else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1222,13 +1457,13 @@ */ /* Reset buffer status. */ - cube_yyrestart(cube_yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( cube_yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -1248,7 +1483,7 @@ } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve cube_yytext */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; @@ -1260,32 +1495,32 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void cube_yyrestart (FILE * input_file ) + void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ - cube_yyensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - cube_yy_create_buffer(cube_yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - cube_yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - cube_yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ - void cube_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with - * cube_yypop_buffer_state(); - * cube_yypush_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - cube_yyensure_buffer_stack (); + yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -1298,21 +1533,21 @@ } YY_CURRENT_BUFFER_LVALUE = new_buffer; - cube_yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (cube_yywrap()) processing, but the only time this flag - * is looked at is after cube_yywrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } -static void cube_yy_load_buffer_state (void) +static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - cube_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } @@ -1322,35 +1557,35 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE cube_yy_create_buffer (FILE * file, int size ) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) cube_yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in cube_yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - b->yy_buf_size = (yy_size_t)size; + b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) cube_yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in cube_yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - cube_yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } /** Destroy the buffer. - * @param b a buffer created with cube_yy_create_buffer() + * @param b a buffer created with yy_create_buffer() * */ - void cube_yy_delete_buffer (YY_BUFFER_STATE b ) + void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) @@ -1360,27 +1595,27 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - cube_yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - cube_yyfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a cube_yyrestart() or at EOF. + * such as during a yyrestart() or at EOF. */ - static void cube_yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; - cube_yy_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; - /* If b is the current buffer, then cube_yy_init_buffer was _probably_ - * called from cube_yyrestart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -1397,7 +1632,7 @@ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ - void cube_yy_flush_buffer (YY_BUFFER_STATE b ) + void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; @@ -1417,7 +1652,7 @@ b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - cube_yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -1426,14 +1661,14 @@ * @param new_buffer The new state. * */ -void cube_yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; - cube_yyensure_buffer_stack(); + yyensure_buffer_stack(); - /* This block is copied from cube_yy_switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -1447,8 +1682,8 @@ (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from cube_yy_switch_to_buffer. */ - cube_yy_load_buffer_state( ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -1456,18 +1691,18 @@ * The next element becomes the new top. * */ -void cube_yypop_buffer_state (void) +void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; - cube_yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - cube_yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -1475,9 +1710,9 @@ /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void cube_yyensure_buffer_stack (void) +static void yyensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -1486,11 +1721,11 @@ * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)cube_yyalloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in cube_yyensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); @@ -1505,12 +1740,12 @@ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)cube_yyrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in cube_yyensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -1524,7 +1759,7 @@ * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE cube_yy_scan_buffer (char * base, yy_size_t size ) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; @@ -1534,11 +1769,11 @@ /* They forgot to leave room for the EOB's. */ return NULL; - b = (YY_BUFFER_STATE) cube_yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in cube_yy_scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; @@ -1548,33 +1783,33 @@ b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - cube_yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } -/** Setup the input buffer state to scan a string. The next call to cube_yylex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * cube_yy_scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE cube_yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return cube_yy_scan_bytes(yystr,(int) strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } -/** Setup the input buffer state to scan the given bytes. The next call to cube_yylex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE cube_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -1583,18 +1818,18 @@ /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) cube_yyalloc(n ); + buf = (char *) yyalloc( n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in cube_yy_scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = cube_yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in cube_yy_scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -1608,9 +1843,9 @@ #define YY_EXIT_FAILURE 2 #endif -static void yynoreturn yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -1620,14 +1855,14 @@ #define yyless(n) \ do \ { \ - /* Undo effects of setting up cube_yytext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ - cube_yytext[cube_yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = cube_yytext + yyless_macro_arg; \ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ - cube_yyleng = yyless_macro_arg; \ + yyleng = yyless_macro_arg; \ } \ while ( 0 ) @@ -1636,85 +1871,85 @@ /** Get the current line number. * */ -int cube_yyget_lineno (void) +int yyget_lineno (void) { - return cube_yylineno; + return yylineno; } /** Get the input stream. * */ -FILE *cube_yyget_in (void) +FILE *yyget_in (void) { - return cube_yyin; + return yyin; } /** Get the output stream. * */ -FILE *cube_yyget_out (void) +FILE *yyget_out (void) { - return cube_yyout; + return yyout; } /** Get the length of the current token. * */ -int cube_yyget_leng (void) +int yyget_leng (void) { - return cube_yyleng; + return yyleng; } /** Get the current token. * */ -char *cube_yyget_text (void) +char *yyget_text (void) { - return cube_yytext; + return yytext; } /** Set the current line number. * @param _line_number line number * */ -void cube_yyset_lineno (int _line_number ) +void yyset_lineno (int _line_number ) { - cube_yylineno = _line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * - * @see cube_yy_switch_to_buffer + * @see yy_switch_to_buffer */ -void cube_yyset_in (FILE * _in_str ) +void yyset_in (FILE * _in_str ) { - cube_yyin = _in_str ; + yyin = _in_str ; } -void cube_yyset_out (FILE * _out_str ) +void yyset_out (FILE * _out_str ) { - cube_yyout = _out_str ; + yyout = _out_str ; } -int cube_yyget_debug (void) +int yyget_debug (void) { - return cube_yy_flex_debug; + return yy_flex_debug; } -void cube_yyset_debug (int _bdebug ) +void yyset_debug (int _bdebug ) { - cube_yy_flex_debug = _bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. - * This function is called from cube_yylex_destroy(), so don't allocate here. + * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = NULL; @@ -1726,36 +1961,36 @@ /* Defined in main.c */ #ifdef YY_STDINIT - cube_yyin = stdin; - cube_yyout = stdout; + yyin = stdin; + yyout = stdout; #else - cube_yyin = NULL; - cube_yyout = NULL; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * cube_yylex_init() + * yylex_init() */ return 0; } -/* cube_yylex_destroy is for both reentrant and non-reentrant scanners. */ -int cube_yylex_destroy (void) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - cube_yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; - cube_yypop_buffer_state(); + yypop_buffer_state(); } /* Destroy the stack itself. */ - cube_yyfree((yy_buffer_stack) ); + yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * cube_yylex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; @@ -1766,7 +2001,7 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; @@ -1776,7 +2011,7 @@ #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -1786,12 +2021,12 @@ } #endif -void *cube_yyalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { return malloc(size); } -void *cube_yyrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both @@ -1804,9 +2039,9 @@ return realloc(ptr, size); } -void cube_yyfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see cube_yyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1814,12 +2049,11 @@ #line 57 "cubescan.l" - /* result is not used, but Bison expects this signature */ void yyerror(NDBOX **result, const char *message) { - if (*cube_yytext == YY_END_OF_BUFFER_CHAR) + if (*yytext == YY_END_OF_BUFFER_CHAR) { ereport(ERROR, (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), @@ -1833,7 +2067,7 @@ (errcode(ERRCODE_INVALID_TEXT_REPRESENTATION), errmsg("invalid input syntax for cube"), /* translator: first %s is typically "syntax error" */ - errdetail("%s at or near \"%s\"", message, cube_yytext))); + errdetail("%s at or near \"%s\"", message, yytext))); } } @@ -1850,7 +2084,7 @@ * Might be left over after ereport() */ if (YY_CURRENT_BUFFER) - cube_yy_delete_buffer(YY_CURRENT_BUFFER); + yy_delete_buffer(YY_CURRENT_BUFFER); /* * Make a scan buffer with special termination needed by flex. @@ -1859,7 +2093,7 @@ scanbuf = palloc(slen + 2); memcpy(scanbuf, str, slen); scanbuf[slen] = scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR; - scanbufhandle = cube_yy_scan_buffer(scanbuf,slen + 2); + scanbufhandle = yy_scan_buffer(scanbuf, slen + 2); BEGIN(INITIAL); } @@ -1871,7 +2105,7 @@ void cube_scanner_finish(void) { - cube_yy_delete_buffer(scanbufhandle); + yy_delete_buffer(scanbufhandle); pfree(scanbuf); } diff -Nru postgresql-10-10.10/contrib/dict_int/dict_int.c postgresql-10-10.12/contrib/dict_int/dict_int.c --- postgresql-10-10.10/contrib/dict_int/dict_int.c 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/dict_int/dict_int.c 2020-02-10 22:19:45.000000000 +0000 @@ -45,6 +45,11 @@ if (pg_strcasecmp(defel->defname, "MAXLEN") == 0) { d->maxlen = atoi(defGetString(defel)); + + if (d->maxlen < 1) + ereport(ERROR, + (errcode(ERRCODE_INVALID_PARAMETER_VALUE), + errmsg("maxlen value has to be >= 1"))); } else if (pg_strcasecmp(defel->defname, "REJECTLONG") == 0) { diff -Nru postgresql-10-10.10/contrib/dict_int/expected/dict_int.out postgresql-10-10.12/contrib/dict_int/expected/dict_int.out --- postgresql-10-10.10/contrib/dict_int/expected/dict_int.out 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/dict_int/expected/dict_int.out 2020-02-10 22:19:45.000000000 +0000 @@ -300,3 +300,5 @@ {314532} (1 row) +ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = -214783648); +ERROR: maxlen value has to be >= 1 diff -Nru postgresql-10-10.10/contrib/dict_int/sql/dict_int.sql postgresql-10-10.12/contrib/dict_int/sql/dict_int.sql --- postgresql-10-10.10/contrib/dict_int/sql/dict_int.sql 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/dict_int/sql/dict_int.sql 2020-02-10 22:19:45.000000000 +0000 @@ -51,3 +51,5 @@ select ts_lexize('intdict', '313425'); select ts_lexize('intdict', '641439323669'); select ts_lexize('intdict', '314532610153'); + +ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = -214783648); diff -Nru postgresql-10-10.10/contrib/intarray/expected/_int.out postgresql-10-10.12/contrib/intarray/expected/_int.out --- postgresql-10-10.10/contrib/intarray/expected/_int.out 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/intarray/expected/_int.out 2020-02-10 22:19:45.000000000 +0000 @@ -407,6 +407,18 @@ 12 (1 row) +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; + count +------- + 10 +(1 row) + +SELECT count(*) from test__int WHERE a = '{73,23,20}'; + count +------- + 1 +(1 row) + SELECT count(*) from test__int WHERE a @@ '50&68'; count ------- @@ -425,6 +437,19 @@ 21 (1 row) +SELECT count(*) from test__int WHERE a @@ '20 | !21'; + count +------- + 6566 +(1 row) + +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; + count +------- + 6343 +(1 row) + +SET enable_seqscan = off; -- not all of these would use index by default CREATE INDEX text_idx on test__int using gist ( a gist__int_ops ); SELECT count(*) from test__int WHERE a && '{23,50}'; count @@ -456,6 +481,18 @@ 12 (1 row) +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; + count +------- + 10 +(1 row) + +SELECT count(*) from test__int WHERE a = '{73,23,20}'; + count +------- + 1 +(1 row) + SELECT count(*) from test__int WHERE a @@ '50&68'; count ------- @@ -474,6 +511,18 @@ 21 (1 row) +SELECT count(*) from test__int WHERE a @@ '20 | !21'; + count +------- + 6566 +(1 row) + +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; + count +------- + 6343 +(1 row) + DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gist ( a gist__intbig_ops ); SELECT count(*) from test__int WHERE a && '{23,50}'; @@ -506,6 +555,18 @@ 12 (1 row) +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; + count +------- + 10 +(1 row) + +SELECT count(*) from test__int WHERE a = '{73,23,20}'; + count +------- + 1 +(1 row) + SELECT count(*) from test__int WHERE a @@ '50&68'; count ------- @@ -524,6 +585,18 @@ 21 (1 row) +SELECT count(*) from test__int WHERE a @@ '20 | !21'; + count +------- + 6566 +(1 row) + +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; + count +------- + 6343 +(1 row) + DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gin ( a gin__int_ops ); SELECT count(*) from test__int WHERE a && '{23,50}'; @@ -556,6 +629,18 @@ 12 (1 row) +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; + count +------- + 10 +(1 row) + +SELECT count(*) from test__int WHERE a = '{73,23,20}'; + count +------- + 1 +(1 row) + SELECT count(*) from test__int WHERE a @@ '50&68'; count ------- @@ -574,3 +659,16 @@ 21 (1 row) +SELECT count(*) from test__int WHERE a @@ '20 | !21'; + count +------- + 6566 +(1 row) + +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; + count +------- + 6343 +(1 row) + +RESET enable_seqscan; diff -Nru postgresql-10-10.10/contrib/intarray/_intbig_gist.c postgresql-10-10.12/contrib/intarray/_intbig_gist.c --- postgresql-10-10.10/contrib/intarray/_intbig_gist.c 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/intarray/_intbig_gist.c 2020-02-10 22:19:45.000000000 +0000 @@ -591,7 +591,13 @@ } } else - retval = _intbig_overlap((GISTTYPE *) DatumGetPointer(entry->key), query); + { + /* + * Unfortunately, because empty arrays could be anywhere in + * the index, we must search the whole tree. + */ + retval = true; + } break; default: retval = FALSE; diff -Nru postgresql-10-10.10/contrib/intarray/_int_gist.c postgresql-10-10.12/contrib/intarray/_int_gist.c --- postgresql-10-10.10/contrib/intarray/_int_gist.c 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/intarray/_int_gist.c 2020-02-10 22:19:45.000000000 +0000 @@ -96,8 +96,13 @@ retval = inner_int_contains(query, (ArrayType *) DatumGetPointer(entry->key)); else - retval = inner_int_overlap((ArrayType *) DatumGetPointer(entry->key), - query); + { + /* + * Unfortunately, because empty arrays could be anywhere in + * the index, we must search the whole tree. + */ + retval = true; + } break; default: retval = FALSE; diff -Nru postgresql-10-10.10/contrib/intarray/sql/_int.sql postgresql-10-10.12/contrib/intarray/sql/_int.sql --- postgresql-10-10.10/contrib/intarray/sql/_int.sql 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/intarray/sql/_int.sql 2020-02-10 22:19:45.000000000 +0000 @@ -81,9 +81,15 @@ SELECT count(*) from test__int WHERE a @> '{23,50}'; SELECT count(*) from test__int WHERE a @@ '23&50'; SELECT count(*) from test__int WHERE a @> '{20,23}'; +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; +SELECT count(*) from test__int WHERE a = '{73,23,20}'; SELECT count(*) from test__int WHERE a @@ '50&68'; SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; +SELECT count(*) from test__int WHERE a @@ '20 | !21'; +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; + +SET enable_seqscan = off; -- not all of these would use index by default CREATE INDEX text_idx on test__int using gist ( a gist__int_ops ); @@ -92,9 +98,13 @@ SELECT count(*) from test__int WHERE a @> '{23,50}'; SELECT count(*) from test__int WHERE a @@ '23&50'; SELECT count(*) from test__int WHERE a @> '{20,23}'; +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; +SELECT count(*) from test__int WHERE a = '{73,23,20}'; SELECT count(*) from test__int WHERE a @@ '50&68'; SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; +SELECT count(*) from test__int WHERE a @@ '20 | !21'; +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gist ( a gist__intbig_ops ); @@ -104,9 +114,13 @@ SELECT count(*) from test__int WHERE a @> '{23,50}'; SELECT count(*) from test__int WHERE a @@ '23&50'; SELECT count(*) from test__int WHERE a @> '{20,23}'; +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; +SELECT count(*) from test__int WHERE a = '{73,23,20}'; SELECT count(*) from test__int WHERE a @@ '50&68'; SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; +SELECT count(*) from test__int WHERE a @@ '20 | !21'; +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; DROP INDEX text_idx; CREATE INDEX text_idx on test__int using gin ( a gin__int_ops ); @@ -116,6 +130,12 @@ SELECT count(*) from test__int WHERE a @> '{23,50}'; SELECT count(*) from test__int WHERE a @@ '23&50'; SELECT count(*) from test__int WHERE a @> '{20,23}'; +SELECT count(*) from test__int WHERE a <@ '{73,23,20}'; +SELECT count(*) from test__int WHERE a = '{73,23,20}'; SELECT count(*) from test__int WHERE a @@ '50&68'; SELECT count(*) from test__int WHERE a @> '{20,23}' or a @> '{50,68}'; SELECT count(*) from test__int WHERE a @@ '(20&23)|(50&68)'; +SELECT count(*) from test__int WHERE a @@ '20 | !21'; +SELECT count(*) from test__int WHERE a @@ '!20 & !21'; + +RESET enable_seqscan; diff -Nru postgresql-10-10.10/contrib/postgres_fdw/connection.c postgresql-10-10.12/contrib/postgres_fdw/connection.c --- postgresql-10-10.10/contrib/postgres_fdw/connection.c 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/postgres_fdw/connection.c 2020-02-10 22:19:45.000000000 +0000 @@ -719,17 +719,17 @@ case XACT_EVENT_PRE_PREPARE: /* - * We disallow remote transactions that modified anything, - * since it's not very reasonable to hold them open until - * the prepared transaction is committed. For the moment, - * throw error unconditionally; later we might allow - * read-only cases. Note that the error will cause us to - * come right back here with event == XACT_EVENT_ABORT, so - * we'll clean up the connection state at that point. + * We disallow any remote transactions, since it's not + * very reasonable to hold them open until the prepared + * transaction is committed. For the moment, throw error + * unconditionally; later we might allow read-only cases. + * Note that the error will cause us to come right back + * here with event == XACT_EVENT_ABORT, so we'll clean up + * the connection state at that point. */ ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("cannot prepare a transaction that modified remote tables"))); + errmsg("cannot PREPARE a transaction that has operated on postgres_fdw foreign tables"))); break; case XACT_EVENT_PARALLEL_COMMIT: case XACT_EVENT_COMMIT: diff -Nru postgresql-10-10.10/contrib/postgres_fdw/deparse.c postgresql-10-10.12/contrib/postgres_fdw/deparse.c --- postgresql-10-10.10/contrib/postgres_fdw/deparse.c 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/postgres_fdw/deparse.c 2020-02-10 22:19:45.000000000 +0000 @@ -388,6 +388,22 @@ Param *p = (Param *) node; /* + * If it's a MULTIEXPR Param, punt. We can't tell from here + * whether the referenced sublink/subplan contains any remote + * Vars; if it does, handling that is too complicated to + * consider supporting at present. Fortunately, MULTIEXPR + * Params are not reduced to plain PARAM_EXEC until the end of + * planning, so we can easily detect this case. (Normal + * PARAM_EXEC Params are safe to ship because their values + * come from somewhere else in the plan tree; but a MULTIEXPR + * references a sub-select elsewhere in the same targetlist, + * so we'd be on the hook to evaluate it somehow if we wanted + * to handle such cases as direct foreign updates.) + */ + if (p->paramkind == PARAM_MULTIEXPR) + return false; + + /* * Collation rule is same as for Consts and non-foreign Vars. */ collation = p->paramcollid; diff -Nru postgresql-10-10.10/contrib/postgres_fdw/expected/postgres_fdw.out postgresql-10-10.12/contrib/postgres_fdw/expected/postgres_fdw.out --- postgresql-10-10.10/contrib/postgres_fdw/expected/postgres_fdw.out 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/postgres_fdw/expected/postgres_fdw.out 2020-02-10 22:19:45.000000000 +0000 @@ -134,8 +134,8 @@ -- =================================================================== -- tests for validator -- =================================================================== --- requiressl, krbsrvname and gsslib are omitted because they depend on --- configure options +-- requiressl and some other parameters are omitted because +-- valid values for them depend on configure options ALTER SERVER testserver1 OPTIONS ( use_remote_estimate 'false', updatable 'true', @@ -159,10 +159,10 @@ sslcert 'value', sslkey 'value', sslrootcert 'value', - sslcrl 'value' + sslcrl 'value', --requirepeer 'value', - -- krbsrvname 'value', - -- gsslib 'value', + krbsrvname 'value', + gsslib 'value' --replication 'value' ); -- Error, invalid list syntax @@ -5535,6 +5535,37 @@ ft2 (1 row) +-- Test UPDATE with a MULTIEXPR sub-select +-- (maybe someday this'll be remotely executable, but not today) +EXPLAIN (verbose, costs off) +UPDATE ft2 AS target SET (c2, c7) = ( + SELECT c2 * 10, c7 + FROM ft2 AS src + WHERE target.c1 = src.c1 +) WHERE c1 > 1100; + QUERY PLAN +--------------------------------------------------------------------------------------------------------------------------------------------------- + Update on public.ft2 target + Remote SQL: UPDATE "S 1"."T 1" SET c2 = $2, c7 = $3 WHERE ctid = $1 + -> Foreign Scan on public.ft2 target + Output: target.c1, $1, NULL::integer, target.c3, target.c4, target.c5, target.c6, $2, target.c8, (SubPlan 1 (returns $1,$2)), target.ctid + Remote SQL: SELECT "C 1", c3, c4, c5, c6, c8, ctid FROM "S 1"."T 1" WHERE (("C 1" > 1100)) FOR UPDATE + SubPlan 1 (returns $1,$2) + -> Foreign Scan on public.ft2 src + Output: (src.c2 * 10), src.c7 + Remote SQL: SELECT c2, c7 FROM "S 1"."T 1" WHERE (($1::integer = "C 1")) +(9 rows) + +UPDATE ft2 AS target SET (c2, c7) = ( + SELECT c2 * 10, c7 + FROM ft2 AS src + WHERE target.c1 = src.c1 +) WHERE c1 > 1100; +UPDATE ft2 AS target SET (c2) = ( + SELECT c2 / 10 + FROM ft2 AS src + WHERE target.c1 = src.c1 +) WHERE c1 > 1100; -- Test that trigger on remote table works as expected CREATE OR REPLACE FUNCTION "S 1".F_BRTRIG() RETURNS trigger AS $$ BEGIN diff -Nru postgresql-10-10.10/contrib/postgres_fdw/sql/postgres_fdw.sql postgresql-10-10.12/contrib/postgres_fdw/sql/postgres_fdw.sql --- postgresql-10-10.10/contrib/postgres_fdw/sql/postgres_fdw.sql 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/postgres_fdw/sql/postgres_fdw.sql 2020-02-10 22:19:45.000000000 +0000 @@ -147,8 +147,8 @@ -- =================================================================== -- tests for validator -- =================================================================== --- requiressl, krbsrvname and gsslib are omitted because they depend on --- configure options +-- requiressl and some other parameters are omitted because +-- valid values for them depend on configure options ALTER SERVER testserver1 OPTIONS ( use_remote_estimate 'false', updatable 'true', @@ -172,10 +172,10 @@ sslcert 'value', sslkey 'value', sslrootcert 'value', - sslcrl 'value' + sslcrl 'value', --requirepeer 'value', - -- krbsrvname 'value', - -- gsslib 'value', + krbsrvname 'value', + gsslib 'value' --replication 'value' ); @@ -1138,6 +1138,26 @@ DELETE FROM ft2 WHERE c1 = 9999 RETURNING tableoid::regclass; -- can be pushed down DELETE FROM ft2 WHERE c1 = 9999 RETURNING tableoid::regclass; +-- Test UPDATE with a MULTIEXPR sub-select +-- (maybe someday this'll be remotely executable, but not today) +EXPLAIN (verbose, costs off) +UPDATE ft2 AS target SET (c2, c7) = ( + SELECT c2 * 10, c7 + FROM ft2 AS src + WHERE target.c1 = src.c1 +) WHERE c1 > 1100; +UPDATE ft2 AS target SET (c2, c7) = ( + SELECT c2 * 10, c7 + FROM ft2 AS src + WHERE target.c1 = src.c1 +) WHERE c1 > 1100; + +UPDATE ft2 AS target SET (c2) = ( + SELECT c2 / 10 + FROM ft2 AS src + WHERE target.c1 = src.c1 +) WHERE c1 > 1100; + -- Test that trigger on remote table works as expected CREATE OR REPLACE FUNCTION "S 1".F_BRTRIG() RETURNS trigger AS $$ BEGIN diff -Nru postgresql-10-10.10/contrib/seg/segparse.c postgresql-10-10.12/contrib/seg/segparse.c --- postgresql-10-10.10/contrib/seg/segparse.c 2019-08-05 21:30:54.000000000 +0000 +++ postgresql-10-10.12/contrib/seg/segparse.c 2020-02-10 22:32:37.000000000 +0000 @@ -1,8 +1,9 @@ -/* A Bison parser, made by GNU Bison 3.0.4. */ +/* A Bison parser, made by GNU Bison 3.3.2. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation, + Inc. 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 @@ -40,11 +41,14 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0.4" +#define YYBISON_VERSION "3.3.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -69,8 +73,8 @@ #define yylval seg_yylval #define yychar seg_yychar -/* Copy the first part of user declarations. */ -#line 1 "segparse.y" /* yacc.c:339 */ +/* First part of user prologue. */ +#line 1 "segparse.y" /* yacc.c:337 */ /* contrib/seg/segparse.y */ @@ -105,13 +109,16 @@ }; -#line 109 "segparse.c" /* yacc.c:339 */ - +#line 113 "segparse.c" /* yacc.c:337 */ # ifndef YY_NULLPTR -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULLPTR nullptr +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif # else -# define YY_NULLPTR 0 +# define YY_NULLPTR ((void*)0) # endif # endif @@ -149,7 +156,7 @@ union YYSTYPE { -#line 41 "segparse.y" /* yacc.c:355 */ +#line 41 "segparse.y" /* yacc.c:352 */ struct BND { float val; @@ -158,7 +165,7 @@ } bnd; char * text; -#line 162 "segparse.c" /* yacc.c:355 */ +#line 169 "segparse.c" /* yacc.c:352 */ }; typedef union YYSTYPE YYSTYPE; @@ -173,9 +180,7 @@ -/* Copy the second part of user declarations. */ -#line 179 "segparse.c" /* yacc.c:358 */ #ifdef short # undef short @@ -196,13 +201,13 @@ #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else -typedef unsigned short int yytype_uint16; +typedef unsigned short yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else -typedef short int yytype_int16; +typedef short yytype_int16; #endif #ifndef YYSIZE_T @@ -214,7 +219,7 @@ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif @@ -250,15 +255,6 @@ # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif -#if !defined _Noreturn \ - && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -# if defined _MSC_VER && 1200 <= _MSC_VER -# define _Noreturn __declspec (noreturn) -# else -# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) -# endif -#endif - /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) @@ -266,7 +262,7 @@ # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ @@ -428,16 +424,16 @@ /* YYNSTATES -- Number of states. */ #define YYNSTATES 14 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 261 +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ + as returned by yylex. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -583,22 +579,22 @@ #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - YYPOPSTACK (yylen); \ - yystate = *yyssp; \ - goto yybackup; \ - } \ - else \ - { \ - yyerror (result, YY_("syntax error: cannot back up")); \ - YYERROR; \ - } \ -while (0) +#define YYBACKUP(Token, Value) \ + do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ + yyerror (result, YY_("syntax error: cannot back up")); \ + YYERROR; \ + } \ + while (0) /* Error token number */ #define YYTERROR 1 @@ -638,38 +634,38 @@ } while (0) -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SEG *result) +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result) { - FILE *yyo = yyoutput; - YYUSE (yyo); + FILE *yyoutput = yyo; + YYUSE (yyoutput); YYUSE (result); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, SEG *result) +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, SEG *result) { - YYFPRINTF (yyoutput, "%s %s (", + YYFPRINTF (yyo, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - yy_symbol_value_print (yyoutput, yytype, yyvaluep, result); - YYFPRINTF (yyoutput, ")"); + yy_symbol_value_print (yyo, yytype, yyvaluep, result); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -703,7 +699,7 @@ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, SEG *result) { - unsigned long int yylno = yyrline[yyrule]; + unsigned long yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", @@ -714,7 +710,7 @@ YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) + &yyvsp[(yyi + 1) - (yynrhs)] , result); YYFPRINTF (stderr, "\n"); } @@ -818,7 +814,10 @@ case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - /* Fall through. */ + else + goto append; + + append: default: if (yyres) yyres[yyn] = *yyp; @@ -836,7 +835,7 @@ if (! yyres) return yystrlen (yystr); - return yystpcpy (yyres, yystr) - yyres; + return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres); } # endif @@ -914,10 +913,10 @@ yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } } } @@ -929,6 +928,7 @@ case N: \ yyformat = S; \ break + default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); @@ -940,9 +940,10 @@ { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } if (*yymsg_alloc < yysize) @@ -1069,23 +1070,31 @@ yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yynewstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + *yyssp = (yytype_int16) yystate; if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1); -#ifdef yyoverflow +# if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into @@ -1101,14 +1110,10 @@ &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); - yyss = yyss1; yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; @@ -1124,22 +1129,22 @@ goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + (unsigned long) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); @@ -1148,11 +1153,11 @@ goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ @@ -1225,7 +1230,7 @@ /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ @@ -1246,7 +1251,7 @@ switch (yyn) { case 2: -#line 62 "segparse.y" /* yacc.c:1646 */ +#line 62 "segparse.y" /* yacc.c:1652 */ { result->lower = (yyvsp[-2].bnd).val - (yyvsp[0].bnd).val; result->upper = (yyvsp[-2].bnd).val + (yyvsp[0].bnd).val; @@ -1257,11 +1262,11 @@ result->l_ext = '\0'; result->u_ext = '\0'; } -#line 1261 "segparse.c" /* yacc.c:1646 */ +#line 1266 "segparse.c" /* yacc.c:1652 */ break; case 3: -#line 74 "segparse.y" /* yacc.c:1646 */ +#line 74 "segparse.y" /* yacc.c:1652 */ { result->lower = (yyvsp[-2].bnd).val; result->upper = (yyvsp[0].bnd).val; @@ -1278,11 +1283,11 @@ result->l_ext = ( (yyvsp[-2].bnd).ext ? (yyvsp[-2].bnd).ext : '\0' ); result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' ); } -#line 1282 "segparse.c" /* yacc.c:1646 */ +#line 1287 "segparse.c" /* yacc.c:1652 */ break; case 4: -#line 92 "segparse.y" /* yacc.c:1646 */ +#line 92 "segparse.y" /* yacc.c:1652 */ { result->lower = (yyvsp[-1].bnd).val; result->upper = HUGE_VAL; @@ -1291,11 +1296,11 @@ result->l_ext = ( (yyvsp[-1].bnd).ext ? (yyvsp[-1].bnd).ext : '\0' ); result->u_ext = '-'; } -#line 1295 "segparse.c" /* yacc.c:1646 */ +#line 1300 "segparse.c" /* yacc.c:1652 */ break; case 5: -#line 102 "segparse.y" /* yacc.c:1646 */ +#line 102 "segparse.y" /* yacc.c:1652 */ { result->lower = -HUGE_VAL; result->upper = (yyvsp[0].bnd).val; @@ -1304,21 +1309,21 @@ result->l_ext = '-'; result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' ); } -#line 1308 "segparse.c" /* yacc.c:1646 */ +#line 1313 "segparse.c" /* yacc.c:1652 */ break; case 6: -#line 112 "segparse.y" /* yacc.c:1646 */ +#line 112 "segparse.y" /* yacc.c:1652 */ { result->lower = result->upper = (yyvsp[0].bnd).val; result->l_sigd = result->u_sigd = (yyvsp[0].bnd).sigd; result->l_ext = result->u_ext = ( (yyvsp[0].bnd).ext ? (yyvsp[0].bnd).ext : '\0' ); } -#line 1318 "segparse.c" /* yacc.c:1646 */ +#line 1323 "segparse.c" /* yacc.c:1652 */ break; case 7: -#line 120 "segparse.y" /* yacc.c:1646 */ +#line 120 "segparse.y" /* yacc.c:1652 */ { /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ float val = seg_atof((yyvsp[0].text)); @@ -1327,11 +1332,11 @@ (yyval.bnd).sigd = significant_digits((yyvsp[0].text)); (yyval.bnd).val = val; } -#line 1331 "segparse.c" /* yacc.c:1646 */ +#line 1336 "segparse.c" /* yacc.c:1652 */ break; case 8: -#line 129 "segparse.y" /* yacc.c:1646 */ +#line 129 "segparse.y" /* yacc.c:1652 */ { /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ float val = seg_atof((yyvsp[0].text)); @@ -1340,11 +1345,11 @@ (yyval.bnd).sigd = significant_digits((yyvsp[0].text)); (yyval.bnd).val = val; } -#line 1344 "segparse.c" /* yacc.c:1646 */ +#line 1349 "segparse.c" /* yacc.c:1652 */ break; case 9: -#line 140 "segparse.y" /* yacc.c:1646 */ +#line 140 "segparse.y" /* yacc.c:1652 */ { /* temp variable avoids a gcc 3.3.x bug on Sparc64 */ float val = seg_atof((yyvsp[0].text)); @@ -1353,11 +1358,11 @@ (yyval.bnd).sigd = significant_digits((yyvsp[0].text)); (yyval.bnd).val = val; } -#line 1357 "segparse.c" /* yacc.c:1646 */ +#line 1362 "segparse.c" /* yacc.c:1652 */ break; -#line 1361 "segparse.c" /* yacc.c:1646 */ +#line 1366 "segparse.c" /* yacc.c:1652 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -1382,14 +1387,13 @@ /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; @@ -1472,12 +1476,10 @@ | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ @@ -1539,6 +1541,7 @@ yyresult = 0; goto yyreturn; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -1546,6 +1549,7 @@ yyresult = 1; goto yyreturn; + #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | @@ -1556,6 +1560,10 @@ /* Fall through. */ #endif + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -1585,7 +1593,7 @@ #endif return yyresult; } -#line 150 "segparse.y" /* yacc.c:1906 */ +#line 150 "segparse.y" /* yacc.c:1918 */ diff -Nru postgresql-10-10.10/contrib/seg/segscan.c postgresql-10-10.12/contrib/seg/segscan.c --- postgresql-10-10.10/contrib/seg/segscan.c 2019-08-05 21:30:54.000000000 +0000 +++ postgresql-10-10.12/contrib/seg/segscan.c 2020-02-10 22:32:37.000000000 +0000 @@ -8,11 +8,17 @@ #define yy_create_buffer seg_yy_create_buffer #define yy_delete_buffer seg_yy_delete_buffer -#define yy_flex_debug seg_yy_flex_debug +#define yy_scan_buffer seg_yy_scan_buffer +#define yy_scan_string seg_yy_scan_string +#define yy_scan_bytes seg_yy_scan_bytes #define yy_init_buffer seg_yy_init_buffer #define yy_flush_buffer seg_yy_flush_buffer #define yy_load_buffer_state seg_yy_load_buffer_state #define yy_switch_to_buffer seg_yy_switch_to_buffer +#define yypush_buffer_state seg_yypush_buffer_state +#define yypop_buffer_state seg_yypop_buffer_state +#define yyensure_buffer_stack seg_yyensure_buffer_stack +#define yy_flex_debug seg_yy_flex_debug #define yyin seg_yyin #define yyleng seg_yyleng #define yylex seg_yylex @@ -28,11 +34,245 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 6 -#define YY_FLEX_SUBMINOR_VERSION 1 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif +#ifdef yy_create_buffer +#define seg_yy_create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer seg_yy_create_buffer +#endif + +#ifdef yy_delete_buffer +#define seg_yy_delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer seg_yy_delete_buffer +#endif + +#ifdef yy_scan_buffer +#define seg_yy_scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer seg_yy_scan_buffer +#endif + +#ifdef yy_scan_string +#define seg_yy_scan_string_ALREADY_DEFINED +#else +#define yy_scan_string seg_yy_scan_string +#endif + +#ifdef yy_scan_bytes +#define seg_yy_scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes seg_yy_scan_bytes +#endif + +#ifdef yy_init_buffer +#define seg_yy_init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer seg_yy_init_buffer +#endif + +#ifdef yy_flush_buffer +#define seg_yy_flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer seg_yy_flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define seg_yy_load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state seg_yy_load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define seg_yy_switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer seg_yy_switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define seg_yypush_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state seg_yypush_buffer_state +#endif + +#ifdef yypop_buffer_state +#define seg_yypop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state seg_yypop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define seg_yyensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack seg_yyensure_buffer_stack +#endif + +#ifdef yylex +#define seg_yylex_ALREADY_DEFINED +#else +#define yylex seg_yylex +#endif + +#ifdef yyrestart +#define seg_yyrestart_ALREADY_DEFINED +#else +#define yyrestart seg_yyrestart +#endif + +#ifdef yylex_init +#define seg_yylex_init_ALREADY_DEFINED +#else +#define yylex_init seg_yylex_init +#endif + +#ifdef yylex_init_extra +#define seg_yylex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra seg_yylex_init_extra +#endif + +#ifdef yylex_destroy +#define seg_yylex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy seg_yylex_destroy +#endif + +#ifdef yyget_debug +#define seg_yyget_debug_ALREADY_DEFINED +#else +#define yyget_debug seg_yyget_debug +#endif + +#ifdef yyset_debug +#define seg_yyset_debug_ALREADY_DEFINED +#else +#define yyset_debug seg_yyset_debug +#endif + +#ifdef yyget_extra +#define seg_yyget_extra_ALREADY_DEFINED +#else +#define yyget_extra seg_yyget_extra +#endif + +#ifdef yyset_extra +#define seg_yyset_extra_ALREADY_DEFINED +#else +#define yyset_extra seg_yyset_extra +#endif + +#ifdef yyget_in +#define seg_yyget_in_ALREADY_DEFINED +#else +#define yyget_in seg_yyget_in +#endif + +#ifdef yyset_in +#define seg_yyset_in_ALREADY_DEFINED +#else +#define yyset_in seg_yyset_in +#endif + +#ifdef yyget_out +#define seg_yyget_out_ALREADY_DEFINED +#else +#define yyget_out seg_yyget_out +#endif + +#ifdef yyset_out +#define seg_yyset_out_ALREADY_DEFINED +#else +#define yyset_out seg_yyset_out +#endif + +#ifdef yyget_leng +#define seg_yyget_leng_ALREADY_DEFINED +#else +#define yyget_leng seg_yyget_leng +#endif + +#ifdef yyget_text +#define seg_yyget_text_ALREADY_DEFINED +#else +#define yyget_text seg_yyget_text +#endif + +#ifdef yyget_lineno +#define seg_yyget_lineno_ALREADY_DEFINED +#else +#define yyget_lineno seg_yyget_lineno +#endif + +#ifdef yyset_lineno +#define seg_yyset_lineno_ALREADY_DEFINED +#else +#define yyset_lineno seg_yyset_lineno +#endif + +#ifdef yywrap +#define seg_yywrap_ALREADY_DEFINED +#else +#define yywrap seg_yywrap +#endif + +#ifdef yyalloc +#define seg_yyalloc_ALREADY_DEFINED +#else +#define yyalloc seg_yyalloc +#endif + +#ifdef yyrealloc +#define seg_yyrealloc_ALREADY_DEFINED +#else +#define yyrealloc seg_yyrealloc +#endif + +#ifdef yyfree +#define seg_yyfree_ALREADY_DEFINED +#else +#define yyfree seg_yyfree +#endif + +#ifdef yytext +#define seg_yytext_ALREADY_DEFINED +#else +#define yytext seg_yytext +#endif + +#ifdef yyleng +#define seg_yyleng_ALREADY_DEFINED +#else +#define yyleng seg_yyleng +#endif + +#ifdef yyin +#define seg_yyin_ALREADY_DEFINED +#else +#define yyin seg_yyin +#endif + +#ifdef yyout +#define seg_yyout_ALREADY_DEFINED +#else +#define yyout seg_yyout +#endif + +#ifdef yy_flex_debug +#define seg_yy_flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug seg_yy_flex_debug +#endif + +#ifdef yylineno +#define seg_yylineno_ALREADY_DEFINED +#else +#define yylineno seg_yylineno +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ @@ -103,10 +343,16 @@ #define UINT32_MAX (4294967295U) #endif +#ifndef SIZE_MAX +#define SIZE_MAX (~(size_t)0) +#endif + #endif /* ! C99 */ #endif /* ! FLEXINT_H */ +/* begin standard C++ headers. */ + /* TODO: this is always defined, so inline it */ #define yyconst const @@ -119,32 +365,26 @@ /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE seg_yyrestart(seg_yyin ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ @@ -174,14 +414,14 @@ typedef size_t yy_size_t; #endif -extern int seg_yyleng; +extern int yyleng; -extern FILE *seg_yyin, *seg_yyout; +extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) #define YY_LINENO_REWIND_TO(ptr) @@ -189,16 +429,15 @@ #define yyless(n) \ do \ { \ - /* Undo effects of setting up seg_yytext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up seg_yytext again */ \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -258,8 +497,8 @@ * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via seg_yyrestart()), so that the user can continue scanning by - * just pointing seg_yyin at a new input file. + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -280,109 +519,101 @@ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -/* yy_hold_char holds the character lost when seg_yytext is formed. */ +/* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int seg_yyleng; +int yyleng; /* Points to current character in buffer. */ static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ -/* Flag which is used to allow seg_yywrap()'s to do buffer switches - * instead of setting up a fresh seg_yyin. A bit of a hack ... +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; -void seg_yyrestart (FILE *input_file ); -void seg_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE seg_yy_create_buffer (FILE *file,int size ); -void seg_yy_delete_buffer (YY_BUFFER_STATE b ); -void seg_yy_flush_buffer (YY_BUFFER_STATE b ); -void seg_yypush_buffer_state (YY_BUFFER_STATE new_buffer ); -void seg_yypop_buffer_state (void ); - -static void seg_yyensure_buffer_stack (void ); -static void seg_yy_load_buffer_state (void ); -static void seg_yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); - -#define YY_FLUSH_BUFFER seg_yy_flush_buffer(YY_CURRENT_BUFFER ) - -YY_BUFFER_STATE seg_yy_scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE seg_yy_scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE seg_yy_scan_bytes (yyconst char *bytes,int len ); - -void *seg_yyalloc (yy_size_t ); -void *seg_yyrealloc (void *,yy_size_t ); -void seg_yyfree (void * ); - -#define yy_new_buffer seg_yy_create_buffer +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); + +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) + +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); + +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - seg_yyensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - seg_yyensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ #define seg_yywrap() (/*CONSTCOND*/1) #define YY_SKIP_YYWRAP +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *seg_yyin = NULL, *seg_yyout = NULL; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; -extern int seg_yylineno; +extern int yylineno; +int yylineno = 1; -int seg_yylineno = 1; - -extern char *seg_yytext; +extern char *yytext; #ifdef yytext_ptr #undef yytext_ptr #endif -#define yytext_ptr seg_yytext +#define yytext_ptr yytext -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yynoreturn yy_fatal_error (yyconst char* msg ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the - * corresponding action - sets up seg_yytext. + * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - seg_yyleng = (int) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 9 #define YY_END_OF_BUFFER 10 /* This struct is not used in this scanner, @@ -392,14 +623,14 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[30] = +static const flex_int16_t yy_accept[30] = { 0, 0, 0, 10, 8, 7, 7, 8, 8, 8, 8, 3, 4, 5, 6, 7, 0, 0, 3, 1, 0, 0, 0, 0, 1, 3, 0, 3, 2, 0 } ; -static yyconst YY_CHAR yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, @@ -431,27 +662,27 @@ 1, 1, 1, 1, 1 } ; -static yyconst YY_CHAR yy_meta[15] = +static const YY_CHAR yy_meta[15] = { 0, 1, 1, 1, 1, 1, 1, 2, 2, 1, 2, 1, 1, 1, 1 } ; -static yyconst flex_uint16_t yy_base[31] = +static const flex_int16_t yy_base[31] = { 0, 0, 0, 40, 41, 13, 15, 32, 31, 27, 27, 10, 41, 41, 41, 19, 27, 26, 0, 24, 22, 21, 26, 23, 41, 14, 18, 16, 41, 41, 23 } ; -static yyconst flex_int16_t yy_def[31] = +static const flex_int16_t yy_def[31] = { 0, 29, 1, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 11, 29, 29, 30, 29, 29, 29, 29, 29, 29, 29, 0, 29 } ; -static yyconst flex_uint16_t yy_nxt[56] = +static const flex_int16_t yy_nxt[56] = { 0, 4, 5, 6, 7, 8, 4, 9, 9, 10, 11, 12, 13, 4, 14, 15, 15, 15, 15, 20, 18, @@ -461,7 +692,7 @@ 29, 29, 29, 29, 29 } ; -static yyconst flex_int16_t yy_chk[56] = +static const flex_int16_t yy_chk[56] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 6, 6, 11, 11, @@ -474,8 +705,8 @@ static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -extern int seg_yy_flex_debug; -int seg_yy_flex_debug = 0; +extern int yy_flex_debug; +int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -484,7 +715,7 @@ #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *seg_yytext; +char *yytext; #line 1 "segscan.l" #line 2 "segscan.l" /* @@ -508,8 +739,9 @@ static YY_BUFFER_STATE scanbufhandle; static char *scanbuf; static int scanbuflen; +#line 743 "segscan.c" #define YY_NO_INPUT 1 -#line 513 "segscan.c" +#line 745 "segscan.c" #define INITIAL 0 @@ -525,36 +757,36 @@ #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int seg_yylex_destroy (void ); +int yylex_destroy ( void ); -int seg_yyget_debug (void ); +int yyget_debug ( void ); -void seg_yyset_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE seg_yyget_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void seg_yyset_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *seg_yyget_in (void ); +FILE *yyget_in ( void ); -void seg_yyset_in (FILE * _in_str ); +void yyset_in ( FILE * _in_str ); -FILE *seg_yyget_out (void ); +FILE *yyget_out ( void ); -void seg_yyset_out (FILE * _out_str ); +void yyset_out ( FILE * _out_str ); - int seg_yyget_leng (void ); + int yyget_leng ( void ); -char *seg_yyget_text (void ); +char *yyget_text ( void ); -int seg_yyget_lineno (void ); +int yyget_lineno ( void ); -void seg_yyset_lineno (int _line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -562,9 +794,9 @@ #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int seg_yywrap (void ); +extern "C" int yywrap ( void ); #else -extern int seg_yywrap (void ); +extern int yywrap ( void ); #endif #endif @@ -573,19 +805,18 @@ #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif @@ -605,7 +836,7 @@ /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( seg_yytext, (size_t) seg_yyleng, 1, seg_yyout )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -616,20 +847,20 @@ if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ - (c = getc( seg_yyin )) != EOF && c != '\n'; ++n ) \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( seg_yyin ) ) \ + if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ - while ( (result = (int) fread(buf, 1, max_size, seg_yyin))==0 && ferror(seg_yyin)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -637,7 +868,7 @@ break; \ } \ errno=0; \ - clearerr(seg_yyin); \ + clearerr(yyin); \ } \ }\ \ @@ -670,12 +901,12 @@ #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int seg_yylex (void); +extern int yylex (void); -#define YY_DECL int seg_yylex (void) +#define YY_DECL int yylex (void) #endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after seg_yytext and seg_yyleng +/* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION @@ -709,32 +940,32 @@ if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ - if ( ! seg_yyin ) - seg_yyin = stdin; + if ( ! yyin ) + yyin = stdin; - if ( ! seg_yyout ) - seg_yyout = stdout; + if ( ! yyout ) + yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { - seg_yyensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - seg_yy_load_buffer_state( ); + yy_load_buffer_state( ); } { #line 41 "segscan.l" -#line 732 "segscan.c" +#line 963 "segscan.c" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); - /* Support of seg_yytext. */ + /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of @@ -756,9 +987,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 30 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 29 ); @@ -784,17 +1015,17 @@ case 1: YY_RULE_SETUP #line 43 "segscan.l" -yylval.text = seg_yytext; return RANGE; +yylval.text = yytext; return RANGE; YY_BREAK case 2: YY_RULE_SETUP #line 44 "segscan.l" -yylval.text = seg_yytext; return PLUMIN; +yylval.text = yytext; return PLUMIN; YY_BREAK case 3: YY_RULE_SETUP #line 45 "segscan.l" -yylval.text = seg_yytext; return SEGFLOAT; +yylval.text = yytext; return SEGFLOAT; YY_BREAK case 4: YY_RULE_SETUP @@ -820,14 +1051,14 @@ case 8: YY_RULE_SETUP #line 50 "segscan.l" -return seg_yytext[0]; /* alert parser of the garbage */ +return yytext[0]; /* alert parser of the garbage */ YY_BREAK case 9: YY_RULE_SETUP #line 52 "segscan.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 831 "segscan.c" +#line 1062 "segscan.c" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -844,15 +1075,15 @@ { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed seg_yyin at a new source and called - * seg_yylex(). If so, then we have to assure + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = seg_yyin; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -906,11 +1137,11 @@ { (yy_did_buffer_switch_on_eof) = 0; - if ( seg_yywrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * seg_yytext, we can now set up + * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the @@ -960,7 +1191,7 @@ } /* end of action switch */ } /* end of scanning one token */ } /* end of user's declarations */ -} /* end of seg_yylex */ +} /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1038,7 +1269,8 @@ b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - seg_yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ @@ -1070,7 +1302,7 @@ if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - seg_yyrestart(seg_yyin ); + yyrestart( yyin ); } else @@ -1087,9 +1319,12 @@ if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) seg_yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1122,9 +1357,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 30 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1150,9 +1385,9 @@ { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 30 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 29); return yy_is_jam ? 0 : yy_current_state; @@ -1186,7 +1421,7 @@ else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1203,13 +1438,13 @@ */ /* Reset buffer status. */ - seg_yyrestart(seg_yyin ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( seg_yywrap( ) ) + if ( yywrap( ) ) return 0; if ( ! (yy_did_buffer_switch_on_eof) ) @@ -1229,7 +1464,7 @@ } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve seg_yytext */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); return c; @@ -1241,32 +1476,32 @@ * * @note This function does not reset the start condition to @c INITIAL . */ - void seg_yyrestart (FILE * input_file ) + void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ - seg_yyensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - seg_yy_create_buffer(seg_yyin,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - seg_yy_init_buffer(YY_CURRENT_BUFFER,input_file ); - seg_yy_load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ - void seg_yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with - * seg_yypop_buffer_state(); - * seg_yypush_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - seg_yyensure_buffer_stack (); + yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -1279,21 +1514,21 @@ } YY_CURRENT_BUFFER_LVALUE = new_buffer; - seg_yy_load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (seg_yywrap()) processing, but the only time this flag - * is looked at is after seg_yywrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } -static void seg_yy_load_buffer_state (void) +static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - seg_yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } @@ -1303,35 +1538,35 @@ * * @return the allocated buffer state. */ - YY_BUFFER_STATE seg_yy_create_buffer (FILE * file, int size ) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) seg_yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in seg_yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - b->yy_buf_size = (yy_size_t)size; + b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) seg_yyalloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in seg_yy_create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - seg_yy_init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } /** Destroy the buffer. - * @param b a buffer created with seg_yy_create_buffer() + * @param b a buffer created with yy_create_buffer() * */ - void seg_yy_delete_buffer (YY_BUFFER_STATE b ) + void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) @@ -1341,27 +1576,27 @@ YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - seg_yyfree((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - seg_yyfree((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a seg_yyrestart() or at EOF. + * such as during a yyrestart() or at EOF. */ - static void seg_yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; - seg_yy_flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; - /* If b is the current buffer, then seg_yy_init_buffer was _probably_ - * called from seg_yyrestart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -1378,7 +1613,7 @@ * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ - void seg_yy_flush_buffer (YY_BUFFER_STATE b ) + void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; @@ -1398,7 +1633,7 @@ b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - seg_yy_load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -1407,14 +1642,14 @@ * @param new_buffer The new state. * */ -void seg_yypush_buffer_state (YY_BUFFER_STATE new_buffer ) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; - seg_yyensure_buffer_stack(); + yyensure_buffer_stack(); - /* This block is copied from seg_yy_switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -1428,8 +1663,8 @@ (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from seg_yy_switch_to_buffer. */ - seg_yy_load_buffer_state( ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -1437,18 +1672,18 @@ * The next element becomes the new top. * */ -void seg_yypop_buffer_state (void) +void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; - seg_yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - seg_yy_load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -1456,9 +1691,9 @@ /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void seg_yyensure_buffer_stack (void) +static void yyensure_buffer_stack (void) { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -1467,11 +1702,11 @@ * immediate realloc on the next call. */ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)seg_yyalloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in seg_yyensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); @@ -1486,12 +1721,12 @@ yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)seg_yyrealloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in seg_yyensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -1505,7 +1740,7 @@ * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE seg_yy_scan_buffer (char * base, yy_size_t size ) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; @@ -1515,11 +1750,11 @@ /* They forgot to leave room for the EOB's. */ return NULL; - b = (YY_BUFFER_STATE) seg_yyalloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in seg_yy_scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; b->yy_input_file = NULL; @@ -1529,33 +1764,33 @@ b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - seg_yy_switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } -/** Setup the input buffer state to scan a string. The next call to seg_yylex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * seg_yy_scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE seg_yy_scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return seg_yy_scan_bytes(yystr,(int) strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } -/** Setup the input buffer state to scan the given bytes. The next call to seg_yylex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE seg_yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; @@ -1564,18 +1799,18 @@ /* Get memory for full buffer, including space for trailing EOB's. */ n = (yy_size_t) (_yybytes_len + 2); - buf = (char *) seg_yyalloc(n ); + buf = (char *) yyalloc( n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in seg_yy_scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = seg_yy_scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in seg_yy_scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -1589,9 +1824,9 @@ #define YY_EXIT_FAILURE 2 #endif -static void yynoreturn yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -1601,14 +1836,14 @@ #define yyless(n) \ do \ { \ - /* Undo effects of setting up seg_yytext. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ - seg_yytext[seg_yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = seg_yytext + yyless_macro_arg; \ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ - seg_yyleng = yyless_macro_arg; \ + yyleng = yyless_macro_arg; \ } \ while ( 0 ) @@ -1617,85 +1852,85 @@ /** Get the current line number. * */ -int seg_yyget_lineno (void) +int yyget_lineno (void) { - return seg_yylineno; + return yylineno; } /** Get the input stream. * */ -FILE *seg_yyget_in (void) +FILE *yyget_in (void) { - return seg_yyin; + return yyin; } /** Get the output stream. * */ -FILE *seg_yyget_out (void) +FILE *yyget_out (void) { - return seg_yyout; + return yyout; } /** Get the length of the current token. * */ -int seg_yyget_leng (void) +int yyget_leng (void) { - return seg_yyleng; + return yyleng; } /** Get the current token. * */ -char *seg_yyget_text (void) +char *yyget_text (void) { - return seg_yytext; + return yytext; } /** Set the current line number. * @param _line_number line number * */ -void seg_yyset_lineno (int _line_number ) +void yyset_lineno (int _line_number ) { - seg_yylineno = _line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. * @param _in_str A readable stream. * - * @see seg_yy_switch_to_buffer + * @see yy_switch_to_buffer */ -void seg_yyset_in (FILE * _in_str ) +void yyset_in (FILE * _in_str ) { - seg_yyin = _in_str ; + yyin = _in_str ; } -void seg_yyset_out (FILE * _out_str ) +void yyset_out (FILE * _out_str ) { - seg_yyout = _out_str ; + yyout = _out_str ; } -int seg_yyget_debug (void) +int yyget_debug (void) { - return seg_yy_flex_debug; + return yy_flex_debug; } -void seg_yyset_debug (int _bdebug ) +void yyset_debug (int _bdebug ) { - seg_yy_flex_debug = _bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. - * This function is called from seg_yylex_destroy(), so don't allocate here. + * This function is called from yylex_destroy(), so don't allocate here. */ (yy_buffer_stack) = NULL; @@ -1707,36 +1942,36 @@ /* Defined in main.c */ #ifdef YY_STDINIT - seg_yyin = stdin; - seg_yyout = stdout; + yyin = stdin; + yyout = stdout; #else - seg_yyin = NULL; - seg_yyout = NULL; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * seg_yylex_init() + * yylex_init() */ return 0; } -/* seg_yylex_destroy is for both reentrant and non-reentrant scanners. */ -int seg_yylex_destroy (void) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - seg_yy_delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; - seg_yypop_buffer_state(); + yypop_buffer_state(); } /* Destroy the stack itself. */ - seg_yyfree((yy_buffer_stack) ); + yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * seg_yylex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; @@ -1747,7 +1982,7 @@ */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { int i; @@ -1757,7 +1992,7 @@ #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { int n; for ( n = 0; s[n]; ++n ) @@ -1767,12 +2002,12 @@ } #endif -void *seg_yyalloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { return malloc(size); } -void *seg_yyrealloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { /* The cast to (char *) in the following accommodates both @@ -1785,9 +2020,9 @@ return realloc(ptr, size); } -void seg_yyfree (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see seg_yyrealloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } #define YYTABLES_NAME "yytables" @@ -1795,11 +2030,10 @@ #line 52 "segscan.l" - void yyerror(SEG *result, const char *message) { - if (*seg_yytext == YY_END_OF_BUFFER_CHAR) + if (*yytext == YY_END_OF_BUFFER_CHAR) { ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), @@ -1813,7 +2047,7 @@ (errcode(ERRCODE_SYNTAX_ERROR), errmsg("bad seg representation"), /* translator: first %s is typically "syntax error" */ - errdetail("%s at or near \"%s\"", message, seg_yytext))); + errdetail("%s at or near \"%s\"", message, yytext))); } } @@ -1830,7 +2064,7 @@ * Might be left over after ereport() */ if (YY_CURRENT_BUFFER) - seg_yy_delete_buffer(YY_CURRENT_BUFFER); + yy_delete_buffer(YY_CURRENT_BUFFER); /* * Make a scan buffer with special termination needed by flex. @@ -1839,7 +2073,7 @@ scanbuf = palloc(slen + 2); memcpy(scanbuf, str, slen); scanbuf[slen] = scanbuf[slen + 1] = YY_END_OF_BUFFER_CHAR; - scanbufhandle = seg_yy_scan_buffer(scanbuf,slen + 2); + scanbufhandle = yy_scan_buffer(scanbuf, slen + 2); BEGIN(INITIAL); } @@ -1851,7 +2085,7 @@ void seg_scanner_finish(void) { - seg_yy_delete_buffer(scanbufhandle); + yy_delete_buffer(scanbufhandle); pfree(scanbuf); } diff -Nru postgresql-10-10.10/contrib/tablefunc/tablefunc.c postgresql-10-10.12/contrib/tablefunc/tablefunc.c --- postgresql-10-10.10/contrib/tablefunc/tablefunc.c 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/contrib/tablefunc/tablefunc.c 2020-02-10 22:19:45.000000000 +0000 @@ -763,6 +763,11 @@ /* get the category from the current sql result tuple */ catname = SPI_getvalue(spi_tuple, spi_tupdesc, 1); + if (catname == NULL) + ereport(ERROR, + (errcode(ERRCODE_SYNTAX_ERROR), + errmsg("provided \"categories\" SQL must " \ + "not return NULL values"))); SPIcontext = MemoryContextSwitchTo(per_query_ctx); diff -Nru postgresql-10-10.10/COPYRIGHT postgresql-10-10.12/COPYRIGHT --- postgresql-10-10.10/COPYRIGHT 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/COPYRIGHT 2020-02-10 22:19:45.000000000 +0000 @@ -1,7 +1,7 @@ PostgreSQL Database Management System (formerly known as Postgres, then as Postgres95) -Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group +Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group Portions Copyright (c) 1994, The Regents of the University of California diff -Nru postgresql-10-10.10/debian/changelog postgresql-10-10.12/debian/changelog --- postgresql-10-10.10/debian/changelog 2019-08-06 06:55:10.000000000 +0000 +++ postgresql-10-10.12/debian/changelog 2020-02-13 14:18:22.000000000 +0000 @@ -1,3 +1,21 @@ +postgresql-10 (10.12-0ubuntu0.18.04.1) bionic-security; urgency=medium + + * New upstream release (LP: #1863108) + - A dump/restore is not required however, if you use the contrib/intarray + extension with a GiST index, and you rely on indexed searches for the <@ + operator, see the release notes for details in regard to a related fix. + - Add missing permissions checks for ALTER ... DEPENDS ON EXTENSION. + Marking an object as dependent on an extension did not have any + privilege check whatsoever. This oversight allowed any user to mark + routines, triggers, materialized views, or indexes as droppable by + anyone able to drop an extension. Require that the calling user own the + specified object (and hence have privilege to drop it). (CVE-2020-1720) + - Details about these and many further changes can be found at: + https://www.postgresql.org/docs/10/static/release-10-11.html + https://www.postgresql.org/docs/10/static/release-10-12.html + + -- Christian Ehrhardt Thu, 13 Feb 2020 15:18:22 +0100 + postgresql-10 (10.10-0ubuntu0.18.04.1) bionic-security; urgency=medium * SECURITY UPDATE: New upstream release (LP: #1839058) diff -Nru postgresql-10-10.10/doc/bug.template postgresql-10-10.12/doc/bug.template --- postgresql-10-10.10/doc/bug.template 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/bug.template 2020-02-10 22:19:45.000000000 +0000 @@ -27,7 +27,7 @@ Operating System (example: Linux 2.4.18) : - PostgreSQL version (example: PostgreSQL 10.10): PostgreSQL 10.10 + PostgreSQL version (example: PostgreSQL 10.12): PostgreSQL 10.12 Compiler used (example: gcc 3.3.5) : diff -Nru postgresql-10-10.10/doc/src/sgml/bgworker.sgml postgresql-10-10.12/doc/src/sgml/bgworker.sgml --- postgresql-10-10.10/doc/src/sgml/bgworker.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/bgworker.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -23,7 +23,7 @@ There are considerable robustness and security risks in using background worker processes because, being written in the C language, they have unrestricted access to data. Administrators wishing to enable - modules that include background worker process should exercise extreme + modules that include background worker processes should exercise extreme caution. Only carefully audited modules should be permitted to run background worker processes. diff -Nru postgresql-10-10.10/doc/src/sgml/bloom.sgml postgresql-10-10.12/doc/src/sgml/bloom.sgml --- postgresql-10-10.10/doc/src/sgml/bloom.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/bloom.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -65,7 +65,7 @@ Number of bits generated for each index column. Each parameter's name refers to the number of the index column that it controls. The default - is 2 bits and maximum is 4095. Parameters for + is 2 bits and the maximum is 4095. Parameters for index columns not actually used are ignored. diff -Nru postgresql-10-10.10/doc/src/sgml/client-auth.sgml postgresql-10-10.12/doc/src/sgml/client-auth.sgml --- postgresql-10-10.10/doc/src/sgml/client-auth.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/client-auth.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -1688,7 +1688,7 @@ user name, password (encrypted) and NAS Identifier. The request will be encrypted using a secret shared with the server. The RADIUS server will respond to - this server with either Access Accept or + this request with either Access Accept or Access Reject. There is no support for RADIUS accounting. @@ -1697,11 +1697,11 @@ be tried sequentially. If a negative response is received from a server, the authentication will fail. If no response is received, the next server in the list will be tried. To specify multiple - servers, put the names within quotes and separate the server names - with a comma. If multiple servers are specified, all other RADIUS - options can also be given as a comma separate list, to apply - individual values to each server. They can also be specified as - a single value, in which case this value will apply to all servers. + servers, separate the server names with commas and surround the list + with double quotes. If multiple servers are specified, the other + RADIUS options can also be given as comma-separated lists, to provide + individual values for each server. They can also be specified as + a single value, in which case that value will apply to all servers. @@ -1711,7 +1711,7 @@ radiusservers - The name or IP addresses of the RADIUS servers to connect to. + The DNS names or IP addresses of the RADIUS servers to connect to. This parameter is required. @@ -1722,7 +1722,7 @@ The shared secrets used when talking securely to the RADIUS - server. This must have exactly the same value on the PostgreSQL + servers. This must have exactly the same value on the PostgreSQL and RADIUS servers. It is recommended that this be a string of at least 16 characters. This parameter is required. @@ -1742,8 +1742,9 @@ radiusports - The port number on the RADIUS servers to connect to. If no port - is specified, the default port 1812 will be used. + The port numbers to connect to on the RADIUS servers. If no port + is specified, the default RADIUS port (1812) + will be used. @@ -1752,10 +1753,10 @@ radiusidentifiers - The string used as NAS Identifier in the RADIUS - requests. This parameter can be used as a second parameter - identifying for example which database user the user is attempting - to authenticate as, which can be used for policy matching on + The strings to be used as NAS Identifier in the + RADIUS requests. This parameter can be used, for example, to + identify which database cluster the user is attempting to connect + to, which can be useful for policy matching on the RADIUS server. If no identifier is specified, the default postgresql will be used. @@ -1764,6 +1765,16 @@ + + + If it is necessary to have a comma or whitespace in a RADIUS parameter + value, that can be done by putting double quotes around the value, but + it is tedious because two layers of double-quoting are now required. + An example of putting whitespace into RADIUS secret strings is: + +host ... radius radiusservers="server1,server2" radiussecrets="""secret one"",""secret two""" + + diff -Nru postgresql-10-10.10/doc/src/sgml/config.sgml postgresql-10-10.12/doc/src/sgml/config.sgml --- postgresql-10-10.10/doc/src/sgml/config.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/config.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -136,6 +136,8 @@ identifiers or numbers must be single-quoted. To embed a single quote in a parameter value, write either two quotes (preferred) or backslash-quote. + If the file contains multiple entries for the same parameter, + all but the last one are ignored. @@ -165,22 +167,33 @@ - In addition to postgresql.conf, + In addition to postgresql.conf, a PostgreSQL data directory contains a file - postgresql.auto.confpostgresql.auto.conf, - which has the same format as postgresql.conf but should - never be edited manually. This file holds settings provided through - the command. This file is automatically - read whenever postgresql.conf is, and its settings take - effect in the same way. Settings in postgresql.auto.conf - override those in postgresql.conf. + postgresql.auto.confpostgresql.auto.conf, + which has the same format as postgresql.conf but + is intended to be edited automatically not manually. This file holds + settings provided through the command. + This file is read whenever postgresql.conf is, + and its settings take effect in the same way. Settings + in postgresql.auto.conf override those + in postgresql.conf. + + + + External tools may also + modify postgresql.auto.conf. It is not + recommended to do this while the server is running, since a + concurrent ALTER SYSTEM command could overwrite + such changes. Such tools might simply append new settings to the end, + or they might choose to remove duplicate settings and/or comments + (as ALTER SYSTEM will). The system view pg_file_settings - can be helpful for pre-testing changes to the configuration file, or for - diagnosing problems if a SIGHUP signal did not have the + can be helpful for pre-testing changes to the configuration files, or for + diagnosing problems if a SIGHUP signal did not have the desired effects. @@ -6536,9 +6549,7 @@ each lock acquisition attempt. The limit applies both to explicit locking requests (such as LOCK TABLE, or SELECT FOR UPDATE without NOWAIT) and to implicitly-acquired - locks. If log_min_error_statement is set to - ERROR or lower, the statement that timed out will be - logged. A value of zero (the default) turns this off. + locks. A value of zero (the default) turns this off. @@ -6546,7 +6557,9 @@ while waiting for locks. Note that if statement_timeout is nonzero, it is rather pointless to set lock_timeout to the same or larger value, since the statement timeout would always - trigger first. + trigger first. If log_min_error_statement is set to + ERROR or lower, the statement that timed out will be + logged. diff -Nru postgresql-10-10.10/doc/src/sgml/custom-scan.sgml postgresql-10-10.12/doc/src/sgml/custom-scan.sgml --- postgresql-10-10.10/doc/src/sgml/custom-scan.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/custom-scan.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -83,10 +83,7 @@ by nodeToString, so that debugging routines that attempt to print the custom path will work as designed. methods must point to a (usually statically allocated) object implementing the required - custom path methods, of which there is currently only one. The - LibraryName and SymbolName fields must also - be initialized so that the dynamic loader can resolve them to locate the - method table. + custom path methods, of which there is currently only one. diff -Nru postgresql-10-10.10/doc/src/sgml/datatype.sgml postgresql-10-10.12/doc/src/sgml/datatype.sgml --- postgresql-10-10.10/doc/src/sgml/datatype.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/datatype.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -2163,17 +2163,17 @@ today date, timestamp - midnight today + midnight (00:00) today tomorrow date, timestamp - midnight tomorrow + midnight (00:00) tomorrow yesterday date, timestamp - midnight yesterday + midnight (00:00) yesterday allballs @@ -4228,6 +4228,11 @@ value is a full document or only a content fragment. + + Limits and compatibility notes for the xml data type + can be found in . + + Creating XML Values diff -Nru postgresql-10-10.10/doc/src/sgml/ddl.sgml postgresql-10-10.12/doc/src/sgml/ddl.sgml --- postgresql-10-10.10/doc/src/sgml/ddl.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/ddl.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -403,6 +403,59 @@ ensure that a column does not contain null values, the not-null constraint described in the next section can be used. + + + + PostgreSQL does not support + CHECK constraints that reference table data other than + the new or updated row being checked. While a CHECK + constraint that violates this rule may appear to work in simple + tests, it cannot guarantee that the database will not reach a state + in which the constraint condition is false (due to subsequent changes + of the other row(s) involved). This would cause a database dump and + reload to fail. The reload could fail even when the complete + database state is consistent with the constraint, due to rows not + being loaded in an order that will satisfy the constraint. If + possible, use UNIQUE, EXCLUDE, + or FOREIGN KEY constraints to express + cross-row and cross-table restrictions. + + + + If what you desire is a one-time check against other rows at row + insertion, rather than a continuously-maintained consistency + guarantee, a custom trigger can be used + to implement that. (This approach avoids the dump/reload problem because + pg_dump does not reinstall triggers until after + reloading data, so that the check will not be enforced during a + dump/reload.) + + + + + + PostgreSQL assumes that + CHECK constraints' conditions are immutable, that + is, they will always give the same result for the same input row. + This assumption is what justifies examining CHECK + constraints only when rows are inserted or updated, and not at other + times. (The warning above about not referencing other table data is + really a special case of this restriction.) + + + + An example of a common way to break this assumption is to reference a + user-defined function in a CHECK expression, and + then change the behavior of that + function. PostgreSQL does not disallow + that, but it will not notice if there are rows in the table that now + violate the CHECK constraint. That would cause a + subsequent database dump and reload to fail. + The recommended way to handle such a change is to drop the constraint + (using ALTER TABLE), adjust the function definition, + and re-add the constraint, thereby rechecking it against all table rows. + + @@ -2378,56 +2431,57 @@ Usage Patterns - Schemas can be used to organize your data in many ways. There are a few - usage patterns easily supported by the default configuration, only one of - which suffices when database users mistrust other database users: + Schemas can be used to organize your data in many ways. + A secure schema usage pattern prevents untrusted + users from changing the behavior of other users' queries. When a database + does not use a secure schema usage pattern, users wishing to securely + query that database would take protective action at the beginning of each + session. Specifically, they would begin each session by + setting search_path to the empty string or otherwise + removing non-superuser-writable schemas + from search_path. There are a few usage patterns + easily supported by the default configuration: + doesn't preserve that DROP. + + A database owner can attack the database's users via "CREATE SCHEMA + trojan; ALTER DATABASE $mydb SET search_path = trojan, public;". A + CREATEROLE user can issue "GRANT $dbowner TO $me" and then use the + database owner attack. --> Constrain ordinary users to user-private schemas. To implement this, issue REVOKE CREATE ON SCHEMA public FROM PUBLIC, - and create a schema for each user with the same name as that user. If - affected users had logged in before this, consider auditing the public + and create a schema for each user with the same name as that user. + Recall that the default search path starts + with $user, which resolves to the user name. + Therefore, if each user has a separate schema, they access their own + schemas by default. After adopting this pattern in a database where + untrusted users had already logged in, consider auditing the public schema for objects named like objects in - schema pg_catalog. Recall that the default search - path starts with $user, which resolves to the user - name. Therefore, if each user has a separate schema, they access their - own schemas by default. + schema pg_catalog. This pattern is a secure schema + usage pattern unless an untrusted user is the database owner or holds + the CREATEROLE privilege, in which case no secure + schema usage pattern exists. - - - - Remove the public schema from each user's default search path - using ALTER ROLE user SET - search_path = "$user". Everyone retains the ability to - create objects in the public schema, but only qualified names will - choose those objects. While qualified table references are fine, calls - to functions in the public schema will be - unsafe or unreliable. Also, a user holding - the CREATEROLE privilege can undo this setting and - issue arbitrary queries under the identity of users relying on the - setting. If you create functions or extensions in the public schema or - grant CREATEROLE to users not warranting this - almost-superuser ability, use the first pattern instead. - Remove the public schema from search_path in - postgresql.conf. - The ensuing user experience matches the previous pattern. In addition - to that pattern's implications for functions - and CREATEROLE, this trusts database owners - like CREATEROLE. If you create functions or - extensions in the public schema or assign - the CREATEROLE - privilege, CREATEDB privilege or individual database - ownership to users not warranting almost-superuser access, use the - first pattern instead. + Remove the public schema from the default search path, by modifying + postgresql.conf + or by issuing ALTER ROLE ALL SET search_path = + "$user". Everyone retains the ability to create objects in + the public schema, but only qualified names will choose those objects. + While qualified table references are fine, calls to functions in the + public schema will be unsafe or + unreliable. If you create functions or extensions in the public + schema, use the first pattern instead. Otherwise, like the first + pattern, this is secure unless an untrusted user is the database owner + or holds the CREATEROLE privilege. @@ -2435,10 +2489,9 @@ Keep the default. All users access the public schema implicitly. This simulates the situation where schemas are not available at all, giving - a smooth transition from the non-schema-aware world. However, any user - can issue arbitrary queries under the identity of any user not electing - to protect itself individually. This pattern is acceptable only when - the database has a single user or a few mutually-trusting users. + a smooth transition from the non-schema-aware world. However, this is + never a secure pattern. It is acceptable only when the database has a + single user or a few mutually-trusting users. @@ -2755,7 +2808,15 @@ accessed through cities. This preserves the appearance that the data is (also) in the parent table. But the capitals table could not be updated directly - without an additional grant. In a similar way, the parent table's row + without an additional grant. Two exceptions to this rule are + TRUNCATE and LOCK TABLE, + where permissions on the child tables are always checked, + whether they are processed directly or recursively via those commands + performed on the parent table. + + + + In a similar way, the parent table's row security policies (see ) are applied to rows coming from child tables during an inherited query. A child table's policies, if any, are applied only when it is the table explicitly named @@ -3308,13 +3369,13 @@ Before running the ATTACH PARTITION command, it is recommended to create a CHECK constraint on the table to - be attached describing the desired partition constraint. That way, + be attached matching the desired partition constraint. That way, the system will be able to skip the scan to validate the implicit - partition constraint. Without such a constraint, the table will be - scanned to validate the partition constraint while holding an - ACCESS EXCLUSIVE lock on the parent table. - One may then drop the constraint after ATTACH PARTITION - is finished, because it is no longer necessary. + partition constraint. Without the CHECK constraint, + the table will be scanned to validate the partition constraint while + holding an ACCESS EXCLUSIVE lock on the parent table. + It may be desired to drop the redundant CHECK constraint + after ATTACH PARTITION is finished. diff -Nru postgresql-10-10.10/doc/src/sgml/ecpg.sgml postgresql-10-10.12/doc/src/sgml/ecpg.sgml --- postgresql-10-10.10/doc/src/sgml/ecpg.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/ecpg.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -178,6 +178,19 @@ + If the connection target includes any options, + those consist of + keyword=value + specifications separated by ampersands (&). + The allowed key words are the same ones recognized + by libpq (see + ). Spaces are ignored before + any keyword or value, + though not within or after one. Note that there is no way to + write & within a value. + + + The connection-name is used to handle multiple connections in one program. It can be omitted if a program uses only one connection. The most recently opened @@ -191,7 +204,7 @@ secure schema usage pattern, begin each session by removing publicly-writable schemas from search_path. For example, - add options=-csearch_path= + add options=-c search_path= to options, or issue EXEC SQL SELECT pg_catalog.set_config('search_path', '', false); after connecting. This consideration is not specific to @@ -4957,7 +4970,7 @@ The fields sqlcaid, - sqlcabc, + sqlabc, sqlerrp, and the remaining elements of sqlerrd and sqlwarn currently contain no useful @@ -6448,7 +6461,7 @@ - connection_object + connection_name An optional identifier for the connection, so that it can be diff -Nru postgresql-10-10.10/doc/src/sgml/extend.sgml postgresql-10-10.12/doc/src/sgml/extend.sgml --- postgresql-10-10.10/doc/src/sgml/extend.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/extend.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -825,7 +825,7 @@ dynamically from one version to the next, you should provide update scripts that make the necessary changes to go from one version to the next. Update scripts have names following the pattern - extension--oldversion--newversion.sql + extension--old_version--target_version.sql (for example, foo--1.0--1.1.sql contains the commands to modify version 1.0 of extension foo into version 1.1). diff -Nru postgresql-10-10.10/doc/src/sgml/fdwhandler.sgml postgresql-10-10.12/doc/src/sgml/fdwhandler.sgml --- postgresql-10-10.10/doc/src/sgml/fdwhandler.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/fdwhandler.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -724,9 +724,11 @@ row-by-row approach is necessary, but it can be inefficient. If it is possible for the foreign server to determine which rows should be modified without actually retrieving them, and if there are no local - triggers which would affect the operation, then it is possible to - arrange things so that the entire operation is performed on the remote - server. The interfaces described below make this possible. + structures which would affect the operation (row-level local triggers + or WITH CHECK OPTION constraints from parent views), + then it is possible to arrange things so that the entire operation is + performed on the remote server. The interfaces described below make + this possible. diff -Nru postgresql-10-10.10/doc/src/sgml/features.sgml postgresql-10-10.12/doc/src/sgml/features.sgml --- postgresql-10-10.10/doc/src/sgml/features.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/features.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -16,7 +16,8 @@ Language SQL. A revised version of the standard is released from time to time; the most recent update appearing in 2011. The 2011 version is referred to as ISO/IEC 9075:2011, or simply as SQL:2011. - The versions prior to that were SQL:2008, SQL:2003, SQL:1999, and SQL-92. Each version + The versions prior to that were SQL:2008, SQL:2006, SQL:2003, SQL:1999, + and SQL-92. Each version replaces the previous one, so claims of conformance to earlier versions have no official merit. PostgreSQL development aims for @@ -155,4 +156,382 @@ + + XML Limits and Conformance to SQL/XML + + + SQL/XML + limits and conformance + + + + Significant revisions to the XML-related specifications in ISO/IEC 9075-14 + (SQL/XML) were introduced with SQL:2006. + PostgreSQL's implementation of the XML data + type and related functions largely follows the earlier 2003 edition, + with some borrowing from later editions. In particular: + + + + Where the current standard provides a family of XML data types + to hold document or content in + untyped or XML Schema-typed variants, and a type + XML(SEQUENCE) to hold arbitrary pieces of XML content, + PostgreSQL provides the single + xml type, which can hold document or + content. There is no equivalent of the + standard's sequence type. + + + + + + PostgreSQL provides two functions + introduced in SQL:2006, but in variants that use the XPath 1.0 + language, rather than XML Query as specified for them in the + standard. + + + + + + + This section presents some of the resulting differences you may encounter. + + + + Queries are restricted to XPath 1.0 + + + The PostgreSQL-specific functions + xpath() and xpath_exists() + query XML documents using the XPath language. + PostgreSQL also provides XPath-only variants + of the standard functions XMLEXISTS and + XMLTABLE, which officially use + the XQuery language. For all of these functions, + PostgreSQL relies on the + libxml2 library, which provides only XPath 1.0. + + + + There is a strong connection between the XQuery language and XPath + versions 2.0 and later: any expression that is syntactically valid and + executes successfully in both produces the same result (with a minor + exception for expressions containing numeric character references or + predefined entity references, which XQuery replaces with the + corresponding character while XPath leaves them alone). But there is + no such connection between these languages and XPath 1.0; it was an + earlier language and differs in many respects. + + + + There are two categories of limitation to keep in mind: the restriction + from XQuery to XPath for the functions specified in the SQL standard, and + the restriction of XPath to version 1.0 for both the standard and the + PostgreSQL-specific functions. + + + + Restriction of XQuery to XPath + + + Features of XQuery beyond those of XPath include: + + + + + XQuery expressions can construct and return new XML nodes, in + addition to all possible XPath values. XPath can create and return + values of the atomic types (numbers, strings, and so on) but can + only return XML nodes that were already present in documents + supplied as input to the expression. + + + + + + XQuery has control constructs for iteration, sorting, and grouping. + + + + + + XQuery allows declaration and use of local functions. + + + + + + + Recent XPath versions begin to offer capabilities overlapping with + these (such as functional-style for-each and + sort, anonymous functions, and + parse-xml to create a node from a string), + but such features were not available before XPath 3.0. + + + + + Restriction of XPath to 1.0 + + + For developers familiar with XQuery and XPath 2.0 or later, XPath 1.0 + presents a number of differences to contend with: + + + + + The fundamental type of an XQuery/XPath expression, the + sequence, which can contain XML nodes, atomic values, + or both, does not exist in XPath 1.0. A 1.0 expression can only + produce a node-set (containing zero or more XML nodes), or a single + atomic value. + + + + + + Unlike an XQuery/XPath sequence, which can contain any desired + items in any desired order, an XPath 1.0 node-set has no + guaranteed order and, like any set, does not allow multiple + appearances of the same item. + + + The libxml2 library does seem to + always return node-sets to PostgreSQL + with their members in the same relative order they had in the + input document. Its documentation does not commit to this + behavior, and an XPath 1.0 expression cannot control it. + + + + + + + + While XQuery/XPath provides all of the types defined in XML Schema + and many operators and functions over those types, XPath 1.0 has only + node-sets and the three atomic types boolean, + double, and string. + + + + + + XPath 1.0 has no conditional operator. An XQuery/XPath expression + such as if ( hat ) then hat/@size else "no hat" + has no XPath 1.0 equivalent. + + + + + + XPath 1.0 has no ordering comparison operator for strings. Both + "cat" < "dog" and + "cat" > "dog" are false, because each is a + numeric comparison of two NaNs. In contrast, + = and != do compare the strings + as strings. + + + + + + XPath 1.0 blurs the distinction between + value comparisons and + general comparisons as XQuery/XPath define + them. Both sale/@hatsize = 7 and + sale/@customer = "alice" are existentially + quantified comparisons, true if there is + any sale with the given value for the + attribute, but sale/@taxable = false() is a + value comparison to the + effective boolean value of a whole node-set. + It is true only if no sale has + a taxable attribute at all. + + + + + + In the XQuery/XPath data model, a document + node can have either document form (i.e., exactly one + top-level element, with only comments and processing instructions + outside of it) or content form (with those constraints + relaxed). Its equivalent in XPath 1.0, the + root node, can only be in document form. + This is part of the reason an xml value passed as the + context item to any PostgreSQL + XPath-based function must be in document form. + + + + + + + The differences highlighted here are not all of them. In XQuery and + the 2.0 and later versions of XPath, there is an XPath 1.0 compatibility + mode, and the W3C lists of + function library changes + and + language changes + applied in that mode offer a more complete (but still not exhaustive) + account of the differences. The compatibility mode cannot make the + later languages exactly equivalent to XPath 1.0. + + + + + Mappings between SQL and XML data types and values + + + In SQL:2006 and later, both directions of conversion between standard SQL + data types and the XML Schema types are specified precisely. However, the + rules are expressed using the types and semantics of XQuery/XPath, and + have no direct application to the different data model of XPath 1.0. + + + + When PostgreSQL maps SQL data values to XML + (as in xmlelement), or XML to SQL (as in the output + columns of xmltable), except for a few cases + treated specially, PostgreSQL simply assumes + that the XML data type's XPath 1.0 string form will be valid as the + text-input form of the SQL datatype, and conversely. This rule has the + virtue of simplicity while producing, for many data types, results similar + to the mappings specified in the standard. In this release, + an explicit cast is needed if an xmltable column + expression produces a boolean or double value; see + . + + + + Where interoperability with other systems is a concern, for some data + types, it may be necessary to use data type formatting functions (such + as those in ) explicitly to + produce the standard mappings. + + + + + + + Incidental limits of the implementation + + + + This section concerns limits that are not inherent in the + libxml2 library, but apply to the current + implementation in PostgreSQL. + + + + + Cast needed for <function>xmltable</function> column + of boolean or double type + + + + An xmltable column expression evaluating to an XPath + boolean or number result will produce an unexpected XPath object + type error. The workaround is to rewrite the column expression to + be inside the XPath string function; + PostgreSQL will then assign the string value + successfully to an SQL output column of boolean or double type. + + + + + + Column path result or SQL result column of XML type + + + + In this release, a xmltable column expression + that evaluates to an XML node-set can be assigned to an SQL result + column of XML type, producing a concatenation of: for most types of + node in the node-set, a text node containing the XPath 1.0 + string-value of the node, but for an element node, + a copy of the node itself. Such a node-set may be assigned to an SQL + column of non-XML type only if the node-set has a single node, with the + string-value of most node types replaced with an empty string, the + string-value of an element node replaced with a concatenation of only its + direct text-node children (excluding those of descendants), and the + string-value of a text or attribute node being as defined in XPath 1.0. + An XPath string value assigned to a result column of XML type must be + parsable as XML. + + + + It is best not to develop code that relies on these behaviors, which have + little resemblance to the spec, and are changed in + PostgreSQL 12. + + + + + Only <literal>BY VALUE</literal> passing mechanism is supported + + + The SQL standard defines two passing mechanisms + that apply when passing an XML argument from SQL to an XML function or + receiving a result: BY REF, in which a particular XML + value retains its node identity, and BY VALUE, in which + the content of the XML is passed but node identity is not preserved. A + mechanism can be specified before a list of parameters, as the default + mechanism for all of them, or after any parameter, to override the + default. + + + + To illustrate the difference, if + x is an XML value, these two queries in + an SQL:2006 environment would produce true and false, respectively: + + +SELECT XMLQUERY('$a is $b' PASSING BY REF x AS a, x AS b NULL ON EMPTY); +SELECT XMLQUERY('$a is $b' PASSING BY VALUE x AS a, x AS b NULL ON EMPTY); + + + + + In this release, PostgreSQL will accept + BY REF in an + XMLEXISTS or XMLTABLE + construct, but will ignore it. The xml data type holds + a character-string serialized representation, so there is no node + identity to preserve, and passing is always effectively BY + VALUE. + + + + + Cannot pass named parameters to queries + + + The XPath-based functions support passing one parameter to serve as the + XPath expression's context item, but do not support passing additional + values to be available to the expression as named parameters. + + + + + No <type>XML(SEQUENCE)</type> type + + + The PostgreSQL xml data type + can only hold a value in DOCUMENT + or CONTENT form. An XQuery/XPath expression + context item must be a single XML node or atomic value, but XPath 1.0 + further restricts it to be only an XML node, and has no node type + allowing CONTENT. The upshot is that a + well-formed DOCUMENT is the only form of XML value + that PostgreSQL can supply as an XPath + context item. + + + + + diff -Nru postgresql-10-10.10/doc/src/sgml/func.sgml postgresql-10-10.12/doc/src/sgml/func.sgml --- postgresql-10-10.10/doc/src/sgml/func.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/func.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -2771,7 +2771,7 @@ - tcvn_to_utf8 + windows_1258_to_utf8 WIN1258 UTF8 @@ -2939,7 +2939,7 @@ - utf8_to_tcvn + utf8_to_windows_1258 UTF8 WIN1258 @@ -9903,17 +9903,26 @@ + XML Functions + + XML Functions + + The functions and function-like expressions described in this - section operate on values of type xml. Check xml. See for information about the xml type. The function-like expressions xmlparse and xmlserialize for converting to and from - type xml are not repeated here. Use of most of these - functions requires the installation to have been built - with configure --with-libxml. + type xml are documented there, not in this section. + + + + Use of most of these functions + requires PostgreSQL to have been built + with configure --with-libxml. @@ -10107,8 +10116,8 @@ encoding, depending on the setting of the configuration parameter . The particular behavior for individual data types is expected to evolve in order to align the - SQL and PostgreSQL data types with the XML Schema specification, - at which point a more precise description will appear. + PostgreSQL mappings with those specified in SQL:2006 and later, + as discussed in . @@ -10350,10 +10359,13 @@ - The function xmlexists returns true if the - XPath expression in the first argument returns any nodes, and - false otherwise. (If either argument is null, the result is - null.) + The function xmlexists evaluates an XPath 1.0 + expression (the first argument), with the passed XML value as its context + item. The function returns false if the result of that evaluation + yields an empty node-set, true if it yields any other value. The + function returns null if any argument is null. A nonnull value + passed as the context item must be an XML document, not a content + fragment or any non-XML value. @@ -10369,14 +10381,14 @@ - The BY REF clauses have no effect in - PostgreSQL, but are allowed for SQL conformance and compatibility - with other implementations. Per SQL standard, the - first BY REF is required, the second is - optional. Also note that the SQL standard specifies - the xmlexists construct to take an XQuery - expression as first argument, but PostgreSQL currently only - supports XPath, which is a subset of XQuery. + The BY REF clauses + are accepted in PostgreSQL, but are ignored, + as discussed in . + In the SQL standard, the xmlexists function + evaluates an expression in the XML Query language, + but PostgreSQL allows only an XPath 1.0 + expression, as discussed in + . @@ -10482,12 +10494,12 @@ - The function xpath evaluates the XPath - expression xpath (a text value) + The function xpath evaluates the XPath 1.0 + expression xpath (a text value) against the XML value xml. It returns an array of XML values - corresponding to the node set produced by the XPath expression. - If the XPath expression returns a scalar value rather than a node set, + corresponding to the node-set produced by the XPath expression. + If the XPath expression returns a scalar value rather than a node-set, a single-element array is returned. @@ -10549,9 +10561,10 @@ The function xpath_exists is a specialized form of the xpath function. Instead of returning the - individual XML values that satisfy the XPath, this function returns a - Boolean indicating whether the query was satisfied or not. This - function is equivalent to the standard XMLEXISTS predicate, + individual XML values that satisfy the XPath 1.0 expression, this function + returns a Boolean indicating whether the query was satisfied or not + (specifically, whether it produced any value other than an empty node-set). + This function is equivalent to the XMLEXISTS predicate, except that it also offers support for a namespace mapping argument. @@ -10592,8 +10605,8 @@ The xmltable function produces a table based - on the given XML value, an XPath filter to extract rows, and an - optional set of column definitions. + on the given XML value, an XPath filter to extract rows, and a + set of column definitions. @@ -10604,30 +10617,34 @@ - The required row_expression argument is an XPath - expression that is evaluated against the supplied XML document to - obtain an ordered sequence of XML nodes. This sequence is what - xmltable transforms into output rows. + The required row_expression argument is + an XPath 1.0 expression that is evaluated, passing the + document_expression as its context item, to + obtain a set of XML nodes. These nodes are what + xmltable transforms into output rows. No rows + will be produced if the document_expression + is null, nor if the row_expression produces + an empty node-set or any value other than a node-set. - document_expression provides the XML document to - operate on. - The BY REF clauses have no effect in PostgreSQL, - but are allowed for SQL conformance and compatibility with other - implementations. - The argument must be a well-formed XML document; fragments/forests - are not accepted. + document_expression provides the context + item for the row_expression. It must be a + well-formed XML document; fragments/forests are not accepted. + The BY REF clause + is accepted but ignored, as discussed in + . + In the SQL standard, the xmltable function + evaluates expressions in the XML Query language, + but PostgreSQL allows only XPath 1.0 + expressions, as discussed in + . The mandatory COLUMNS clause specifies the list of columns in the output table. - If the COLUMNS clause is omitted, the rows in the result - set contain a single column of type xml containing the - data matched by row_expression. - If COLUMNS is specified, each entry describes a - single column. + Each entry describes a single column. See the syntax summary above for the format. The column name and type are required; the path, default and nullability clauses are optional. @@ -10635,48 +10652,57 @@ A column marked FOR ORDINALITY will be populated - with row numbers matching the order in which the - output rows appeared in the original input XML document. + with row numbers, starting with 1, in the order of nodes retrieved from + the row_expression's result node-set. At most one column may be marked FOR ORDINALITY. + + + XPath 1.0 does not specify an order for nodes in a node-set, so code + that relies on a particular order of the results will be + implementation-dependent. Details can be found in + . + + + - The column_expression for a column is an XPath expression - that is evaluated for each row, relative to the result of the - row_expression, to find the value of the column. - If no column_expression is given, then the column name - is used as an implicit path. + The column_expression for a column is an + XPath 1.0 expression that is evaluated for each row, with the current + node from the row_expression result as its + context item, to find the value of the column. If + no column_expression is given, then the + column name is used as an implicit path. - If a column's XPath expression returns multiple elements, an error - is raised. - If the expression matches an empty tag, the result is an - empty string (not NULL). - Any xsi:nil attributes are ignored. + If a column's XPath expression returns a non-XML value (limited to + string, boolean, or double in XPath 1.0) and the column has a + PostgreSQL type other than xml, the column will be set + as if by assigning the value's string representation to the PostgreSQL + type. In this release, an XPath boolean or double result must be explicitly + cast to string (that is, the XPath 1.0 string function + wrapped around the original column expression); + PostgreSQL can then successfully assign the + string to an SQL result column of boolean or double type. + These conversion rules differ from those of the SQL + standard, as discussed in . - The text body of the XML matched by the column_expression - is used as the column value. Multiple text() nodes - within an element are concatenated in order. Any child elements, - processing instructions, and comments are ignored, but the text contents - of child elements are concatenated to the result. - Note that the whitespace-only text() node between two non-text - elements is preserved, and that leading whitespace on a text() - node is not flattened. + In this release, SQL result columns of xml type, or + column XPath expressions evaluating to an XML type, regardless of the + output column SQL type, are handled as described in + ; the behavior + changes significantly in PostgreSQL 12. - If the path expression does not match for a given row but - default_expression is specified, the value resulting - from evaluating that expression is used. - If no DEFAULT clause is given for the column, - the field will be set to NULL. - It is possible for a default_expression to reference - the value of output columns that appear prior to it in the column list, - so the default of one column may be based on the value of another - column. + If the path expression returns an empty node-set + (typically, when it does not match) + for a given row, the column will be set to NULL, unless + a default_expression is specified; then the + value resulting from evaluating that expression is used. @@ -10688,20 +10714,14 @@ - Unlike regular PostgreSQL functions, column_expression - and default_expression are not evaluated to a simple - value before calling the function. - column_expression is normally evaluated - exactly once per input row, and default_expression - is evaluated each time a default is needed for a field. - If the expression qualifies as stable or immutable the repeat + A default_expression, rather than being + evaluated immediately when xmltable is called, + is evaluated each time a default is needed for the column. + If the expression qualifies as stable or immutable, the repeat evaluation may be skipped. - Effectively xmltable behaves more like a subquery than a - function call. This means that you can usefully use volatile functions like - nextval in default_expression, and - column_expression may depend on other parts of the - XML document. + nextval in + default_expression. @@ -11771,7 +11791,7 @@ [{"f1":1},2,null,3] - jsonb_set(target jsonb, path text[], new_value jsonb, create_missing boolean) + jsonb_set(target jsonb, path text[], new_value jsonb , create_missing boolean) jsonb @@ -11779,10 +11799,10 @@ with the section designated by path replaced by new_value, or with new_value added if - create_missing is true ( default is + create_missing is true (default is true) and the item designated by path does not exist. - As with the path orientated operators, negative integers that + As with the path oriented operators, negative integers that appear in path count from the end of JSON arrays. @@ -11796,7 +11816,7 @@ - jsonb_insert(target jsonb, path text[], new_value jsonb, insert_after boolean) + jsonb_insert(target jsonb, path text[], new_value jsonb , insert_after boolean) jsonb @@ -11811,7 +11831,7 @@ designated by path is in JSONB object, new_value will be inserted only if target does not exist. As with the path - orientated operators, negative integers that appear in + oriented operators, negative integers that appear in path count from the end of JSON arrays. @@ -12571,14 +12591,14 @@ @> contains - ARRAY[1,4,3] @> ARRAY[3,1] + ARRAY[1,4,3] @> ARRAY[3,1,3] t <@ is contained by - ARRAY[2,7] <@ ARRAY[1,7,4,2,6] + ARRAY[2,2,7] <@ ARRAY[1,7,4,2,6] t @@ -12621,8 +12641,10 @@ - Array comparisons compare the array contents element-by-element, - using the default B-tree comparison function for the element data type. + The array ordering operators (<, + >=, etc) compare the array contents + element-by-element, using the default B-tree comparison function for + the element data type, and sort based on the first difference. In multidimensional arrays the elements are visited in row-major order (last subscript varies most rapidly). If the contents of two arrays are equal but the dimensionality is @@ -12634,6 +12656,15 @@ + The array containment operators (<@ + and @>) consider one array to be contained in + another one if each of its elements appears in the other one. + Duplicates are not treated specially, thus ARRAY[1] + and ARRAY[1,1] are each considered to contain the + other. + + + See for more details about array operator behavior. See for more details about which operators support indexed operations. @@ -13371,7 +13402,7 @@ No input arrays concatenated into array of one higher dimension (inputs must all have same dimensionality, - and cannot be empty or NULL) + and cannot be empty or null) @@ -13395,7 +13426,7 @@ otherwise the same as the argument data type Yes - the average (arithmetic mean) of all input values + the average (arithmetic mean) of all non-null input values @@ -13523,7 +13554,7 @@ json No - aggregates values as a JSON array + aggregates values, including nulls, as a JSON array @@ -13540,7 +13571,7 @@ jsonb No - aggregates values as a JSON array + aggregates values, including nulls, as a JSON array @@ -13557,7 +13588,8 @@ json No - aggregates name/value pairs as a JSON object + aggregates name/value pairs as a JSON object; values can be + null, but not names @@ -13574,7 +13606,8 @@ jsonb No - aggregates name/value pairs as a JSON object + aggregates name/value pairs as a JSON object; values can be + null, but not names @@ -13590,7 +13623,7 @@ Yes maximum value of expression across all input + class="parameter">expression across all non-null input values @@ -13608,7 +13641,7 @@ Yes minimum value of expression across all input + class="parameter">expression across all non-null input values @@ -13630,7 +13663,7 @@ same as argument types No - input values concatenated into a string, separated by delimiter + non-null input values concatenated into a string, separated by delimiter @@ -13653,7 +13686,8 @@ argument data type Yes - sum of expression across all input values + sum of expression + across all non-null input values @@ -13670,7 +13704,8 @@ xml No - concatenation of XML values (see also ) + concatenation of non-null XML values + (see also ) diff -Nru postgresql-10-10.10/doc/src/sgml/gist.sgml postgresql-10-10.12/doc/src/sgml/gist.sgml --- postgresql-10-10.10/doc/src/sgml/gist.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/gist.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -684,8 +684,8 @@ /* * Choose where to put the index entries and update unionL and unionR - * accordingly. Append the entries to either v_spl_left or - * v_spl_right, and care about the counters. + * accordingly. Append the entries to either v->spl_left or + * v->spl_right, and care about the counters. */ if (my_choice_is_left(unionL, curl, unionR, curr)) @@ -896,7 +896,7 @@ my_fetch(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - input_data_type *in = DatumGetP(entry->key); + input_data_type *in = DatumGetPointer(entry->key); fetched_data_type *fetched_data; GISTENTRY *retval; @@ -907,7 +907,7 @@ * Convert 'fetched_data' into the a Datum of the original datatype. */ - /* fill *retval from fetch_data. */ + /* fill *retval from fetched_data. */ gistentryinit(*retval, PointerGetDatum(converted_datum), entry->rel, entry->page, entry->offset, FALSE); diff -Nru postgresql-10-10.10/doc/src/sgml/high-availability.sgml postgresql-10-10.12/doc/src/sgml/high-availability.sgml --- postgresql-10-10.10/doc/src/sgml/high-availability.sgml 2019-08-05 21:16:54.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/high-availability.sgml 2020-02-10 22:19:45.000000000 +0000 @@ -237,7 +237,8 @@ - For servers that are not regularly connected, like laptops or + For servers that are not regularly connected or have slow + communication links, like laptops or remote servers, keeping data consistent among servers is a challenge. Using asynchronous multimaster replication, each server works independently, and periodically communicates with @@ -256,9 +257,8 @@ In synchronous multimaster replication, each server can accept write requests, and modified data is transmitted from the original server to every other server before each transaction - commits. Heavy write activity can cause excessive locking, - leading to poor performance. In fact, write performance is - often worse than that of a single server. Read requests can + commits. Heavy write activity can cause excessive locking and + commit delays, leading to poor performance. Read requests can be sent to any server. Some implementations use shared disk to reduce the communication overhead. Synchronous multimaster replication is best for mostly read workloads, though its big diff -Nru postgresql-10-10.10/doc/src/sgml/html/acronyms.html postgresql-10-10.12/doc/src/sgml/html/acronyms.html --- postgresql-10-10.10/doc/src/sgml/html/acronyms.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/acronyms.html 2020-02-10 22:32:04.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix K. Acronyms

Appendix K. Acronyms

This is a list of acronyms commonly used in the PostgreSQL +Appendix K. Acronyms

Appendix K. Acronyms

This is a list of acronyms commonly used in the PostgreSQL documentation and in discussions about PostgreSQL.

ANSI

American National Standards Institute @@ -80,7 +80,7 @@ Database Management System

PAM

Pluggable Authentication Modules -

PGSQL

PostgreSQL +

PGSQL

PostgreSQL

PGXS

PostgreSQL Extension System

PID

Process Identifier

PITR

Point-In-Time diff -Nru postgresql-10-10.10/doc/src/sgml/html/admin.html postgresql-10-10.12/doc/src/sgml/html/admin.html --- postgresql-10-10.10/doc/src/sgml/html/admin.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/admin.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -Part III. Server Administration

This part covers topics that are of interest to a +Part III. Server Administration

This part covers topics that are of interest to a PostgreSQL database administrator. This includes installation of the software, set up and configuration of the server, management of users and databases, and maintenance tasks. diff -Nru postgresql-10-10.10/doc/src/sgml/html/adminpack.html postgresql-10-10.12/doc/src/sgml/html/adminpack.html --- postgresql-10-10.10/doc/src/sgml/html/adminpack.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/adminpack.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.1. adminpack

adminpack provides a number of support functions which +F.1. adminpack

F.1. adminpack

adminpack provides a number of support functions which pgAdmin and other administration and management tools can use to provide additional functionality, such as remote management of server log files. diff -Nru postgresql-10-10.10/doc/src/sgml/html/amcheck.html postgresql-10-10.12/doc/src/sgml/html/amcheck.html --- postgresql-10-10.10/doc/src/sgml/html/amcheck.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/amcheck.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.2. amcheck

F.2. amcheck

The amcheck module provides functions that allow you to +F.2. amcheck

F.2. amcheck

The amcheck module provides functions that allow you to verify the logical consistency of the structure of indexes. If the structure appears to be valid, no error is raised.

The functions verify various invariants in the diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-clusterdb.html postgresql-10-10.12/doc/src/sgml/html/app-clusterdb.html --- postgresql-10-10.10/doc/src/sgml/html/app-clusterdb.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-clusterdb.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -clusterdb

clusterdb

clusterdb — cluster a PostgreSQL database

Synopsis

clusterdb [connection-option...] [ --verbose | -v ] [ --table | -t +clusterdb

clusterdb

clusterdb — cluster a PostgreSQL database

Synopsis

clusterdb [connection-option...] [ --verbose | -v ] [ --table | -t table ] ... [dbname]

clusterdb [connection-option...] [ --verbose | -v ] --all | -a

Description

clusterdb is a utility for reclustering tables diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-createdb.html postgresql-10-10.12/doc/src/sgml/html/app-createdb.html --- postgresql-10-10.10/doc/src/sgml/html/app-createdb.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-createdb.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -createdb

createdb

createdb — create a new PostgreSQL database

Synopsis

createdb [connection-option...] [option...] [dbname +createdb

createdb

createdb — create a new PostgreSQL database

Synopsis

createdb [connection-option...] [option...] [dbname [description]]

Description

createdb creates a new PostgreSQL database. diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-createuser.html postgresql-10-10.12/doc/src/sgml/html/app-createuser.html --- postgresql-10-10.10/doc/src/sgml/html/app-createuser.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-createuser.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -createuser

createuser

createuser — define a new PostgreSQL user account

Synopsis

createuser [connection-option...] [option...] [username]

Description

createuser creates a +createuser

createuser

createuser — define a new PostgreSQL user account

Synopsis

createuser [connection-option...] [option...] [username]

Description

createuser creates a new PostgreSQL user (or more precisely, a role). Only superusers and users with CREATEROLE privilege can create new users, so createuser must be diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-dropdb.html postgresql-10-10.12/doc/src/sgml/html/app-dropdb.html --- postgresql-10-10.10/doc/src/sgml/html/app-dropdb.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-dropdb.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -dropdb

dropdb

dropdb — remove a PostgreSQL database

Synopsis

dropdb [connection-option...] [option...] dbname

Description

dropdb destroys an existing +dropdb

dropdb

dropdb — remove a PostgreSQL database

Synopsis

dropdb [connection-option...] [option...] dbname

Description

dropdb destroys an existing PostgreSQL database. The user who executes this command must be a database superuser or the owner of the database. diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-dropuser.html postgresql-10-10.12/doc/src/sgml/html/app-dropuser.html --- postgresql-10-10.10/doc/src/sgml/html/app-dropuser.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-dropuser.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -dropuser

dropuser

dropuser — remove a PostgreSQL user account

Synopsis

dropuser [connection-option...] [option...] [username]

Description

dropuser removes an existing +dropuser

dropuser

dropuser — remove a PostgreSQL user account

Synopsis

dropuser [connection-option...] [option...] [username]

Description

dropuser removes an existing PostgreSQL user. Only superusers and users with the CREATEROLE privilege can remove PostgreSQL users. (To remove a diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-ecpg.html postgresql-10-10.12/doc/src/sgml/html/app-ecpg.html --- postgresql-10-10.10/doc/src/sgml/html/app-ecpg.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-ecpg.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -ecpg

ecpg

ecpg — embedded SQL C preprocessor

Synopsis

ecpg [option...] file...

Description

ecpg is the embedded SQL preprocessor for C +ecpg

ecpg

ecpg — embedded SQL C preprocessor

Synopsis

ecpg [option...] file...

Description

ecpg is the embedded SQL preprocessor for C programs. It converts C programs with embedded SQL statements to normal C code by replacing the SQL invocations with special function calls. The output files can then be processed with any C diff -Nru postgresql-10-10.10/doc/src/sgml/html/appendixes.html postgresql-10-10.12/doc/src/sgml/html/appendixes.html --- postgresql-10-10.10/doc/src/sgml/html/appendixes.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/appendixes.html 2020-02-10 22:32:04.000000000 +0000 @@ -1,2 +1,2 @@ -Part VIII. Appendixes

Part VIII. Appendixes

Table of Contents

A. PostgreSQL Error Codes
B. Date/Time Support
B.1. Date/Time Input Interpretation
B.2. Handling of Invalid or Ambiguous Timestamps
B.3. Date/Time Key Words
B.4. Date/Time Configuration Files
B.5. History of Units
C. SQL Key Words
D. SQL Conformance
D.1. Supported Features
D.2. Unsupported Features
E. Release Notes
E.1. Release 10.10
E.2. Release 10.9
E.3. Release 10.8
E.4. Release 10.7
E.5. Release 10.6
E.6. Release 10.5
E.7. Release 10.4
E.8. Release 10.3
E.9. Release 10.2
E.10. Release 10.1
E.11. Release 10
E.12. Prior Releases
F. Additional Supplied Modules
F.1. adminpack
F.2. amcheck
F.3. auth_delay
F.4. auto_explain
F.5. bloom
F.6. btree_gin
F.7. btree_gist
F.8. chkpass
F.9. citext
F.10. cube
F.11. dblink
F.12. dict_int
F.13. dict_xsyn
F.14. earthdistance
F.15. file_fdw
F.16. fuzzystrmatch
F.17. hstore
F.18. intagg
F.19. intarray
F.20. isn
F.21. lo
F.22. ltree
F.23. pageinspect
F.24. passwordcheck
F.25. pg_buffercache
F.26. pgcrypto
F.27. pg_freespacemap
F.28. pg_prewarm
F.29. pgrowlocks
F.30. pg_stat_statements
F.31. pgstattuple
F.32. pg_trgm
F.33. pg_visibility
F.34. postgres_fdw
F.35. seg
F.36. sepgsql
F.37. spi
F.38. sslinfo
F.39. tablefunc
F.40. tcn
F.41. test_decoding
F.42. tsm_system_rows
F.43. tsm_system_time
F.44. unaccent
F.45. uuid-ossp
F.46. xml2
G. Additional Supplied Programs
G.1. Client Applications
G.2. Server Applications
H. External Projects
H.1. Client Interfaces
H.2. Administration Tools
H.3. Procedural Languages
H.4. Extensions
I. The Source Code Repository
I.1. Getting The Source via Git
J. Documentation
J.1. DocBook
J.2. Tool Sets
J.3. Building The Documentation
J.4. Documentation Authoring
J.5. Style Guide
K. Acronyms
\ No newline at end of file +Part VIII. Appendixes

Part VIII. Appendixes

Table of Contents

A. PostgreSQL Error Codes
B. Date/Time Support
B.1. Date/Time Input Interpretation
B.2. Handling of Invalid or Ambiguous Timestamps
B.3. Date/Time Key Words
B.4. Date/Time Configuration Files
B.5. History of Units
C. SQL Key Words
D. SQL Conformance
D.1. Supported Features
D.2. Unsupported Features
D.3. XML Limits and Conformance to SQL/XML
E. Release Notes
E.1. Release 10.12
E.2. Release 10.11
E.3. Release 10.10
E.4. Release 10.9
E.5. Release 10.8
E.6. Release 10.7
E.7. Release 10.6
E.8. Release 10.5
E.9. Release 10.4
E.10. Release 10.3
E.11. Release 10.2
E.12. Release 10.1
E.13. Release 10
E.14. Prior Releases
F. Additional Supplied Modules
F.1. adminpack
F.2. amcheck
F.3. auth_delay
F.4. auto_explain
F.5. bloom
F.6. btree_gin
F.7. btree_gist
F.8. chkpass
F.9. citext
F.10. cube
F.11. dblink
F.12. dict_int
F.13. dict_xsyn
F.14. earthdistance
F.15. file_fdw
F.16. fuzzystrmatch
F.17. hstore
F.18. intagg
F.19. intarray
F.20. isn
F.21. lo
F.22. ltree
F.23. pageinspect
F.24. passwordcheck
F.25. pg_buffercache
F.26. pgcrypto
F.27. pg_freespacemap
F.28. pg_prewarm
F.29. pgrowlocks
F.30. pg_stat_statements
F.31. pgstattuple
F.32. pg_trgm
F.33. pg_visibility
F.34. postgres_fdw
F.35. seg
F.36. sepgsql
F.37. spi
F.38. sslinfo
F.39. tablefunc
F.40. tcn
F.41. test_decoding
F.42. tsm_system_rows
F.43. tsm_system_time
F.44. unaccent
F.45. uuid-ossp
F.46. xml2
G. Additional Supplied Programs
G.1. Client Applications
G.2. Server Applications
H. External Projects
H.1. Client Interfaces
H.2. Administration Tools
H.3. Procedural Languages
H.4. Extensions
I. The Source Code Repository
I.1. Getting The Source via Git
J. Documentation
J.1. DocBook
J.2. Tool Sets
J.3. Building The Documentation
J.4. Documentation Authoring
J.5. Style Guide
K. Acronyms
\ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-initdb.html postgresql-10-10.12/doc/src/sgml/html/app-initdb.html --- postgresql-10-10.10/doc/src/sgml/html/app-initdb.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-initdb.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -initdb

initdb

initdb — create a new PostgreSQL database cluster

Synopsis

initdb [option...] [ --pgdata | -D ] directory

Description +initdb

initdb

initdb — create a new PostgreSQL database cluster

Synopsis

initdb [option...] [ --pgdata | -D ] directory

Description

initdb creates a new PostgreSQL database cluster. A database cluster is a collection of databases that are managed by a single diff -Nru postgresql-10-10.10/doc/src/sgml/html/applevel-consistency.html postgresql-10-10.12/doc/src/sgml/html/applevel-consistency.html --- postgresql-10-10.10/doc/src/sgml/html/applevel-consistency.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/applevel-consistency.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -13.4. Data Consistency Checks at the Application Level

13.4. Data Consistency Checks at the Application Level

It is very difficult to enforce business rules regarding data integrity +13.4. Data Consistency Checks at the Application Level

13.4. Data Consistency Checks at the Application Level

It is very difficult to enforce business rules regarding data integrity using Read Committed transactions because the view of the data is shifting with each statement, and even a single statement may not restrict itself to the statement's snapshot if a write conflict occurs. diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgbasebackup.html postgresql-10-10.12/doc/src/sgml/html/app-pgbasebackup.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgbasebackup.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgbasebackup.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_basebackup

pg_basebackup

pg_basebackup — take a base backup of a PostgreSQL cluster

Synopsis

pg_basebackup [option...]

Description +pg_basebackup

pg_basebackup

pg_basebackup — take a base backup of a PostgreSQL cluster

Synopsis

pg_basebackup [option...]

Description

pg_basebackup is used to take base backups of a running PostgreSQL database cluster. These are taken without affecting other clients to the database, and can be used diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgconfig.html postgresql-10-10.12/doc/src/sgml/html/app-pgconfig.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgconfig.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgconfig.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_config

pg_config

pg_config — retrieve information about the installed version of PostgreSQL

Synopsis

pg_config [option...]

Description

The pg_config utility prints configuration parameters +pg_config

pg_config

pg_config — retrieve information about the installed version of PostgreSQL

Synopsis

pg_config [option...]

Description

The pg_config utility prints configuration parameters of the currently installed version of PostgreSQL. It is intended, for example, to be used by software packages that want to interface to PostgreSQL to facilitate finding the required header files diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgcontroldata.html postgresql-10-10.12/doc/src/sgml/html/app-pgcontroldata.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgcontroldata.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgcontroldata.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_controldata

pg_controldata

pg_controldata — display control information of a PostgreSQL database cluster

Synopsis

pg_controldata [option] [[-D] datadir]

Description

pg_controldata prints information initialized during +pg_controldata

pg_controldata

pg_controldata — display control information of a PostgreSQL database cluster

Synopsis

pg_controldata [option] [[-D] datadir]

Description

pg_controldata prints information initialized during initdb, such as the catalog version. It also shows information about write-ahead logging and checkpoint processing. This information is cluster-wide, and not specific to any one diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pg-ctl.html postgresql-10-10.12/doc/src/sgml/html/app-pg-ctl.html --- postgresql-10-10.10/doc/src/sgml/html/app-pg-ctl.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pg-ctl.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_ctl

pg_ctl

pg_ctl — initialize, start, stop, or control a PostgreSQL server

Synopsis

pg_ctl init[db] [-D datadir] [-s] [-o initdb-options]

pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c]

pg_ctl stop [-D datadir] [-m +pg_ctl

pg_ctl

pg_ctl — initialize, start, stop, or control a PostgreSQL server

Synopsis

pg_ctl init[db] [-D datadir] [-s] [-o initdb-options]

pg_ctl start [-D datadir] [-l filename] [-W] [-t seconds] [-s] [-o options] [-p path] [-c]

pg_ctl stop [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t seconds] [-s]

pg_ctl restart [-D datadir] [-m s[mart] | f[ast] | i[mmediate] diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pg-dumpall.html postgresql-10-10.12/doc/src/sgml/html/app-pg-dumpall.html --- postgresql-10-10.10/doc/src/sgml/html/app-pg-dumpall.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pg-dumpall.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_dumpall

pg_dumpall

pg_dumpall — extract a PostgreSQL database cluster into a script file

Synopsis

pg_dumpall [connection-option...] [option...]

Description

pg_dumpall is a utility for writing out +pg_dumpall

pg_dumpall

pg_dumpall — extract a PostgreSQL database cluster into a script file

Synopsis

pg_dumpall [connection-option...] [option...]

Description

pg_dumpall is a utility for writing out (dumping) all PostgreSQL databases of a cluster into one script file. The script file contains SQL commands that can be used as input to psql to restore the databases. It does this by @@ -16,7 +16,8 @@ superuser privileges to execute the saved script in order to be allowed to add users and groups, and to create databases.

The SQL script will be written to the standard output. Use the - [-f|file] option or shell operators to redirect it into a file. + -f/--file option or shell operators to + redirect it into a file.

pg_dumpall needs to connect several times to the PostgreSQL server (once per database). If you use password authentication it will ask for diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgdump.html postgresql-10-10.12/doc/src/sgml/html/app-pgdump.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgdump.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgdump.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_dump

pg_dump

pg_dump — extract a PostgreSQL database into a script file or other archive file +pg_dump

pg_dump

pg_dump — extract a PostgreSQL database into a script file or other archive file

Synopsis

pg_dump [connection-option...] [option...] [dbname]

Description

pg_dump is a utility for backing up a PostgreSQL database. It makes consistent diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pg-isready.html postgresql-10-10.12/doc/src/sgml/html/app-pg-isready.html --- postgresql-10-10.10/doc/src/sgml/html/app-pg-isready.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pg-isready.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_isready

pg_isready

pg_isready — check the connection status of a PostgreSQL server

Synopsis

pg_isready [connection-option...] [option...]

Description

pg_isready is a utility for checking the connection +pg_isready

pg_isready

pg_isready — check the connection status of a PostgreSQL server

Synopsis

pg_isready [connection-option...] [option...]

Description

pg_isready is a utility for checking the connection status of a PostgreSQL database server. The exit status specifies the result of the connection check.

Options

-d dbname
--dbname=dbname

Specifies the name of the database to connect to. diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgreceivewal.html postgresql-10-10.12/doc/src/sgml/html/app-pgreceivewal.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgreceivewal.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgreceivewal.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_receivewal

pg_receivewal

pg_receivewal — stream write-ahead logs from a PostgreSQL server

Synopsis

pg_receivewal [option...]

Description +pg_receivewal

pg_receivewal

pg_receivewal — stream write-ahead logs from a PostgreSQL server

Synopsis

pg_receivewal [option...]

Description

pg_receivewal is used to stream the write-ahead log from a running PostgreSQL cluster. The write-ahead log is streamed using the streaming replication protocol, and is written diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgrecvlogical.html postgresql-10-10.12/doc/src/sgml/html/app-pgrecvlogical.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgrecvlogical.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgrecvlogical.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_recvlogical

pg_recvlogical

pg_recvlogical — control PostgreSQL logical decoding streams

Synopsis

pg_recvlogical [option...]

Description

pg_recvlogical controls logical decoding replication +pg_recvlogical

pg_recvlogical

pg_recvlogical — control PostgreSQL logical decoding streams

Synopsis

pg_recvlogical [option...]

Description

pg_recvlogical controls logical decoding replication slots and streams data from such replication slots.

It creates a replication-mode connection, so it is subject to the same constraints as pg_receivewal, plus those for logical diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgresetwal.html postgresql-10-10.12/doc/src/sgml/html/app-pgresetwal.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgresetwal.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgresetwal.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_resetwal

pg_resetwal

pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster

Synopsis

pg_resetwal [-f] [-n] [option...] {[-D] datadir}

Description

pg_resetwal clears the write-ahead log (WAL) and +pg_resetwal

pg_resetwal

pg_resetwal — reset the write-ahead log and other control information of a PostgreSQL database cluster

Synopsis

pg_resetwal [-f] [-n] [option...] {[-D] datadir}

Description

pg_resetwal clears the write-ahead log (WAL) and optionally resets some other control information stored in the pg_control file. This function is sometimes needed if these files have become corrupted. It should be used only as a diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgrestore.html postgresql-10-10.12/doc/src/sgml/html/app-pgrestore.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgrestore.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgrestore.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pg_restore

pg_restore

pg_restore — restore a PostgreSQL database from an +pg_restore

pg_restore

pg_restore — restore a PostgreSQL database from an archive file created by pg_dump

Synopsis

pg_restore [connection-option...] [option...] [filename]

Description

pg_restore is a utility for restoring a PostgreSQL database from an archive @@ -53,8 +53,8 @@ the database. The default is to continue and to display a count of errors at the end of the restoration.

-f filename
--file=filename

Specify output file for generated script, or for the listing - when used with -l. Default is the standard - output. + when used with -l. Use - + for the standard output, which is also the default.

-F format
--format=format

Specify format of the archive. It is not necessary to specify the format, since pg_restore will determine the format automatically. If specified, it can be diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-pgrewind.html postgresql-10-10.12/doc/src/sgml/html/app-pgrewind.html --- postgresql-10-10.10/doc/src/sgml/html/app-pgrewind.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-pgrewind.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_rewind

pg_rewind

pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it

Synopsis

pg_rewind [option...] { -D | --target-pgdata } directory { --source-pgdata=directory | --source-server=connstr }

Description

pg_rewind is a tool for synchronizing a PostgreSQL cluster +pg_rewind

pg_rewind

pg_rewind — synchronize a PostgreSQL data directory with another data directory that was forked from it

Synopsis

pg_rewind [option...] { -D | --target-pgdata } directory { --source-pgdata=directory | --source-server=connstr }

Description

pg_rewind is a tool for synchronizing a PostgreSQL cluster with another copy of the same cluster, after the clusters' timelines have diverged. A typical scenario is to bring an old master server back online after failover as a standby that follows the new master. diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-postgres.html postgresql-10-10.12/doc/src/sgml/html/app-postgres.html --- postgresql-10-10.10/doc/src/sgml/html/app-postgres.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-postgres.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -postgres

postgres

postgres — PostgreSQL database server

Synopsis

postgres [option...]

Description

postgres is the +postgres

postgres

postgres — PostgreSQL database server

Synopsis

postgres [option...]

Description

postgres is the PostgreSQL database server. In order for a client application to access a database it connects (over a network or locally) to a running postgres instance. diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-postmaster.html postgresql-10-10.12/doc/src/sgml/html/app-postmaster.html --- postgresql-10-10.10/doc/src/sgml/html/app-postmaster.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-postmaster.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,4 +1,4 @@ -postmaster

postmaster

postmaster — PostgreSQL database server

Synopsis

postmaster [option...]

Description

postmaster is a deprecated alias of postgres. +postmaster

postmaster

postmaster — PostgreSQL database server

Synopsis

postmaster [option...]

Description

postmaster is a deprecated alias of postgres.

See Also

postgres

\ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-psql.html postgresql-10-10.12/doc/src/sgml/html/app-psql.html --- postgresql-10-10.10/doc/src/sgml/html/app-psql.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-psql.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -psql

psql

psqlPostgreSQL interactive terminal +psql

psql

psqlPostgreSQL interactive terminal

Synopsis

psql [option...] [dbname [username]]

Description

psql is a terminal-based front-end to PostgreSQL. It enables you to type in @@ -282,7 +282,7 @@ psql is currently connected, followed by the string =>. For example:

$ psql testdb
-psql (10.10)
+psql (10.12)
 Type "help" for help.
 
 testdb=>

diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-reindexdb.html postgresql-10-10.12/doc/src/sgml/html/app-reindexdb.html --- postgresql-10-10.10/doc/src/sgml/html/app-reindexdb.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-reindexdb.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -reindexdb

reindexdb

reindexdb — reindex a PostgreSQL database

Synopsis

reindexdb [connection-option...] [option...] [ --schema | -S +reindexdb

reindexdb

reindexdb — reindex a PostgreSQL database

Synopsis

reindexdb [connection-option...] [option...] [ --schema | -S schema ] ... [ --table | -t diff -Nru postgresql-10-10.10/doc/src/sgml/html/app-vacuumdb.html postgresql-10-10.12/doc/src/sgml/html/app-vacuumdb.html --- postgresql-10-10.10/doc/src/sgml/html/app-vacuumdb.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/app-vacuumdb.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -vacuumdb

vacuumdb

vacuumdb — garbage-collect and analyze a PostgreSQL database

Synopsis

vacuumdb [connection-option...] [option...] [ --table | -t +vacuumdb

vacuumdb

vacuumdb — garbage-collect and analyze a PostgreSQL database

Synopsis

vacuumdb [connection-option...] [option...] [ --table | -t table [( column [,...] )] ] diff -Nru postgresql-10-10.10/doc/src/sgml/html/archive-recovery-settings.html postgresql-10-10.12/doc/src/sgml/html/archive-recovery-settings.html --- postgresql-10-10.10/doc/src/sgml/html/archive-recovery-settings.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/archive-recovery-settings.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -27.1. Archive Recovery Settings

27.1. Archive Recovery Settings

restore_command (string) +27.1. Archive Recovery Settings

27.1. Archive Recovery Settings

restore_command (string)

The local shell command to execute to retrieve an archived segment of the WAL file series. This parameter is required for archive recovery, diff -Nru postgresql-10-10.10/doc/src/sgml/html/arrays.html postgresql-10-10.12/doc/src/sgml/html/arrays.html --- postgresql-10-10.10/doc/src/sgml/html/arrays.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/arrays.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -8.15. Arrays

8.15. Arrays

PostgreSQL allows columns of a table to be +8.15. Arrays

8.15. Arrays

PostgreSQL allows columns of a table to be defined as variable-length multidimensional arrays. Arrays of any built-in or user-defined base type, enum type, or composite type can be created. diff -Nru postgresql-10-10.10/doc/src/sgml/html/auth-delay.html postgresql-10-10.12/doc/src/sgml/html/auth-delay.html --- postgresql-10-10.10/doc/src/sgml/html/auth-delay.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/auth-delay.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.3. auth_delay

F.3. auth_delay

auth_delay causes the server to pause briefly before +F.3. auth_delay

F.3. auth_delay

auth_delay causes the server to pause briefly before reporting authentication failure, to make brute-force attacks on database passwords more difficult. Note that it does nothing to prevent denial-of-service attacks, and may even exacerbate them, since processes diff -Nru postgresql-10-10.10/doc/src/sgml/html/auth-methods.html postgresql-10-10.12/doc/src/sgml/html/auth-methods.html --- postgresql-10-10.10/doc/src/sgml/html/auth-methods.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/auth-methods.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -20.3. Authentication Methods

20.3. Authentication Methods

The following subsections describe the authentication methods in more detail. +20.3. Authentication Methods

20.3. Authentication Methods

The following subsections describe the authentication methods in more detail.

20.3.1. Trust Authentication

When trust authentication is specified, PostgreSQL assumes that anyone who can connect to the server is authorized to access the database with @@ -415,22 +415,22 @@ user name, password (encrypted) and NAS Identifier. The request will be encrypted using a secret shared with the server. The RADIUS server will respond to - this server with either Access Accept or + this request with either Access Accept or Access Reject. There is no support for RADIUS accounting.

Multiple RADIUS servers can be specified, in which case they will be tried sequentially. If a negative response is received from a server, the authentication will fail. If no response is received, the next server in the list will be tried. To specify multiple - servers, put the names within quotes and separate the server names - with a comma. If multiple servers are specified, all other RADIUS - options can also be given as a comma separate list, to apply - individual values to each server. They can also be specified as - a single value, in which case this value will apply to all servers. + servers, separate the server names with commas and surround the list + with double quotes. If multiple servers are specified, the other + RADIUS options can also be given as comma-separated lists, to provide + individual values for each server. They can also be specified as + a single value, in which case that value will apply to all servers.

The following configuration options are supported for RADIUS: -

radiusservers

The name or IP addresses of the RADIUS servers to connect to. +

radiusservers

The DNS names or IP addresses of the RADIUS servers to connect to. This parameter is required.

radiussecrets

The shared secrets used when talking securely to the RADIUS - server. This must have exactly the same value on the PostgreSQL + servers. This must have exactly the same value on the PostgreSQL and RADIUS servers. It is recommended that this be a string of at least 16 characters. This parameter is required.

Note

The encryption vector used will only be cryptographically @@ -439,15 +439,21 @@ RADIUS server should only be considered obfuscated, not secured, and external security measures should be applied if necessary.

-

radiusports

The port number on the RADIUS servers to connect to. If no port - is specified, the default port 1812 will be used. -

radiusidentifiers

The string used as NAS Identifier in the RADIUS - requests. This parameter can be used as a second parameter - identifying for example which database user the user is attempting - to authenticate as, which can be used for policy matching on +

radiusports

The port numbers to connect to on the RADIUS servers. If no port + is specified, the default RADIUS port (1812) + will be used. +

radiusidentifiers

The strings to be used as NAS Identifier in the + RADIUS requests. This parameter can be used, for example, to + identify which database cluster the user is attempting to connect + to, which can be useful for policy matching on the RADIUS server. If no identifier is specified, the default postgresql will be used.

+

If it is necessary to have a comma or whitespace in a RADIUS parameter + value, that can be done by putting double quotes around the value, but + it is tedious because two layers of double-quoting are now required. + An example of putting whitespace into RADIUS secret strings is: +

host ... radius radiusservers="server1,server2" radiussecrets="""secret one"",""secret two"""

20.3.9. Certificate Authentication

This authentication method uses SSL client certificates to perform authentication. It is therefore only available for SSL connections. When using this authentication method, the server will require that diff -Nru postgresql-10-10.10/doc/src/sgml/html/auth-pg-hba-conf.html postgresql-10-10.12/doc/src/sgml/html/auth-pg-hba-conf.html --- postgresql-10-10.10/doc/src/sgml/html/auth-pg-hba-conf.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/auth-pg-hba-conf.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -20.1. The pg_hba.conf File

20.1. The pg_hba.conf File

Client authentication is controlled by a configuration file, +20.1. The pg_hba.conf File

20.1. The pg_hba.conf File

Client authentication is controlled by a configuration file, which traditionally is named pg_hba.conf and is stored in the database cluster's data directory. diff -Nru postgresql-10-10.10/doc/src/sgml/html/auth-username-maps.html postgresql-10-10.12/doc/src/sgml/html/auth-username-maps.html --- postgresql-10-10.10/doc/src/sgml/html/auth-username-maps.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/auth-username-maps.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -20.2. User Name Maps

20.2. User Name Maps

When using an external authentication system such as Ident or GSSAPI, +20.2. User Name Maps

20.2. User Name Maps

When using an external authentication system such as Ident or GSSAPI, the name of the operating system user that initiated the connection might not be the same as the database user (role) that is to be used. In this case, a user name map can be applied to map the operating system diff -Nru postgresql-10-10.10/doc/src/sgml/html/auto-explain.html postgresql-10-10.12/doc/src/sgml/html/auto-explain.html --- postgresql-10-10.10/doc/src/sgml/html/auto-explain.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/auto-explain.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.4. auto_explain

F.4. auto_explain

The auto_explain module provides a means for +F.4. auto_explain

F.4. auto_explain

The auto_explain module provides a means for logging execution plans of slow statements automatically, without having to run EXPLAIN by hand. This is especially helpful for tracking down un-optimized queries diff -Nru postgresql-10-10.10/doc/src/sgml/html/backup-dump.html postgresql-10-10.12/doc/src/sgml/html/backup-dump.html --- postgresql-10-10.10/doc/src/sgml/html/backup-dump.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/backup-dump.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -25.1. SQL Dump

25.1. SQL Dump

The idea behind this dump method is to generate a file with SQL +25.1. SQL Dump

25.1. SQL Dump

The idea behind this dump method is to generate a file with SQL commands that, when fed back to the server, will recreate the database in the same state as it was at the time of the dump. PostgreSQL provides the utility program diff -Nru postgresql-10-10.10/doc/src/sgml/html/backup-file.html postgresql-10-10.12/doc/src/sgml/html/backup-file.html --- postgresql-10-10.10/doc/src/sgml/html/backup-file.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/backup-file.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -25.2. File System Level Backup

25.2. File System Level Backup

An alternative backup strategy is to directly copy the files that +25.2. File System Level Backup

25.2. File System Level Backup

An alternative backup strategy is to directly copy the files that PostgreSQL uses to store the data in the database; Section 18.2 explains where these files are located. You can use whatever method you prefer diff -Nru postgresql-10-10.10/doc/src/sgml/html/backup.html postgresql-10-10.12/doc/src/sgml/html/backup.html --- postgresql-10-10.10/doc/src/sgml/html/backup.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/backup.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 25. Backup and Restore

Chapter 25. Backup and Restore

As with everything that contains valuable data, PostgreSQL +Chapter 25. Backup and Restore

Chapter 25. Backup and Restore

As with everything that contains valuable data, PostgreSQL databases should be backed up regularly. While the procedure is essentially simple, it is important to have a clear understanding of the underlying techniques and assumptions. diff -Nru postgresql-10-10.10/doc/src/sgml/html/bgworker.html postgresql-10-10.12/doc/src/sgml/html/bgworker.html --- postgresql-10-10.10/doc/src/sgml/html/bgworker.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bgworker.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 47. Background Worker Processes

Chapter 47. Background Worker Processes

PostgreSQL can be extended to run user-supplied code in separate processes. +Chapter 47. Background Worker Processes

Chapter 47. Background Worker Processes

PostgreSQL can be extended to run user-supplied code in separate processes. Such processes are started, stopped and monitored by postgres, which permits them to have a lifetime closely linked to the server's status. These processes have the option to attach to PostgreSQL's @@ -10,7 +10,7 @@

Warning

There are considerable robustness and security risks in using background worker processes because, being written in the C language, they have unrestricted access to data. Administrators wishing to enable - modules that include background worker process should exercise extreme + modules that include background worker processes should exercise extreme caution. Only carefully audited modules should be permitted to run background worker processes.

Background workers can be initialized at the time that diff -Nru postgresql-10-10.10/doc/src/sgml/html/biblio.html postgresql-10-10.12/doc/src/sgml/html/biblio.html --- postgresql-10-10.10/doc/src/sgml/html/biblio.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/biblio.html 2020-02-10 22:32:04.000000000 +0000 @@ -1,5 +1,5 @@ -Bibliography

Bibliography

Selected references and readings for SQL +Bibliography

Bibliography

Selected references and readings for SQL and PostgreSQL.

Some white papers and technical reports from the original POSTGRES development team diff -Nru postgresql-10-10.10/doc/src/sgml/html/bki-commands.html postgresql-10-10.12/doc/src/sgml/html/bki-commands.html --- postgresql-10-10.10/doc/src/sgml/html/bki-commands.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bki-commands.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -67.2. BKI Commands

67.2. BKI Commands

create +67.2. BKI Commands

67.2. BKI Commands

create tablename tableoid [bootstrap] diff -Nru postgresql-10-10.10/doc/src/sgml/html/bki-example.html postgresql-10-10.12/doc/src/sgml/html/bki-example.html --- postgresql-10-10.10/doc/src/sgml/html/bki-example.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bki-example.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -67.4. Example

67.4. Example

The following sequence of commands will create the +67.4. Example

67.4. Example

The following sequence of commands will create the table test_table with OID 420, having two columns cola and colb of type int4 and text, respectively, and insert diff -Nru postgresql-10-10.10/doc/src/sgml/html/bki-format.html postgresql-10-10.12/doc/src/sgml/html/bki-format.html --- postgresql-10-10.10/doc/src/sgml/html/bki-format.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bki-format.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -67.1. BKI File Format

67.1. BKI File Format

This section describes how the PostgreSQL +67.1. BKI File Format

67.1. BKI File Format

This section describes how the PostgreSQL backend interprets BKI files. This description will be easier to understand if the postgres.bki file is at hand as an example. diff -Nru postgresql-10-10.10/doc/src/sgml/html/bki.html postgresql-10-10.12/doc/src/sgml/html/bki.html --- postgresql-10-10.10/doc/src/sgml/html/bki.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bki.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 67. BKI Backend Interface

Chapter 67. BKI Backend Interface

Backend Interface (BKI) files are scripts in a +Chapter 67. BKI Backend Interface

Chapter 67. BKI Backend Interface

Backend Interface (BKI) files are scripts in a special language that is understood by the PostgreSQL backend when running in the bootstrap mode. The bootstrap mode allows system catalogs diff -Nru postgresql-10-10.10/doc/src/sgml/html/bki-structure.html postgresql-10-10.12/doc/src/sgml/html/bki-structure.html --- postgresql-10-10.10/doc/src/sgml/html/bki-structure.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bki-structure.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -67.3. Structure of the Bootstrap BKI File

67.3. Structure of the Bootstrap BKI File

The open command cannot be used until the tables it uses +67.3. Structure of the Bootstrap BKI File

67.3. Structure of the Bootstrap BKI File

The open command cannot be used until the tables it uses exist and have entries for the table that is to be opened. (These minimum tables are pg_class, pg_attribute, pg_proc, and diff -Nru postgresql-10-10.10/doc/src/sgml/html/bloom.html postgresql-10-10.12/doc/src/sgml/html/bloom.html --- postgresql-10-10.10/doc/src/sgml/html/bloom.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bloom.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.5. bloom

F.5. bloom

bloom provides an index access method based on +F.5. bloom

F.5. bloom

bloom provides an index access method based on Bloom filters.

A Bloom filter is a space-efficient data structure that is used to test whether an element is a member of a set. In the case of an index access @@ -25,7 +25,7 @@ and the maximum is 4096.

col1 — col32

Number of bits generated for each index column. Each parameter's name refers to the number of the index column that it controls. The default - is 2 bits and maximum is 4095. Parameters for + is 2 bits and the maximum is 4095. Parameters for index columns not actually used are ignored.

F.5.2. Examples

This is an example of creating a bloom index:

CREATE INDEX bloomidx ON tbloom USING bloom (i1,i2,i3)
diff -Nru postgresql-10-10.10/doc/src/sgml/html/bookindex.html postgresql-10-10.12/doc/src/sgml/html/bookindex.html
--- postgresql-10-10.10/doc/src/sgml/html/bookindex.html	2019-08-05 21:30:20.000000000 +0000
+++ postgresql-10-10.12/doc/src/sgml/html/bookindex.html	2020-02-10 22:32:05.000000000 +0000
@@ -1,5 +1,5 @@
 
-Index

Index

Index

A

abbrev, Network Address Functions and Operators
ABORT, ABORT
abs, Mathematical Functions and Operators
acos, Mathematical Functions and Operators
acosd, Mathematical Functions and Operators
administration tools
externally maintained, Administration Tools
adminpack, adminpack
advisory lock, Advisory Locks
age, Date/Time Functions and Operators
aggregate function, Aggregate Functions, Aggregate Expressions, Aggregate Functions, User-defined Aggregates
built-in, Aggregate Functions
invocation, Aggregate Expressions
moving aggregate, Moving-Aggregate Mode
ordered set, Ordered-Set Aggregates
partial aggregation, Partial Aggregation
polymorphic, Polymorphic and Variadic Aggregates
support functions for, Support Functions for Aggregates
user-defined, User-defined Aggregates
variadic, Polymorphic and Variadic Aggregates
AIX, AIX
installation on, AIX
IPC configuration, Shared Memory and Semaphores
akeys, hstore Operators and Functions
alias, Table and Column Aliases, Column Labels
for table name in query, Joins Between Tables
in the FROM clause, Table and Column Aliases
in the select list, Column Labels
ALL, Subquery Expressions, Row and Array Comparisons
allow_system_table_mods configuration parameter, Developer Options
ALTER AGGREGATE, ALTER AGGREGATE
ALTER COLLATION, ALTER COLLATION
ALTER CONVERSION, ALTER CONVERSION
ALTER DATABASE, ALTER DATABASE
ALTER DEFAULT PRIVILEGES, ALTER DEFAULT PRIVILEGES
ALTER DOMAIN, ALTER DOMAIN
ALTER EVENT TRIGGER, ALTER EVENT TRIGGER
ALTER EXTENSION, ALTER EXTENSION
ALTER FOREIGN DATA WRAPPER, ALTER FOREIGN DATA WRAPPER
ALTER FOREIGN TABLE, ALTER FOREIGN TABLE
ALTER FUNCTION, ALTER FUNCTION
ALTER GROUP, ALTER GROUP
ALTER INDEX, ALTER INDEX
ALTER LANGUAGE, ALTER LANGUAGE
ALTER LARGE OBJECT, ALTER LARGE OBJECT
ALTER MATERIALIZED VIEW, ALTER MATERIALIZED VIEW
ALTER OPERATOR, ALTER OPERATOR
ALTER OPERATOR CLASS, ALTER OPERATOR CLASS
ALTER OPERATOR FAMILY, ALTER OPERATOR FAMILY
ALTER POLICY, ALTER POLICY
ALTER PUBLICATION, ALTER PUBLICATION
ALTER ROLE, Role Attributes, ALTER ROLE
ALTER RULE, ALTER RULE
ALTER SCHEMA, ALTER SCHEMA
ALTER SEQUENCE, ALTER SEQUENCE
ALTER SERVER, ALTER SERVER
ALTER STATISTICS, ALTER STATISTICS
ALTER SUBSCRIPTION, ALTER SUBSCRIPTION
ALTER SYSTEM, ALTER SYSTEM
ALTER TABLE, ALTER TABLE
ALTER TABLESPACE, ALTER TABLESPACE
ALTER TEXT SEARCH CONFIGURATION, ALTER TEXT SEARCH CONFIGURATION
ALTER TEXT SEARCH DICTIONARY, ALTER TEXT SEARCH DICTIONARY
ALTER TEXT SEARCH PARSER, ALTER TEXT SEARCH PARSER
ALTER TEXT SEARCH TEMPLATE, ALTER TEXT SEARCH TEMPLATE
ALTER TRIGGER, ALTER TRIGGER
ALTER TYPE, ALTER TYPE
ALTER USER, ALTER USER
ALTER USER MAPPING, ALTER USER MAPPING
ALTER VIEW, ALTER VIEW
amcheck, amcheck
ANALYZE, Updating Planner Statistics, ANALYZE
AND (operator), Logical Operators
anonymous code blocks, DO
any, Pseudo-Types
ANY, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
anyarray, Pseudo-Types
anyelement, Pseudo-Types
anyenum, Pseudo-Types
anynonarray, Pseudo-Types
anyrange, Pseudo-Types
applicable role, applicable_roles
application_name configuration parameter, What To Log
arbitrary precision numbers, Arbitrary Precision Numbers
archive_cleanup_command recovery parameter, Archive Recovery Settings
archive_command configuration parameter, Archiving
archive_mode configuration parameter, Archiving
archive_timeout configuration parameter, Archiving
area, Geometric Functions and Operators
armor, armor(), dearmor()
array, Arrays
accessing, Accessing Arrays
constant, Array Value Input
constructor, Array Constructors
declaration, Declaration of Array Types
I/O, Array Input and Output Syntax
modifying, Modifying Arrays
of user-defined type, User-defined Types
searching, Searching in Arrays
ARRAY, Array Constructors, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
array_agg, Aggregate Functions, Functions
array_append, Array Functions and Operators
array_cat, Array Functions and Operators
array_dims, Array Functions and Operators
array_fill, Array Functions and Operators
array_length, Array Functions and Operators
array_lower, Array Functions and Operators
array_ndims, Array Functions and Operators
array_nulls configuration parameter, Previous PostgreSQL Versions
array_position, Array Functions and Operators
array_positions, Array Functions and Operators
array_prepend, Array Functions and Operators
array_remove, Array Functions and Operators
array_replace, Array Functions and Operators
array_to_json, JSON Functions and Operators
array_to_string, Array Functions and Operators
array_to_tsvector, Text Search Functions and Operators
array_upper, Array Functions and Operators
ascii, String Functions and Operators
asin, Mathematical Functions and Operators
asind, Mathematical Functions and Operators
ASSERT
in PL/pgSQL, Checking Assertions
assertions
in PL/pgSQL, Checking Assertions
asynchronous commit, Asynchronous Commit
AT TIME ZONE, AT TIME ZONE
atan, Mathematical Functions and Operators
atan2, Mathematical Functions and Operators
atan2d, Mathematical Functions and Operators
atand, Mathematical Functions and Operators
authentication_timeout configuration parameter, Security and Authentication
auth_delay, auth_delay
auth_delay.milliseconds configuration parameter, Configuration Parameters
auto-increment (see serial)
autocommit
bulk-loading data, Disable Autocommit
psql, Variables
autovacuum
configuration parameters, Automatic Vacuuming
general information, The Autovacuum Daemon
autovacuum configuration parameter, Automatic Vacuuming
autovacuum_analyze_scale_factor configuration parameter, Automatic Vacuuming
autovacuum_analyze_threshold configuration parameter, Automatic Vacuuming
autovacuum_freeze_max_age configuration parameter, Automatic Vacuuming
autovacuum_max_workers configuration parameter, Automatic Vacuuming
autovacuum_multixact_freeze_max_age configuration parameter, Automatic Vacuuming
autovacuum_naptime configuration parameter, Automatic Vacuuming
autovacuum_vacuum_cost_delay configuration parameter, Automatic Vacuuming
autovacuum_vacuum_cost_limit configuration parameter, Automatic Vacuuming
autovacuum_vacuum_scale_factor configuration parameter, Automatic Vacuuming
autovacuum_vacuum_threshold configuration parameter, Automatic Vacuuming
autovacuum_work_mem configuration parameter, Memory
auto_explain, auto_explain
auto_explain.log_analyze configuration parameter, Configuration Parameters
auto_explain.log_buffers configuration parameter, Configuration Parameters
auto_explain.log_format configuration parameter, Configuration Parameters
auto_explain.log_min_duration configuration parameter, Configuration Parameters
auto_explain.log_nested_statements configuration parameter, Configuration Parameters
auto_explain.log_timing configuration parameter, Configuration Parameters
auto_explain.log_triggers configuration parameter, Configuration Parameters
auto_explain.log_verbose configuration parameter, Configuration Parameters
auto_explain.sample_rate configuration parameter, Configuration Parameters
avals, hstore Operators and Functions
average, Aggregate Functions
avg, Aggregate Functions

B

B-tree (see index)
backend_flush_after configuration parameter, Asynchronous Behavior
Background workers, Background Worker Processes
backslash escapes, String Constants with C-style Escapes
backslash_quote configuration parameter, Previous PostgreSQL Versions
backup, Backup Control Functions, Backup and Restore
base type, The PostgreSQL Type System
BASE_BACKUP, Streaming Replication Protocol
BEGIN, BEGIN
BETWEEN, Comparison Functions and Operators
BETWEEN SYMMETRIC, Comparison Functions and Operators
BGWORKER_BACKEND_DATABASE_CONNECTION, Background Worker Processes
BGWORKER_SHMEM_ACCESS, Background Worker Processes
bgwriter_delay configuration parameter, Background Writer
bgwriter_flush_after configuration parameter, Background Writer
bgwriter_lru_maxpages configuration parameter, Background Writer
bgwriter_lru_multiplier configuration parameter, Background Writer
bigint, Numeric Constants, Integer Types
bigserial, Serial Types
binary data, Binary Data Types, Binary String Functions and Operators
functions, Binary String Functions and Operators
binary string
concatenation, Binary String Functions and Operators
length, Binary String Functions and Operators
bison, Requirements
bit string, Bit-string Constants, Bit String Types
constant, Bit-string Constants
data type, Bit String Types
bit strings, Bit String Functions and Operators
functions, Bit String Functions and Operators
bitmap scan, Combining Multiple Indexes, Planner Method Configuration
bit_and, Aggregate Functions
bit_length, String Functions and Operators
bit_or, Aggregate Functions
BLOB (see large object)
block_size configuration parameter, Preset Options
bloom, bloom
bonjour configuration parameter, Connection Settings
bonjour_name configuration parameter, Connection Settings
Boolean, Boolean Type
data type, Boolean Type
operators (see operators, logical)
bool_and, Aggregate Functions
bool_or, Aggregate Functions
booting
starting the server during, Starting the Database Server
box, Geometric Functions and Operators
box (data type), Boxes
BRIN (see index)
brin_desummarize_range, Index Maintenance Functions
brin_metapage_info, BRIN Functions
brin_page_items, BRIN Functions
brin_page_type, BRIN Functions
brin_revmap_data, BRIN Functions
brin_summarize_new_values, Index Maintenance Functions
brin_summarize_range, Index Maintenance Functions
broadcast, Network Address Functions and Operators
BSD Authentication, BSD Authentication
btree_gin, btree_gin
btree_gist, btree_gist
btrim, String Functions and Operators, Binary String Functions and Operators
bt_index_check, Functions
bt_index_parent_check, Functions
bt_metap, B-tree Functions
bt_page_items, B-tree Functions
bt_page_stats, B-tree Functions
bytea, Binary Data Types
bytea_output configuration parameter, Statement Behavior

C

C, libpq - C Library, ECPG - Embedded SQL in C
C++, Using C++ for Extensibility
canceling, Canceling Queries in Progress
SQL command, Canceling Queries in Progress
cardinality, Array Functions and Operators
CASCADE, Dependency Tracking
with DROP, Dependency Tracking
foreign key action, Foreign Keys
Cascading Replication, High Availability, Load Balancing, and Replication
CASE, Conditional Expressions, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
case sensitivity
of SQL commands, Identifiers and Key Words
cast, CREATE CAST
I/O conversion, CREATE CAST
cbrt, Mathematical Functions and Operators
ceil, Mathematical Functions and Operators
ceiling, Mathematical Functions and Operators
center, Geometric Functions and Operators
Certificate, Certificate Authentication
char, Character Types
character, Character Types
character set, Locale and Formatting, Preset Options, Character Set Support
character string, String Constants, Character Types
concatenation, String Functions and Operators
constant, String Constants
data types, Character Types
length, String Functions and Operators
character varying, Character Types
char_length, String Functions and Operators
check constraint, Check Constraints
CHECK OPTION, CREATE VIEW
checkpoint, WAL Configuration
CHECKPOINT, CHECKPOINT
checkpoint_completion_target configuration parameter, Checkpoints
checkpoint_flush_after configuration parameter, Checkpoints
checkpoint_timeout configuration parameter, Checkpoints
checkpoint_warning configuration parameter, Checkpoints
check_function_bodies configuration parameter, Statement Behavior
chkpass, chkpass
chr, String Functions and Operators
cid, Object Identifier Types
cidr, cidr
circle, Circles, Geometric Functions and Operators
citext, citext
client authentication, Client Authentication
timeout during, Security and Authentication
client_encoding configuration parameter, Locale and Formatting
client_min_messages configuration parameter, Statement Behavior
clock_timestamp, Date/Time Functions and Operators
CLOSE, CLOSE
cluster
of databases (see database cluster)
CLUSTER, CLUSTER
clusterdb, clusterdb
clustering, High Availability, Load Balancing, and Replication
cluster_name configuration parameter, Process Title
cmax, System Columns
cmin, System Columns
COALESCE, COALESCE
COLLATE, Collation Expressions
collation, Collation Support
in PL/pgSQL, Collation of PL/pgSQL Variables
in SQL functions, SQL Functions with Collations
collation for, System Information Functions
column, Concepts, Table Basics
adding, Adding a Column
removing, Removing a Column
renaming, Renaming a Column
system column, System Columns
column data type
changing, Changing a Column's Data Type
column reference, Column References
col_description, System Information Functions
comment, Comments
about database objects, System Information Functions
in SQL, Comments
COMMENT, COMMENT
COMMIT, COMMIT
COMMIT PREPARED, COMMIT PREPARED
commit_delay configuration parameter, Settings
commit_siblings configuration parameter, Settings
common table expression (see WITH)
comparison, Comparison Functions and Operators, Subquery Expressions
composite type, Row and Array Comparisons
operators, Comparison Functions and Operators
row constructor, Row and Array Comparisons
subquery result row, Subquery Expressions
compiling, Building libpq Programs
libpq applications, Building libpq Programs
composite type, Composite Types, The PostgreSQL Type System
comparison, Row and Array Comparisons
constant, Constructing Composite Values
constructor, Row Constructors
computed field, Using Composite Types in Queries
concat, String Functions and Operators
concat_ws, String Functions and Operators
concurrency, Concurrency Control
conditional expression, Conditional Expressions
configuration
of recovery
of a standby server, Recovery Configuration
of the server, Server Configuration
of the server
functions, Configuration Settings Functions
configure, Installation Procedure
config_file configuration parameter, File Locations
conjunction, Logical Operators
connectby, Functions Provided, connectby
connection service file, The Connection Service File
conninfo, Connection Strings
constant, Constants
constraint, Constraints
adding, Adding a Constraint
check, Check Constraints
exclusion, Exclusion Constraints
foreign key, Foreign Keys
name, Check Constraints
NOT NULL, Not-Null Constraints
primary key, Primary Keys
removing, Removing a Constraint
unique, Unique Constraints
constraint exclusion, Partitioning and Constraint Exclusion, Other Planner Options
constraint_exclusion configuration parameter, Other Planner Options
CONTINUE
in PL/pgSQL, CONTINUE
continuous archiving, Backup and Restore
in standby, Continuous archiving in standby
control file, Extension Files
convert, String Functions and Operators
convert_from, String Functions and Operators
convert_to, String Functions and Operators
COPY, Populating a Table With Rows, Functions Associated with the COPY Command, COPY
with libpq, Functions Associated with the COPY Command
corr, Aggregate Functions
correlation, Aggregate Functions
in the query planner, Extended Statistics
cos, Mathematical Functions and Operators
cosd, Mathematical Functions and Operators
cot, Mathematical Functions and Operators
cotd, Mathematical Functions and Operators
count, Aggregate Functions
covariance
population, Aggregate Functions
sample, Aggregate Functions
covar_pop, Aggregate Functions
covar_samp, Aggregate Functions
cpu_index_tuple_cost configuration parameter, Planner Cost Constants
cpu_operator_cost configuration parameter, Planner Cost Constants
cpu_tuple_cost configuration parameter, Planner Cost Constants
CREATE ACCESS METHOD, CREATE ACCESS METHOD
CREATE AGGREGATE, CREATE AGGREGATE
CREATE CAST, CREATE CAST
CREATE COLLATION, CREATE COLLATION
CREATE CONVERSION, CREATE CONVERSION
CREATE DATABASE, Creating a Database, CREATE DATABASE
CREATE DOMAIN, CREATE DOMAIN
CREATE EVENT TRIGGER, CREATE EVENT TRIGGER
CREATE EXTENSION, CREATE EXTENSION
CREATE FOREIGN DATA WRAPPER, CREATE FOREIGN DATA WRAPPER
CREATE FOREIGN TABLE, CREATE FOREIGN TABLE
CREATE FUNCTION, CREATE FUNCTION
CREATE GROUP, CREATE GROUP
CREATE INDEX, CREATE INDEX
CREATE LANGUAGE, CREATE LANGUAGE
CREATE MATERIALIZED VIEW, CREATE MATERIALIZED VIEW
CREATE OPERATOR, CREATE OPERATOR
CREATE OPERATOR CLASS, CREATE OPERATOR CLASS
CREATE OPERATOR FAMILY, CREATE OPERATOR FAMILY
CREATE POLICY, CREATE POLICY
CREATE PUBLICATION, CREATE PUBLICATION
CREATE ROLE, Database Roles, CREATE ROLE
CREATE RULE, CREATE RULE
CREATE SCHEMA, CREATE SCHEMA
CREATE SEQUENCE, CREATE SEQUENCE
CREATE SERVER, CREATE SERVER
CREATE STATISTICS, CREATE STATISTICS
CREATE SUBSCRIPTION, CREATE SUBSCRIPTION
CREATE TABLE, Creating a New Table, CREATE TABLE
CREATE TABLE AS, CREATE TABLE AS
CREATE TABLESPACE, Tablespaces, CREATE TABLESPACE
CREATE TEXT SEARCH CONFIGURATION, CREATE TEXT SEARCH CONFIGURATION
CREATE TEXT SEARCH DICTIONARY, CREATE TEXT SEARCH DICTIONARY
CREATE TEXT SEARCH PARSER, CREATE TEXT SEARCH PARSER
CREATE TEXT SEARCH TEMPLATE, CREATE TEXT SEARCH TEMPLATE
CREATE TRANSFORM, CREATE TRANSFORM
CREATE TRIGGER, CREATE TRIGGER
CREATE TYPE, CREATE TYPE
CREATE USER, CREATE USER
CREATE USER MAPPING, CREATE USER MAPPING
CREATE VIEW, CREATE VIEW
createdb, Creating a Database, Creating a Database, createdb
createuser, Database Roles, createuser
CREATE_REPLICATION_SLOT, Streaming Replication Protocol
cross compilation, Installation Procedure
cross join, Joined Tables
crosstab, crosstab(text), crosstabN(text), crosstab(text, text)
crypt, crypt()
cstring, Pseudo-Types
ctid, System Columns
CTID, View Rules in Non-SELECT Statements
CUBE, GROUPING SETS, CUBE, and ROLLUP
cube (extension), cube
cume_dist, Window Functions
hypothetical, Aggregate Functions
current_catalog, System Information Functions
current_database, System Information Functions
current_date, Date/Time Functions and Operators
current_logfiles
and the log_destination configuration parameter, Where To Log
and the pg_current_logfile function, System Information Functions
current_query, System Information Functions
current_role, System Information Functions
current_schema, System Information Functions
current_schemas, System Information Functions
current_setting, Configuration Settings Functions
current_time, Date/Time Functions and Operators
current_timestamp, Date/Time Functions and Operators
current_user, System Information Functions
currval, Sequence Manipulation Functions
cursor, Cursors, CLOSE, DECLARE, EXPLAIN, FETCH, MOVE
CLOSE, CLOSE
DECLARE, DECLARE
FETCH, FETCH
in PL/pgSQL, Cursors
MOVE, MOVE
showing the query plan, EXPLAIN
cursor_tuple_fraction configuration parameter, Other Planner Options
custom scan provider, Writing A Custom Scan Provider
handler for, Writing A Custom Scan Provider
Cygwin, Cygwin
installation on, Cygwin

D

data area (see database cluster)
data partitioning, High Availability, Load Balancing, and Replication
data type, Data Types, Numeric Types, Enumerated Types, Type Conversion, The PostgreSQL Type System, The PostgreSQL Type System, Base Types in C-Language Functions, User-defined Types
base, The PostgreSQL Type System
category, Overview
composite, The PostgreSQL Type System
constant, Constants of Other Types
conversion, Type Conversion
enumerated (enum), Enumerated Types
internal organization, Base Types in C-Language Functions
numeric, Numeric Types
type cast, Type Casts
user-defined, User-defined Types
database, Creating a Database, Managing Databases
creating, Creating a Database
privilege to create, Role Attributes
database activity, Monitoring Database Activity
monitoring, Monitoring Database Activity
database cluster, Concepts, Creating a Database Cluster
data_checksums configuration parameter, Preset Options
data_directory configuration parameter, File Locations
data_sync_retry configuration parameter, Error Handling
date, Date/Time Types, Dates
constants, Special Values
current, Current Date/Time
output format, Date/Time Output
(see also formatting)
DateStyle configuration parameter, Locale and Formatting
date_part, Date/Time Functions and Operators, EXTRACT, date_part
date_trunc, Date/Time Functions and Operators, date_trunc
dblink, dblink, dblink
dblink_build_sql_delete, dblink_build_sql_delete
dblink_build_sql_insert, dblink_build_sql_insert
dblink_build_sql_update, dblink_build_sql_update
dblink_cancel_query, dblink_cancel_query
dblink_close, dblink_close
dblink_connect, dblink_connect
dblink_connect_u, dblink_connect_u
dblink_disconnect, dblink_disconnect
dblink_error_message, dblink_error_message
dblink_exec, dblink_exec
dblink_fetch, dblink_fetch
dblink_get_connections, dblink_get_connections
dblink_get_notify, dblink_get_notify
dblink_get_pkey, dblink_get_pkey
dblink_get_result, dblink_get_result
dblink_is_busy, dblink_is_busy
dblink_open, dblink_open
dblink_send_query, dblink_send_query
db_user_namespace configuration parameter, Security and Authentication
deadlock, Deadlocks
timeout during, Lock Management
deadlock_timeout configuration parameter, Lock Management
DEALLOCATE, DEALLOCATE
dearmor, armor(), dearmor()
debug_assertions configuration parameter, Preset Options
debug_deadlocks configuration parameter, Developer Options
debug_pretty_print configuration parameter, What To Log
debug_print_parse configuration parameter, What To Log
debug_print_plan configuration parameter, What To Log
debug_print_rewritten configuration parameter, What To Log
decimal (see numeric)
DECLARE, DECLARE
decode, String Functions and Operators, Binary String Functions and Operators
decode_bytea
in PL/Perl, Utility Functions in PL/Perl
decrypt, Raw Encryption Functions
decrypt_iv, Raw Encryption Functions
default value, Default Values
changing, Changing a Column's Default Value
default_statistics_target configuration parameter, Other Planner Options
default_tablespace configuration parameter, Statement Behavior
default_text_search_config configuration parameter, Locale and Formatting
default_transaction_deferrable configuration parameter, Statement Behavior
default_transaction_isolation configuration parameter, Statement Behavior
default_transaction_read_only configuration parameter, Statement Behavior
default_with_oids configuration parameter, Previous PostgreSQL Versions
deferrable transaction
setting, SET TRANSACTION
setting default, Statement Behavior
defined, hstore Operators and Functions
degrees, Mathematical Functions and Operators
delay, Delaying Execution
DELETE, Deletions, Deleting Data, Returning Data From Modified Rows, DELETE
RETURNING, Returning Data From Modified Rows
delete, hstore Operators and Functions
deleting, Deleting Data
dense_rank, Window Functions
hypothetical, Aggregate Functions
diameter, Geometric Functions and Operators
dict_int, dict_int
dict_xsyn, dict_xsyn
difference, Soundex
digest, digest()
dirty read, Transaction Isolation
DISCARD, DISCARD
disjunction, Logical Operators
disk drive, WAL Internals
disk space, Recovering Disk Space
disk usage, Determining Disk Usage
DISTINCT, Querying a Table, DISTINCT
div, Mathematical Functions and Operators
dmetaphone, Double Metaphone
dmetaphone_alt, Double Metaphone
DO, DO
document, What Is a Document?
text search, What Is a Document?
dollar quoting, Dollar-quoted String Constants
double precision, Floating-Point Types
DROP ACCESS METHOD, DROP ACCESS METHOD
DROP AGGREGATE, DROP AGGREGATE
DROP CAST, DROP CAST
DROP COLLATION, DROP COLLATION
DROP CONVERSION, DROP CONVERSION
DROP DATABASE, Destroying a Database, DROP DATABASE
DROP DOMAIN, DROP DOMAIN
DROP EVENT TRIGGER, DROP EVENT TRIGGER
DROP EXTENSION, DROP EXTENSION
DROP FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER
DROP FOREIGN TABLE, DROP FOREIGN TABLE
DROP FUNCTION, DROP FUNCTION
DROP GROUP, DROP GROUP
DROP INDEX, DROP INDEX
DROP LANGUAGE, DROP LANGUAGE
DROP MATERIALIZED VIEW, DROP MATERIALIZED VIEW
DROP OPERATOR, DROP OPERATOR
DROP OPERATOR CLASS, DROP OPERATOR CLASS
DROP OPERATOR FAMILY, DROP OPERATOR FAMILY
DROP OWNED, DROP OWNED
DROP POLICY, DROP POLICY
DROP PUBLICATION, DROP PUBLICATION
DROP ROLE, Database Roles, DROP ROLE
DROP RULE, DROP RULE
DROP SCHEMA, DROP SCHEMA
DROP SEQUENCE, DROP SEQUENCE
DROP SERVER, DROP SERVER
DROP STATISTICS, DROP STATISTICS
DROP SUBSCRIPTION, DROP SUBSCRIPTION
DROP TABLE, Creating a New Table, DROP TABLE
DROP TABLESPACE, DROP TABLESPACE
DROP TEXT SEARCH CONFIGURATION, DROP TEXT SEARCH CONFIGURATION
DROP TEXT SEARCH DICTIONARY, DROP TEXT SEARCH DICTIONARY
DROP TEXT SEARCH PARSER, DROP TEXT SEARCH PARSER
DROP TEXT SEARCH TEMPLATE, DROP TEXT SEARCH TEMPLATE
DROP TRANSFORM, DROP TRANSFORM
DROP TRIGGER, DROP TRIGGER
DROP TYPE, DROP TYPE
DROP USER, DROP USER
DROP USER MAPPING, DROP USER MAPPING
DROP VIEW, DROP VIEW
dropdb, Destroying a Database, dropdb
dropuser, Database Roles, dropuser
DROP_REPLICATION_SLOT, Streaming Replication Protocol
DTD, Creating XML Values
DTrace, Installation Procedure, Dynamic Tracing
duplicate, Querying a Table
duplicates, DISTINCT
dynamic loading, Other Defaults, Dynamic Loading
dynamic_library_path, Dynamic Loading
dynamic_library_path configuration parameter, Other Defaults
dynamic_shared_memory_type configuration parameter, Memory

E

each, hstore Operators and Functions
earth, Cube-based Earth Distances
earthdistance, earthdistance
earth_box, Cube-based Earth Distances
earth_distance, Cube-based Earth Distances
ECPG, ECPG - Embedded SQL in C
ecpg, ecpg
effective_cache_size configuration parameter, Planner Cost Constants
effective_io_concurrency configuration parameter, Asynchronous Behavior
elog, Reporting Errors Within the Server
in PL/Perl, Utility Functions in PL/Perl
in PL/Python, Utility Functions
in PL/Tcl, Database Access from PL/Tcl
embedded SQL, ECPG - Embedded SQL in C
in C, ECPG - Embedded SQL in C
enabled role, enabled_roles
enable_bitmapscan configuration parameter, Planner Method Configuration
enable_gathermerge configuration parameter, Planner Method Configuration
enable_hashagg configuration parameter, Planner Method Configuration
enable_hashjoin configuration parameter, Planner Method Configuration
enable_indexonlyscan configuration parameter, Planner Method Configuration
enable_indexscan configuration parameter, Planner Method Configuration
enable_material configuration parameter, Planner Method Configuration
enable_mergejoin configuration parameter, Planner Method Configuration
enable_nestloop configuration parameter, Planner Method Configuration
enable_seqscan configuration parameter, Planner Method Configuration
enable_sort configuration parameter, Planner Method Configuration
enable_tidscan configuration parameter, Planner Method Configuration
encode, String Functions and Operators, Binary String Functions and Operators
encode_array_constructor
in PL/Perl, Utility Functions in PL/Perl
encode_array_literal
in PL/Perl, Utility Functions in PL/Perl
encode_bytea
in PL/Perl, Utility Functions in PL/Perl
encode_typed_literal
in PL/Perl, Utility Functions in PL/Perl
encrypt, Raw Encryption Functions
encryption, Encryption Options, pgcrypto
for specific columns, pgcrypto
encrypt_iv, Raw Encryption Functions
END, END
enumerated types, Enumerated Types
enum_first, Enum Support Functions
enum_last, Enum Support Functions
enum_range, Enum Support Functions
environment variable, Environment Variables
ephemeral named relation
registering with SPI, SPI_register_relation, SPI_register_trigger_data
unregistering from SPI, SPI_unregister_relation
ereport, Reporting Errors Within the Server
error codes, PostgreSQL Error Codes
libpq, Main Functions
list of, PostgreSQL Error Codes
error message, Connection Status Functions
escape string syntax, String Constants with C-style Escapes
escape_string_warning configuration parameter, Previous PostgreSQL Versions
escaping strings, Escaping Strings for Inclusion in SQL Commands
in libpq, Escaping Strings for Inclusion in SQL Commands
event log, Registering Event Log on Windows
event log, Registering Event Log on Windows
event trigger, Event Triggers, Writing Event Trigger Functions in C
in C, Writing Event Trigger Functions in C
in PL/Tcl, Event Trigger Procedures in PL/Tcl
event_source configuration parameter, Where To Log
event_trigger, Pseudo-Types
every, Aggregate Functions
EXCEPT, Combining Queries
exceptions
in PL/pgSQL, Trapping Errors
in PL/Tcl, Error Handling in PL/Tcl
exclusion constraint, Exclusion Constraints
EXECUTE, EXECUTE
exist, hstore Operators and Functions
EXISTS, Subquery Expressions
EXIT
in PL/pgSQL, EXIT
exit_on_error configuration parameter, Error Handling
exp, Mathematical Functions and Operators
EXPLAIN, Using EXPLAIN, EXPLAIN
expression, Value Expressions
order of evaluation, Expression Evaluation Rules
syntax, Value Expressions
extending SQL, Extending SQL
extension, Packaging Related Objects into an Extension
externally maintained, Extensions
external_pid_file configuration parameter, File Locations
extract, Date/Time Functions and Operators, EXTRACT, date_part
extra_float_digits configuration parameter, Locale and Formatting

F

failover, High Availability, Load Balancing, and Replication
false, Boolean Type
family, Network Address Functions and Operators
fast path, The Fast-Path Interface
fdw_handler, Pseudo-Types
FETCH, FETCH
field
computed, Using Composite Types in Queries
field selection, Field Selection
file system mount points, Use of Secondary File Systems
file_fdw, file_fdw
FILTER, Aggregate Expressions
first_value, Window Functions
flex, Requirements
float4 (see real)
float8 (see double precision)
floating point, Floating-Point Types
floating-point
display, Locale and Formatting
floor, Mathematical Functions and Operators
force_parallel_mode configuration parameter, Other Planner Options
foreign data, Foreign Data
foreign data wrapper, Writing A Foreign Data Wrapper
handler for, Writing A Foreign Data Wrapper
foreign key, Foreign Keys, Foreign Keys
foreign table, Foreign Data
format, String Functions and Operators, format
use in PL/pgSQL, Executing Dynamic Commands
formatting, Data Type Formatting Functions
format_type, System Information Functions
Free Space Map, Free Space Map
FreeBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
from_collapse_limit configuration parameter, Other Planner Options
FSM (see Free Space Map)
fsm_page_contents, General Functions
fsync configuration parameter, Settings
full text search, Text Search Types, Text Search Types, Full Text Search
data types, Text Search Types
functions and operators, Text Search Types
full_page_writes configuration parameter, Settings
function, Table Functions, Functions and Operators, Functions, Polymorphic Types, User-defined Functions, Query Language (SQL) Functions, Internal Functions, C-Language Functions
default values for arguments, SQL Functions with Default Values for Arguments
in the FROM clause, Table Functions
internal, Internal Functions
invocation, Function Calls
mixed notation, Using Mixed Notation
named argument, Arguments for SQL Functions
named notation, Using Named Notation
output parameter, SQL Functions with Output Parameters
polymorphic, Polymorphic Types
positional notation, Using Positional Notation
RETURNS TABLE, SQL Functions Returning TABLE
type resolution in an invocation, Functions
user-defined, User-defined Functions, Query Language (SQL) Functions, C-Language Functions
in C, C-Language Functions
in SQL, Query Language (SQL) Functions
variadic, SQL Functions with Variable Numbers of Arguments
with SETOF, SQL Functions Returning Sets
functional dependency, The GROUP BY and HAVING Clauses
fuzzystrmatch, fuzzystrmatch

G

gc_to_sec, Cube-based Earth Distances
generate_series, Set Returning Functions
generate_subscripts, Set Returning Functions
genetic query optimization, Genetic Query Optimizer
gen_random_bytes, Random-Data Functions
gen_random_uuid, Random-Data Functions
gen_salt, gen_salt()
GEQO (see genetic query optimization)
geqo configuration parameter, Genetic Query Optimizer
geqo_effort configuration parameter, Genetic Query Optimizer
geqo_generations configuration parameter, Genetic Query Optimizer
geqo_pool_size configuration parameter, Genetic Query Optimizer
geqo_seed configuration parameter, Genetic Query Optimizer
geqo_selection_bias configuration parameter, Genetic Query Optimizer
geqo_threshold configuration parameter, Genetic Query Optimizer
get_bit, Binary String Functions and Operators
get_byte, Binary String Functions and Operators
get_current_ts_config, Text Search Functions and Operators
get_raw_page, General Functions
GIN (see index)
gin_clean_pending_list, Index Maintenance Functions
gin_fuzzy_search_limit configuration parameter, Other Defaults
gin_leafpage_items, GIN Functions
gin_metapage_info, GIN Functions
gin_page_opaque_info, GIN Functions
gin_pending_list_limit configuration parameter, Statement Behavior
GiST (see index)
global data, Global Data in PL/Tcl
in PL/Python, Sharing Data
in PL/Tcl, Global Data in PL/Tcl
GRANT, Privileges, GRANT
GREATEST, GREATEST and LEAST, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
Gregorian calendar, History of Units
GROUP BY, Aggregate Functions, The GROUP BY and HAVING Clauses
grouping, The GROUP BY and HAVING Clauses
GROUPING, Aggregate Functions
GROUPING SETS, GROUPING SETS, CUBE, and ROLLUP
GSSAPI, GSSAPI Authentication
GUID, UUID Type

H

hash (see index)
hash_bitmap_info, Hash Functions
hash_metapage_info, Hash Functions
hash_page_items, Hash Functions
hash_page_stats, Hash Functions
hash_page_type, Hash Functions
has_any_column_privilege, System Information Functions
has_column_privilege, System Information Functions
has_database_privilege, System Information Functions
has_foreign_data_wrapper_privilege, System Information Functions
has_function_privilege, System Information Functions
has_language_privilege, System Information Functions
has_schema_privilege, System Information Functions
has_sequence_privilege, System Information Functions
has_server_privilege, System Information Functions
has_tablespace_privilege, System Information Functions
has_table_privilege, System Information Functions
has_type_privilege, System Information Functions
HAVING, Aggregate Functions, The GROUP BY and HAVING Clauses
hba_file configuration parameter, File Locations
heap_page_items, General Functions
heap_page_item_attrs, General Functions
height, Geometric Functions and Operators
hierarchical database, Concepts
high availability, High Availability, Load Balancing, and Replication
history, A Brief History of PostgreSQL
of PostgreSQL, A Brief History of PostgreSQL
hmac, hmac()
host, Network Address Functions and Operators
host name, Parameter Key Words
hostmask, Network Address Functions and Operators
Hot Standby, High Availability, Load Balancing, and Replication
hot_standby configuration parameter, Standby Servers
hot_standby_feedback configuration parameter, Standby Servers
HP-UX, HP-UX
installation on, HP-UX
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
hstore, hstore, hstore Operators and Functions
hstore_to_array, hstore Operators and Functions
hstore_to_json, hstore Operators and Functions
hstore_to_jsonb, hstore Operators and Functions
hstore_to_jsonb_loose, hstore Operators and Functions
hstore_to_json_loose, hstore Operators and Functions
hstore_to_matrix, hstore Operators and Functions
huge_pages configuration parameter, Memory
hypothetical-set aggregate
built-in, Aggregate Functions

I

icount, intarray Functions and Operators
ICU, Installation Procedure, Managing Collations, Parameters
ident, Ident Authentication
identifier, Identifiers and Key Words
length, Identifiers and Key Words
syntax of, Identifiers and Key Words
IDENTIFY_SYSTEM, Streaming Replication Protocol
ident_file configuration parameter, File Locations
idle_in_transaction_session_timeout configuration parameter, Statement Behavior
idx, intarray Functions and Operators
IFNULL, COALESCE
ignore_checksum_failure configuration parameter, Developer Options
ignore_system_indexes configuration parameter, Developer Options
IMMUTABLE, Function Volatility Categories
IMPORT FOREIGN SCHEMA, IMPORT FOREIGN SCHEMA
IN, Subquery Expressions, Row and Array Comparisons
include
in configuration file, Managing Configuration File Contents
include_dir
in configuration file, Managing Configuration File Contents
include_if_exists
in configuration file, Managing Configuration File Contents
index, Indexes, Multicolumn Indexes, Indexes and ORDER BY, Combining Multiple Indexes, Unique Indexes, Indexes on Expressions, Partial Indexes, Index-Only Scans, Examining Index Usage, GIN and GiST Index Types, GIN and GiST Index Types, Locking and Indexes, Interfacing Extensions To Indexes, Building Indexes Concurrently, Operators and Functions
and ORDER BY, Indexes and ORDER BY
B-tree, Index Types
BRIN, Index Types, BRIN Indexes
building concurrently, Building Indexes Concurrently
combining multiple indexes, Combining Multiple Indexes
examining usage, Examining Index Usage
on expressions, Indexes on Expressions
for user-defined data type, Interfacing Extensions To Indexes
GIN, Index Types, GIN and GiST Index Types, GIN Indexes
text search, GIN and GiST Index Types
GiST, Index Types, GIN and GiST Index Types, GiST Indexes
text search, GIN and GiST Index Types
hash, Index Types
index-only scans, Index-Only Scans
locks, Locking and Indexes
multicolumn, Multicolumn Indexes
partial, Partial Indexes
SP-GiST, Index Types, SP-GiST Indexes
unique, Unique Indexes
index scan, Planner Method Configuration
index-only scan, Index-Only Scans
index_am_handler, Pseudo-Types
inet (data type), inet
inet_client_addr, System Information Functions
inet_client_port, System Information Functions
inet_merge, Network Address Functions and Operators
inet_same_family, Network Address Functions and Operators
inet_server_addr, System Information Functions
inet_server_port, System Information Functions
information schema, The Information Schema
inheritance, Inheritance, Inheritance
initcap, String Functions and Operators
initdb, Creating a Database Cluster, initdb
Initialization Fork, The Initialization Fork
input function, User-defined Types
INSERT, Populating a Table With Rows, Inserting Data, Returning Data From Modified Rows, INSERT
RETURNING, Returning Data From Modified Rows
inserting, Inserting Data
installation, Installation from Source Code
on Windows, Installation from Source Code on Windows
instr function, Appendix
int2 (see smallint)
int4 (see integer)
int8 (see bigint)
intagg, intagg
intarray, intarray
integer, Numeric Constants, Integer Types
integer_datetimes configuration parameter, Preset Options
interfaces
externally maintained, Client Interfaces
internal, Pseudo-Types
INTERSECT, Combining Queries
interval, Date/Time Types, Interval Input
output format, Interval Output
(see also formatting)
IntervalStyle configuration parameter, Locale and Formatting
intset, intarray Functions and Operators
int_array_aggregate, Functions
int_array_enum, Functions
inverse distribution, Aggregate Functions
IS DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
IS DOCUMENT, IS DOCUMENT
IS FALSE, Comparison Functions and Operators
IS NOT DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
IS NOT DOCUMENT, IS NOT DOCUMENT
IS NOT FALSE, Comparison Functions and Operators
IS NOT NULL, Comparison Functions and Operators
IS NOT TRUE, Comparison Functions and Operators
IS NOT UNKNOWN, Comparison Functions and Operators
IS NULL, Comparison Functions and Operators, Platform and Client Compatibility
IS TRUE, Comparison Functions and Operators
IS UNKNOWN, Comparison Functions and Operators
isclosed, Geometric Functions and Operators
isempty, Range Functions and Operators
isfinite, Date/Time Functions and Operators
isn, isn
ISNULL, Comparison Functions and Operators
isn_weak, Functions and Operators
isopen, Geometric Functions and Operators
is_array_ref
in PL/Perl, Utility Functions in PL/Perl
is_valid, Functions and Operators

J

join, Joins Between Tables, Joined Tables, Controlling the Planner with Explicit JOIN Clauses
controlling the order, Controlling the Planner with Explicit JOIN Clauses
cross, Joined Tables
left, Joined Tables
natural, Joined Tables
outer, Joins Between Tables, Joined Tables
right, Joined Tables
self, Joins Between Tables
join_collapse_limit configuration parameter, Other Planner Options
JSON, JSON Types, JSON Functions and Operators
functions and operators, JSON Functions and Operators
JSONB, JSON Types
jsonb
containment, jsonb Containment and Existence
existence, jsonb Containment and Existence
indexes on, jsonb Indexing
jsonb_agg, Aggregate Functions
jsonb_array_elements, JSON Functions and Operators
jsonb_array_elements_text, JSON Functions and Operators
jsonb_array_length, JSON Functions and Operators
jsonb_build_array, JSON Functions and Operators
jsonb_build_object, JSON Functions and Operators
jsonb_each, JSON Functions and Operators
jsonb_each_text, JSON Functions and Operators
jsonb_extract_path, JSON Functions and Operators
jsonb_extract_path_text, JSON Functions and Operators
jsonb_insert, JSON Functions and Operators
jsonb_object, JSON Functions and Operators
jsonb_object_agg, Aggregate Functions
jsonb_object_keys, JSON Functions and Operators
jsonb_populate_record, JSON Functions and Operators
jsonb_populate_recordset, JSON Functions and Operators
jsonb_pretty, JSON Functions and Operators
jsonb_set, JSON Functions and Operators
jsonb_strip_nulls, JSON Functions and Operators
jsonb_to_record, JSON Functions and Operators
jsonb_to_recordset, JSON Functions and Operators
jsonb_typeof, JSON Functions and Operators
json_agg, Aggregate Functions
json_array_elements, JSON Functions and Operators
json_array_elements_text, JSON Functions and Operators
json_array_length, JSON Functions and Operators
json_build_array, JSON Functions and Operators
json_build_object, JSON Functions and Operators
json_each, JSON Functions and Operators
json_each_text, JSON Functions and Operators
json_extract_path, JSON Functions and Operators
json_extract_path_text, JSON Functions and Operators
json_object, JSON Functions and Operators
json_object_agg, Aggregate Functions
json_object_keys, JSON Functions and Operators
json_populate_record, JSON Functions and Operators
json_populate_recordset, JSON Functions and Operators
json_strip_nulls, JSON Functions and Operators
json_to_record, JSON Functions and Operators
json_to_recordset, JSON Functions and Operators
json_typeof, JSON Functions and Operators
Julian date, History of Units
justify_days, Date/Time Functions and Operators
justify_hours, Date/Time Functions and Operators
justify_interval, Date/Time Functions and Operators

K

key word, Identifiers and Key Words, SQL Key Words
list of, SQL Key Words
syntax of, Identifiers and Key Words
krb_caseins_users configuration parameter, Security and Authentication
krb_server_keyfile configuration parameter, Security and Authentication

L

label (see alias)
lag, Window Functions
language_handler, Pseudo-Types
large object, Large Objects
lastval, Sequence Manipulation Functions
last_value, Window Functions
LATERAL, LATERAL Subqueries
in the FROM clause, LATERAL Subqueries
latitude, Cube-based Earth Distances
lca, Operators and Functions
lc_collate configuration parameter, Preset Options
lc_ctype configuration parameter, Preset Options
lc_messages configuration parameter, Locale and Formatting
lc_monetary configuration parameter, Locale and Formatting
lc_numeric configuration parameter, Locale and Formatting
lc_time configuration parameter, Locale and Formatting
LDAP, Installation Procedure, LDAP Authentication
LDAP connection parameter lookup, LDAP Lookup of Connection Parameters
ldconfig, Shared Libraries
lead, Window Functions
LEAST, GREATEST and LEAST, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
left, String Functions and Operators
left join, Joined Tables
length, String Functions and Operators, Binary String Functions and Operators, Geometric Functions and Operators, Text Search Functions and Operators
of a binary string (see binary strings, length)
of a character string (see character string, length)
length(tsvector), Manipulating Documents
levenshtein, Levenshtein
levenshtein_less_equal, Levenshtein
lex, Requirements
libedit, Requirements
libperl, Requirements
libpq, libpq - C Library, Retrieving Query Results Row-By-Row
single-row mode, Retrieving Query Results Row-By-Row
libpq-fe.h, libpq - C Library, Connection Status Functions
libpq-int.h, Connection Status Functions
libpython, Requirements
library finalization function, Dynamic Loading
library initialization function, Dynamic Loading
LIKE, LIKE
and locales, Behavior
LIMIT, LIMIT and OFFSET
line, Lines
line segment, Line Segments
linear regression, Aggregate Functions
Linux
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
LISTEN, LISTEN
listen_addresses configuration parameter, Connection Settings
ll_to_earth, Cube-based Earth Distances
ln, Mathematical Functions and Operators
lo, lo
LOAD, LOAD
load balancing, High Availability, Load Balancing, and Replication
locale, Creating a Database Cluster, Locale Support
localtime, Date/Time Functions and Operators
localtimestamp, Date/Time Functions and Operators
local_preload_libraries configuration parameter, Shared Library Preloading
lock, Explicit Locking, Advisory Locks, Viewing Locks
advisory, Advisory Locks
monitoring, Viewing Locks
LOCK, Table-level Locks, LOCK
lock_timeout configuration parameter, Statement Behavior
log, Mathematical Functions and Operators
log shipping, High Availability, Load Balancing, and Replication
Logging
current_logfiles file and the pg_current_logfile - function, System Information Functions
pg_current_logfile function, System Information Functions
logging_collector configuration parameter, Where To Log
Logical Decoding, Logical Decoding, Logical Decoding
login privilege, Role Attributes
log_autovacuum_min_duration configuration parameter, Automatic Vacuuming
log_btree_build_stats configuration parameter, Developer Options
log_checkpoints configuration parameter, What To Log
log_connections configuration parameter, What To Log
log_destination configuration parameter, Where To Log
log_directory configuration parameter, Where To Log
log_disconnections configuration parameter, What To Log
log_duration configuration parameter, What To Log
log_error_verbosity configuration parameter, What To Log
log_executor_stats configuration parameter, Statistics Monitoring
log_filename configuration parameter, Where To Log
log_file_mode configuration parameter, Where To Log
log_hostname configuration parameter, What To Log
log_line_prefix configuration parameter, What To Log
log_lock_waits configuration parameter, What To Log
log_min_duration_statement configuration parameter, When To Log
log_min_error_statement configuration parameter, When To Log
log_min_messages configuration parameter, When To Log
log_parser_stats configuration parameter, Statistics Monitoring
log_planner_stats configuration parameter, Statistics Monitoring
log_replication_commands configuration parameter, What To Log
log_rotation_age configuration parameter, Where To Log
log_rotation_size configuration parameter, Where To Log
log_statement configuration parameter, What To Log
log_statement_stats configuration parameter, Statistics Monitoring
log_temp_files configuration parameter, What To Log
log_timezone configuration parameter, What To Log
log_truncate_on_rotation configuration parameter, Where To Log
longitude, Cube-based Earth Distances
looks_like_number
in PL/Perl, Utility Functions in PL/Perl
loop, Simple Loops
in PL/pgSQL, Simple Loops
lower, String Functions and Operators, Range Functions and Operators
and locales, Behavior
lower_inc, Range Functions and Operators
lower_inf, Range Functions and Operators
lo_close, Closing a Large Object Descriptor
lo_compat_privileges configuration parameter, Previous PostgreSQL Versions
lo_creat, Creating a Large Object, Server-side Functions
lo_create, Creating a Large Object
lo_export, Exporting a Large Object, Server-side Functions
lo_from_bytea, Server-side Functions
lo_get, Server-side Functions
lo_import, Importing a Large Object, Server-side Functions
lo_import_with_oid, Importing a Large Object
lo_lseek, Seeking in a Large Object
lo_lseek64, Seeking in a Large Object
lo_open, Opening an Existing Large Object
lo_put, Server-side Functions
lo_read, Reading Data from a Large Object
lo_tell, Obtaining the Seek Position of a Large Object
lo_tell64, Obtaining the Seek Position of a Large Object
lo_truncate, Truncating a Large Object
lo_truncate64, Truncating a Large Object
lo_unlink, Removing a Large Object, Server-side Functions
lo_write, Writing Data to a Large Object
lpad, String Functions and Operators
lseg, Line Segments, Geometric Functions and Operators
LSN, WAL Internals
ltree, ltree
ltree2text, Operators and Functions
ltrim, String Functions and Operators

M

MAC address (see macaddr)
MAC address (EUI-64 format) (see macaddr)
macaddr (data type), macaddr
macaddr8 (data type), macaddr8
macaddr8_set7bit, Network Address Functions and Operators
macOS, macOS
installation on, macOS
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
magic block, Dynamic Loading
maintenance, Routine Database Maintenance Tasks
maintenance_work_mem configuration parameter, Memory
make, Requirements
make_date, Date/Time Functions and Operators
make_interval, Date/Time Functions and Operators
make_time, Date/Time Functions and Operators
make_timestamp, Date/Time Functions and Operators
make_timestamptz, Date/Time Functions and Operators
make_valid, Functions and Operators
MANPATH, Environment Variables
masklen, Network Address Functions and Operators
materialized view, Materialized Views
implementation through rules, Materialized Views
materialized views, pg_matviews
max, Aggregate Functions
max_connections configuration parameter, Connection Settings
max_files_per_process configuration parameter, Kernel Resource Usage
max_function_args configuration parameter, Preset Options
max_identifier_length configuration parameter, Preset Options
max_index_keys configuration parameter, Preset Options
max_locks_per_transaction configuration parameter, Lock Management
max_logical_replication_workers configuration parameter, Subscribers
max_parallel_workers configuration parameter, Asynchronous Behavior
max_parallel_workers_per_gather configuration parameter, Asynchronous Behavior
max_pred_locks_per_page configuration parameter, Lock Management
max_pred_locks_per_relation configuration parameter, Lock Management
max_pred_locks_per_transaction configuration parameter, Lock Management
max_prepared_transactions configuration parameter, Memory
max_replication_slots configuration parameter, Sending Server(s)
max_stack_depth configuration parameter, Memory
max_standby_archive_delay configuration parameter, Standby Servers
max_standby_streaming_delay configuration parameter, Standby Servers
max_sync_workers_per_subscription configuration parameter, Subscribers
max_wal_senders configuration parameter, Sending Server(s)
max_wal_size configuration parameter, Checkpoints
max_worker_processes configuration parameter, Asynchronous Behavior
md5, String Functions and Operators, Binary String Functions and Operators
MD5, Password Authentication
median, Aggregate Expressions
(see also percentile)
memory context
in SPI, Memory Management
memory overcommit, Linux Memory Overcommit
metaphone, Metaphone
min, Aggregate Functions
MinGW, MinGW/Native Windows
installation on, MinGW/Native Windows
min_parallel_index_scan_size configuration parameter, Planner Cost Constants
min_parallel_table_scan_size configuration parameter, Planner Cost Constants
min_wal_size configuration parameter, Checkpoints
mod, Mathematical Functions and Operators
mode
statistical, Aggregate Functions
monitoring, Monitoring Database Activity
database activity, Monitoring Database Activity
MOVE, MOVE
moving-aggregate mode, Moving-Aggregate Mode
Multiversion Concurrency Control, Introduction
MultiXactId, Multixacts and Wraparound
MVCC, Introduction

N

name, Identifiers and Key Words
qualified, Creating a Schema
syntax of, Identifiers and Key Words
unqualified, The Schema Search Path
NaN (see not a number)
natural join, Joined Tables
negation, Logical Operators
NetBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
netmask, Network Address Functions and Operators
network, Network Address Types, Network Address Functions and Operators
data types, Network Address Types
Network Attached Storage (NAS) (see Network File Systems)
Network File Systems, Use of Network File Systems
nextval, Sequence Manipulation Functions
NFS (see Network File Systems)
nlevel, Operators and Functions
non-durable, Non-Durable Settings
nonblocking connection, Database Connection Control Functions, Asynchronous Command Processing
nonrepeatable read, Transaction Isolation
normal_rand, normal_rand
NOT (operator), Logical Operators
not a number
double precision, Floating-Point Types
numeric (data type), Arbitrary Precision Numbers
NOT IN, Subquery Expressions, Row and Array Comparisons
not-null constraint, Not-Null Constraints
notation, Calling Functions
functions, Calling Functions
notice processing, Notice Processing
in libpq, Notice Processing
notice processor, Notice Processing
notice receiver, Notice Processing
NOTIFY, Asynchronous Notification, NOTIFY
in libpq, Asynchronous Notification
NOTNULL, Comparison Functions and Operators
now, Date/Time Functions and Operators
npoints, Geometric Functions and Operators
nth_value, Window Functions
ntile, Window Functions
null value
with check constraints, Check Constraints
comparing, Comparison Functions and Operators
default value, Default Values
in DISTINCT, DISTINCT
in libpq, Retrieving Query Result Information
in PL/Perl, PL/Perl Functions and Arguments
in PL/Python, Null, None
with unique constraints, Unique Constraints
NULLIF, NULLIF
number
constant, Numeric Constants
numeric, Numeric Constants
numeric (data type), Arbitrary Precision Numbers
numnode, Text Search Functions and Operators, Manipulating Queries
num_nonnulls, Comparison Functions and Operators
num_nulls, Comparison Functions and Operators
NVL, COALESCE

O

object identifier, Object Identifier Types
data type, Object Identifier Types
object-oriented database, Concepts
obj_description, System Information Functions
octet_length, String Functions and Operators, Binary String Functions and Operators
OFFSET, LIMIT and OFFSET
OID
column, System Columns
in libpq, Retrieving Other Result Information
oid, Object Identifier Types
oid2name, oid2name
old_snapshot_threshold configuration parameter, Asynchronous Behavior
ON CONFLICT, INSERT
ONLY, The FROM Clause
OOM, Linux Memory Overcommit
opaque, Pseudo-Types
OpenBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
OpenSSL, Installation Procedure
(see also SSL)
operator, Operators, Operator Precedence, Functions and Operators, Logical Operators, Operators, User-defined Operators
invocation, Operator Invocations
logical, Logical Operators
precedence, Operator Precedence
syntax, Operators
type resolution in an invocation, Operators
user-defined, User-defined Operators
operator class, Operator Classes and Operator Families, Index Methods and Operator Classes
operator family, Operator Classes and Operator Families, Operator Classes and Operator Families
operator_precedence_warning configuration parameter, Previous PostgreSQL Versions
OR (operator), Logical Operators
Oracle, Porting from Oracle PL/SQL
porting from PL/SQL to PL/pgSQL, Porting from Oracle PL/SQL
ORDER BY, Querying a Table, Sorting Rows
and locales, Behavior
ordered-set aggregate, Aggregate Expressions
built-in, Aggregate Functions
ordering operator, System Dependencies on Operator Classes
ordinality, Set Returning Functions
outer join, Joined Tables
output function, User-defined Types
OVER clause, Window Function Calls
overcommit, Linux Memory Overcommit
OVERLAPS, Date/Time Functions and Operators
overlay, String Functions and Operators, Binary String Functions and Operators
overloading, Function Overloading
functions, Function Overloading
operators, User-defined Operators
owner, Privileges

P

pageinspect, pageinspect
page_checksum, General Functions
page_header, General Functions
palloc, Writing Code
PAM, Installation Procedure, PAM Authentication
parallel query, Parallel Query
parallel_setup_cost configuration parameter, Planner Cost Constants
parallel_tuple_cost configuration parameter, Planner Cost Constants
parameter
syntax, Positional Parameters
parenthesis, Value Expressions
parse_ident, String Functions and Operators
partitioned table, Table Partitioning
partitioning, Table Partitioning
password, Role Attributes
authentication, Password Authentication
of the superuser, Creating a Database Cluster
password file, The Password File
passwordcheck, passwordcheck
password_encryption configuration parameter, Security and Authentication
path, Geometric Functions and Operators
for schemas, Statement Behavior
PATH, Environment Variables
path (data type), Paths
pattern matching, Pattern Matching
patterns
in psql and pg_dump, Patterns
pclose, Geometric Functions and Operators
peer, Peer Authentication
percentile
continuous, Aggregate Functions
discrete, Aggregate Functions
percent_rank, Window Functions
hypothetical, Aggregate Functions
performance, Performance Tips
perl, Requirements
Perl, PL/Perl - Perl Procedural Language
permission (see privilege)
pfree, Writing Code
PGAPPNAME, Environment Variables
pgbench, pgbench
PGcancel, Canceling Queries in Progress
PGCLIENTENCODING, Environment Variables
PGconn, Database Connection Control Functions
PGCONNECT_TIMEOUT, Environment Variables
pgcrypto, pgcrypto
PGDATA, Creating a Database Cluster
PGDATABASE, Environment Variables
PGDATESTYLE, Environment Variables
PGEventProc, Event Callback Procedure
PGGEQO, Environment Variables
PGGSSLIB, Environment Variables
PGHOST, Environment Variables
PGHOSTADDR, Environment Variables
PGKRBSRVNAME, Environment Variables
PGLOCALEDIR, Environment Variables
PGOPTIONS, Environment Variables
PGPASSFILE, Environment Variables
PGPASSWORD, Environment Variables
PGPORT, Environment Variables
pgp_armor_headers, pgp_armor_headers
pgp_key_id, pgp_key_id()
pgp_pub_decrypt, pgp_pub_decrypt()
pgp_pub_decrypt_bytea, pgp_pub_decrypt()
pgp_pub_encrypt, pgp_pub_encrypt()
pgp_pub_encrypt_bytea, pgp_pub_encrypt()
pgp_sym_decrypt, pgp_sym_decrypt()
pgp_sym_decrypt_bytea, pgp_sym_decrypt()
pgp_sym_encrypt, pgp_sym_encrypt()
pgp_sym_encrypt_bytea, pgp_sym_encrypt()
PGREQUIREPEER, Environment Variables
PGREQUIRESSL, Environment Variables
PGresult, Main Functions
pgrowlocks, pgrowlocks, Overview
PGSERVICE, Environment Variables
PGSERVICEFILE, Environment Variables
PGSSLCERT, Environment Variables
PGSSLCOMPRESSION, Environment Variables
PGSSLCRL, Environment Variables
PGSSLKEY, Environment Variables
PGSSLMODE, Environment Variables
PGSSLROOTCERT, Environment Variables
pgstatginindex, Functions
pgstathashindex, Functions
pgstatindex, Functions
pgstattuple, pgstattuple, Functions
pgstattuple_approx, Functions
PGSYSCONFDIR, Environment Variables
PGTARGETSESSIONATTRS, Environment Variables
PGTZ, Environment Variables
PGUSER, Environment Variables
pgxs, Extension Building Infrastructure
pg_advisory_lock, Advisory Lock Functions
pg_advisory_lock_shared, Advisory Lock Functions
pg_advisory_unlock, Advisory Lock Functions
pg_advisory_unlock_all, Advisory Lock Functions
pg_advisory_unlock_shared, Advisory Lock Functions
pg_advisory_xact_lock, Advisory Lock Functions
pg_advisory_xact_lock_shared, Advisory Lock Functions
pg_aggregate, pg_aggregate
pg_am, pg_am
pg_amop, pg_amop
pg_amproc, pg_amproc
pg_archivecleanup, pg_archivecleanup
pg_attrdef, pg_attrdef
pg_attribute, pg_attribute
pg_authid, pg_authid
pg_auth_members, pg_auth_members
pg_available_extensions, pg_available_extensions
pg_available_extension_versions, pg_available_extension_versions
pg_backend_pid, System Information Functions
pg_backup_start_time, Backup Control Functions
pg_basebackup, pg_basebackup
pg_blocking_pids, System Information Functions
pg_buffercache, pg_buffercache
pg_buffercache_pages, pg_buffercache
pg_cancel_backend, Server Signaling Functions
pg_cast, pg_cast
pg_class, pg_class
pg_client_encoding, String Functions and Operators
pg_collation, pg_collation
pg_collation_actual_version, Database Object Management Functions
pg_collation_is_visible, System Information Functions
pg_column_size, Database Object Management Functions
pg_config, pg_config, pg_config
with - ecpg, Processing Embedded SQL Programs
with libpq, Building libpq Programs
with user-defined C functions, Writing Code
pg_conf_load_time, System Information Functions
pg_constraint, pg_constraint
pg_controldata, pg_controldata
pg_control_checkpoint, System Information Functions
pg_control_init, System Information Functions
pg_control_recovery, System Information Functions
pg_control_system, System Information Functions
pg_conversion, pg_conversion
pg_conversion_is_visible, System Information Functions
pg_create_logical_replication_slot, Replication Functions
pg_create_physical_replication_slot, Replication Functions
pg_create_restore_point, Backup Control Functions
pg_ctl, Creating a Database Cluster, Starting the Database Server, pg_ctl
pg_current_logfile, System Information Functions
pg_current_wal_flush_lsn, Backup Control Functions
pg_current_wal_insert_lsn, Backup Control Functions
pg_current_wal_lsn, Backup Control Functions
pg_cursors, pg_cursors
pg_database, Template Databases, pg_database
pg_database_size, Database Object Management Functions
pg_db_role_setting, pg_db_role_setting
pg_ddl_command, Pseudo-Types
pg_default_acl, pg_default_acl
pg_depend, pg_depend
pg_describe_object, System Information Functions
pg_description, pg_description
pg_drop_replication_slot, Replication Functions
pg_dump, pg_dump
pg_dumpall, pg_dumpall
use during upgrade, Upgrading Data via pg_dumpall
pg_enum, pg_enum
pg_event_trigger, pg_event_trigger
pg_event_trigger_ddl_commands, Capturing Changes at Command End
pg_event_trigger_dropped_objects, Processing Objects Dropped by a DDL Command
pg_event_trigger_table_rewrite_oid, Handling a Table Rewrite Event
pg_event_trigger_table_rewrite_reason, Handling a Table Rewrite Event
pg_export_snapshot, Snapshot Synchronization Functions
pg_extension, pg_extension
pg_extension_config_dump, Extension Configuration Tables
pg_filenode_relation, Database Object Management Functions
pg_file_rename, adminpack
pg_file_settings, pg_file_settings
pg_file_unlink, adminpack
pg_file_write, adminpack
pg_foreign_data_wrapper, pg_foreign_data_wrapper
pg_foreign_server, pg_foreign_server
pg_foreign_table, pg_foreign_table
pg_freespace, Functions
pg_freespacemap, pg_freespacemap
pg_function_is_visible, System Information Functions
pg_get_constraintdef, System Information Functions
pg_get_expr, System Information Functions
pg_get_functiondef, System Information Functions
pg_get_function_arguments, System Information Functions
pg_get_function_identity_arguments, System Information Functions
pg_get_function_result, System Information Functions
pg_get_indexdef, System Information Functions
pg_get_keywords, System Information Functions
pg_get_object_address, System Information Functions
pg_get_ruledef, System Information Functions
pg_get_serial_sequence, System Information Functions
pg_get_statisticsobjdef, System Information Functions
pg_get_triggerdef, System Information Functions
pg_get_userbyid, System Information Functions
pg_get_viewdef, System Information Functions
pg_group, pg_group
pg_has_role, System Information Functions
pg_hba.conf, The pg_hba.conf File
pg_hba_file_rules, pg_hba_file_rules
pg_ident.conf, User Name Maps
pg_identify_object, System Information Functions
pg_identify_object_as_address, System Information Functions
pg_import_system_collations, Database Object Management Functions
pg_index, pg_index
pg_indexam_has_property, System Information Functions
pg_indexes, pg_indexes
pg_indexes_size, Database Object Management Functions
pg_index_column_has_property, System Information Functions
pg_index_has_property, System Information Functions
pg_inherits, pg_inherits
pg_init_privs, pg_init_privs
pg_isready, pg_isready
pg_is_in_backup, Backup Control Functions
pg_is_in_recovery, Recovery Control Functions
pg_is_other_temp_schema, System Information Functions
pg_is_wal_replay_paused, Recovery Control Functions
pg_language, pg_language
pg_largeobject, pg_largeobject
pg_largeobject_metadata, pg_largeobject_metadata
pg_last_committed_xact, System Information Functions
pg_last_wal_receive_lsn, Recovery Control Functions
pg_last_wal_replay_lsn, Recovery Control Functions
pg_last_xact_replay_timestamp, Recovery Control Functions
pg_listening_channels, System Information Functions
pg_locks, pg_locks
pg_logdir_ls, adminpack
pg_logical_emit_message, Replication Functions
pg_logical_slot_get_binary_changes, Replication Functions
pg_logical_slot_get_changes, Replication Functions
pg_logical_slot_peek_binary_changes, Replication Functions
pg_logical_slot_peek_changes, Replication Functions
pg_lsn, pg_lsn Type
pg_ls_dir, Generic File Access Functions
pg_ls_logdir, Generic File Access Functions
pg_ls_waldir, Generic File Access Functions
pg_matviews, pg_matviews
pg_my_temp_schema, System Information Functions
pg_namespace, pg_namespace
pg_notification_queue_usage, System Information Functions
pg_notify, pg_notify
pg_opclass, pg_opclass
pg_opclass_is_visible, System Information Functions
pg_operator, pg_operator
pg_operator_is_visible, System Information Functions
pg_opfamily, pg_opfamily
pg_opfamily_is_visible, System Information Functions
pg_options_to_table, System Information Functions
pg_partitioned_table, pg_partitioned_table
pg_pltemplate, pg_pltemplate
pg_policies, pg_policies
pg_policy, pg_policy
pg_postmaster_start_time, System Information Functions
pg_prepared_statements, pg_prepared_statements
pg_prepared_xacts, pg_prepared_xacts
pg_prewarm, pg_prewarm
pg_proc, pg_proc
pg_publication, pg_publication
pg_publication_rel, pg_publication_rel
pg_publication_tables, pg_publication_tables
pg_range, pg_range
pg_read_binary_file, Generic File Access Functions
pg_read_file, Generic File Access Functions
pg_receivewal, pg_receivewal
pg_recvlogical, pg_recvlogical
pg_relation_filenode, Database Object Management Functions
pg_relation_filepath, Database Object Management Functions
pg_relation_size, Database Object Management Functions
pg_reload_conf, Server Signaling Functions
pg_relpages, Functions
pg_replication_origin, pg_replication_origin
pg_replication_origin_advance, Replication Functions
pg_replication_origin_create, Replication Functions
pg_replication_origin_drop, Replication Functions
pg_replication_origin_oid, Replication Functions
pg_replication_origin_progress, Replication Functions
pg_replication_origin_session_is_setup, Replication Functions
pg_replication_origin_session_progress, Replication Functions
pg_replication_origin_session_reset, Replication Functions
pg_replication_origin_session_setup, Replication Functions
pg_replication_origin_status, pg_replication_origin_status
pg_replication_origin_xact_reset, Replication Functions
pg_replication_origin_xact_setup, Replication Functions
pg_replication_slots, pg_replication_slots
pg_resetwal, pg_resetwal
pg_restore, pg_restore
pg_rewind, pg_rewind
pg_rewrite, pg_rewrite
pg_roles, pg_roles
pg_rotate_logfile, Server Signaling Functions
pg_rules, pg_rules
pg_safe_snapshot_blocking_pids, System Information Functions
pg_seclabel, pg_seclabel
pg_seclabels, pg_seclabels
pg_sequence, pg_sequence
pg_sequences, pg_sequences
pg_service.conf, The Connection Service File
pg_settings, pg_settings
pg_shadow, pg_shadow
pg_shdepend, pg_shdepend
pg_shdescription, pg_shdescription
pg_shseclabel, pg_shseclabel
pg_size_bytes, Database Object Management Functions
pg_size_pretty, Database Object Management Functions
pg_sleep, Delaying Execution
pg_sleep_for, Delaying Execution
pg_sleep_until, Delaying Execution
pg_standby, pg_standby
pg_start_backup, Backup Control Functions
pg_statio_all_indexes, Viewing Statistics
pg_statio_all_sequences, Viewing Statistics
pg_statio_all_tables, Viewing Statistics
pg_statio_sys_indexes, Viewing Statistics
pg_statio_sys_sequences, Viewing Statistics
pg_statio_sys_tables, Viewing Statistics
pg_statio_user_indexes, Viewing Statistics
pg_statio_user_sequences, Viewing Statistics
pg_statio_user_tables, Viewing Statistics
pg_statistic, Single-Column Statistics, pg_statistic
pg_statistics_obj_is_visible, System Information Functions
pg_statistic_ext, Extended Statistics, pg_statistic_ext
pg_stats, Single-Column Statistics, pg_stats
pg_stat_activity, Viewing Statistics
pg_stat_all_indexes, Viewing Statistics
pg_stat_all_tables, Viewing Statistics
pg_stat_archiver, Viewing Statistics
pg_stat_bgwriter, Viewing Statistics
pg_stat_clear_snapshot, Statistics Functions
pg_stat_database, Viewing Statistics
pg_stat_database_conflicts, Viewing Statistics
pg_stat_file, Generic File Access Functions
pg_stat_get_activity, Statistics Functions
pg_stat_get_snapshot_timestamp, Statistics Functions
pg_stat_progress_vacuum, Viewing Statistics
pg_stat_replication, Viewing Statistics
pg_stat_reset, Statistics Functions
pg_stat_reset_shared, Statistics Functions
pg_stat_reset_single_function_counters, Statistics Functions
pg_stat_reset_single_table_counters, Statistics Functions
pg_stat_ssl, Viewing Statistics
pg_stat_statements, pg_stat_statements
function, Functions
pg_stat_statements_reset, Functions
pg_stat_subscription, Viewing Statistics
pg_stat_sys_indexes, Viewing Statistics
pg_stat_sys_tables, Viewing Statistics
pg_stat_user_functions, Viewing Statistics
pg_stat_user_indexes, Viewing Statistics
pg_stat_user_tables, Viewing Statistics
pg_stat_wal_receiver, Viewing Statistics
pg_stat_xact_all_tables, Viewing Statistics
pg_stat_xact_sys_tables, Viewing Statistics
pg_stat_xact_user_functions, Viewing Statistics
pg_stat_xact_user_tables, Viewing Statistics
pg_stop_backup, Backup Control Functions
pg_subscription, pg_subscription
pg_subscription_rel, pg_subscription_rel
pg_switch_wal, Backup Control Functions
pg_tables, pg_tables
pg_tablespace, pg_tablespace
pg_tablespace_databases, System Information Functions
pg_tablespace_location, System Information Functions
pg_tablespace_size, Database Object Management Functions
pg_table_is_visible, System Information Functions
pg_table_size, Database Object Management Functions
pg_temp, Statement Behavior
securing functions, Writing SECURITY DEFINER Functions Safely
pg_terminate_backend, Server Signaling Functions
pg_test_fsync, pg_test_fsync
pg_test_timing, pg_test_timing
pg_timezone_abbrevs, pg_timezone_abbrevs
pg_timezone_names, pg_timezone_names
pg_total_relation_size, Database Object Management Functions
pg_transform, pg_transform
pg_trgm, pg_trgm
pg_trgm.similarity_threshold configuration parameter, GUC Parameters
pg_trgm.strict_word_similarity_threshold configuration parameter - , GUC Parameters
pg_trgm.word_similarity_threshold configuration parameter - , GUC Parameters
pg_trigger, pg_trigger
pg_try_advisory_lock, Advisory Lock Functions
pg_try_advisory_lock_shared, Advisory Lock Functions
pg_try_advisory_xact_lock, Advisory Lock Functions
pg_try_advisory_xact_lock_shared, Advisory Lock Functions
pg_ts_config, pg_ts_config
pg_ts_config_is_visible, System Information Functions
pg_ts_config_map, pg_ts_config_map
pg_ts_dict, pg_ts_dict
pg_ts_dict_is_visible, System Information Functions
pg_ts_parser, pg_ts_parser
pg_ts_parser_is_visible, System Information Functions
pg_ts_template, pg_ts_template
pg_ts_template_is_visible, System Information Functions
pg_type, pg_type
pg_typeof, System Information Functions
pg_type_is_visible, System Information Functions
pg_upgrade, pg_upgrade
pg_user, pg_user
pg_user_mapping, pg_user_mapping
pg_user_mappings, pg_user_mappings
pg_views, pg_views
pg_visibility, pg_visibility
pg_waldump, pg_waldump
pg_walfile_name, Backup Control Functions
pg_walfile_name_offset, Backup Control Functions
pg_wal_lsn_diff, Backup Control Functions
pg_wal_replay_pause, Recovery Control Functions
pg_wal_replay_resume, Recovery Control Functions
pg_xact_commit_timestamp, System Information Functions
phantom read, Transaction Isolation
phraseto_tsquery, Text Search Functions and Operators, Parsing Queries
pi, Mathematical Functions and Operators
PIC, Compiling and Linking Dynamically-loaded Functions
PID
determining PID of server process
in libpq, Connection Status Functions
PITR, Backup and Restore
PITR standby, High Availability, Load Balancing, and Replication
pkg-config, Installation Procedure
with + Z

A

abbrev, Network Address Functions and Operators
ABORT, ABORT
abs, Mathematical Functions and Operators
acos, Mathematical Functions and Operators
acosd, Mathematical Functions and Operators
administration tools
externally maintained, Administration Tools
adminpack, adminpack
advisory lock, Advisory Locks
age, Date/Time Functions and Operators
aggregate function, Aggregate Functions, Aggregate Expressions, Aggregate Functions, User-defined Aggregates
built-in, Aggregate Functions
invocation, Aggregate Expressions
moving aggregate, Moving-Aggregate Mode
ordered set, Ordered-Set Aggregates
partial aggregation, Partial Aggregation
polymorphic, Polymorphic and Variadic Aggregates
support functions for, Support Functions for Aggregates
user-defined, User-defined Aggregates
variadic, Polymorphic and Variadic Aggregates
AIX, AIX
installation on, AIX
IPC configuration, Shared Memory and Semaphores
akeys, hstore Operators and Functions
alias, Table and Column Aliases, Column Labels
for table name in query, Joins Between Tables
in the FROM clause, Table and Column Aliases
in the select list, Column Labels
ALL, Subquery Expressions, Row and Array Comparisons
allow_system_table_mods configuration parameter, Developer Options
ALTER AGGREGATE, ALTER AGGREGATE
ALTER COLLATION, ALTER COLLATION
ALTER CONVERSION, ALTER CONVERSION
ALTER DATABASE, ALTER DATABASE
ALTER DEFAULT PRIVILEGES, ALTER DEFAULT PRIVILEGES
ALTER DOMAIN, ALTER DOMAIN
ALTER EVENT TRIGGER, ALTER EVENT TRIGGER
ALTER EXTENSION, ALTER EXTENSION
ALTER FOREIGN DATA WRAPPER, ALTER FOREIGN DATA WRAPPER
ALTER FOREIGN TABLE, ALTER FOREIGN TABLE
ALTER FUNCTION, ALTER FUNCTION
ALTER GROUP, ALTER GROUP
ALTER INDEX, ALTER INDEX
ALTER LANGUAGE, ALTER LANGUAGE
ALTER LARGE OBJECT, ALTER LARGE OBJECT
ALTER MATERIALIZED VIEW, ALTER MATERIALIZED VIEW
ALTER OPERATOR, ALTER OPERATOR
ALTER OPERATOR CLASS, ALTER OPERATOR CLASS
ALTER OPERATOR FAMILY, ALTER OPERATOR FAMILY
ALTER POLICY, ALTER POLICY
ALTER PUBLICATION, ALTER PUBLICATION
ALTER ROLE, Role Attributes, ALTER ROLE
ALTER RULE, ALTER RULE
ALTER SCHEMA, ALTER SCHEMA
ALTER SEQUENCE, ALTER SEQUENCE
ALTER SERVER, ALTER SERVER
ALTER STATISTICS, ALTER STATISTICS
ALTER SUBSCRIPTION, ALTER SUBSCRIPTION
ALTER SYSTEM, ALTER SYSTEM
ALTER TABLE, ALTER TABLE
ALTER TABLESPACE, ALTER TABLESPACE
ALTER TEXT SEARCH CONFIGURATION, ALTER TEXT SEARCH CONFIGURATION
ALTER TEXT SEARCH DICTIONARY, ALTER TEXT SEARCH DICTIONARY
ALTER TEXT SEARCH PARSER, ALTER TEXT SEARCH PARSER
ALTER TEXT SEARCH TEMPLATE, ALTER TEXT SEARCH TEMPLATE
ALTER TRIGGER, ALTER TRIGGER
ALTER TYPE, ALTER TYPE
ALTER USER, ALTER USER
ALTER USER MAPPING, ALTER USER MAPPING
ALTER VIEW, ALTER VIEW
amcheck, amcheck
ANALYZE, Updating Planner Statistics, ANALYZE
AND (operator), Logical Operators
anonymous code blocks, DO
any, Pseudo-Types
ANY, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
anyarray, Pseudo-Types
anyelement, Pseudo-Types
anyenum, Pseudo-Types
anynonarray, Pseudo-Types
anyrange, Pseudo-Types
applicable role, applicable_roles
application_name configuration parameter, What To Log
arbitrary precision numbers, Arbitrary Precision Numbers
archive_cleanup_command recovery parameter, Archive Recovery Settings
archive_command configuration parameter, Archiving
archive_mode configuration parameter, Archiving
archive_timeout configuration parameter, Archiving
area, Geometric Functions and Operators
armor, armor(), dearmor()
array, Arrays
accessing, Accessing Arrays
constant, Array Value Input
constructor, Array Constructors
declaration, Declaration of Array Types
I/O, Array Input and Output Syntax
modifying, Modifying Arrays
of user-defined type, User-defined Types
searching, Searching in Arrays
ARRAY, Array Constructors, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
array_agg, Aggregate Functions, Functions
array_append, Array Functions and Operators
array_cat, Array Functions and Operators
array_dims, Array Functions and Operators
array_fill, Array Functions and Operators
array_length, Array Functions and Operators
array_lower, Array Functions and Operators
array_ndims, Array Functions and Operators
array_nulls configuration parameter, Previous PostgreSQL Versions
array_position, Array Functions and Operators
array_positions, Array Functions and Operators
array_prepend, Array Functions and Operators
array_remove, Array Functions and Operators
array_replace, Array Functions and Operators
array_to_json, JSON Functions and Operators
array_to_string, Array Functions and Operators
array_to_tsvector, Text Search Functions and Operators
array_upper, Array Functions and Operators
ascii, String Functions and Operators
asin, Mathematical Functions and Operators
asind, Mathematical Functions and Operators
ASSERT
in PL/pgSQL, Checking Assertions
assertions
in PL/pgSQL, Checking Assertions
asynchronous commit, Asynchronous Commit
AT TIME ZONE, AT TIME ZONE
atan, Mathematical Functions and Operators
atan2, Mathematical Functions and Operators
atan2d, Mathematical Functions and Operators
atand, Mathematical Functions and Operators
authentication_timeout configuration parameter, Security and Authentication
auth_delay, auth_delay
auth_delay.milliseconds configuration parameter, Configuration Parameters
auto-increment (see serial)
autocommit
bulk-loading data, Disable Autocommit
psql, Variables
autovacuum
configuration parameters, Automatic Vacuuming
general information, The Autovacuum Daemon
autovacuum configuration parameter, Automatic Vacuuming
autovacuum_analyze_scale_factor configuration parameter, Automatic Vacuuming
autovacuum_analyze_threshold configuration parameter, Automatic Vacuuming
autovacuum_freeze_max_age configuration parameter, Automatic Vacuuming
autovacuum_max_workers configuration parameter, Automatic Vacuuming
autovacuum_multixact_freeze_max_age configuration parameter, Automatic Vacuuming
autovacuum_naptime configuration parameter, Automatic Vacuuming
autovacuum_vacuum_cost_delay configuration parameter, Automatic Vacuuming
autovacuum_vacuum_cost_limit configuration parameter, Automatic Vacuuming
autovacuum_vacuum_scale_factor configuration parameter, Automatic Vacuuming
autovacuum_vacuum_threshold configuration parameter, Automatic Vacuuming
autovacuum_work_mem configuration parameter, Memory
auto_explain, auto_explain
auto_explain.log_analyze configuration parameter, Configuration Parameters
auto_explain.log_buffers configuration parameter, Configuration Parameters
auto_explain.log_format configuration parameter, Configuration Parameters
auto_explain.log_min_duration configuration parameter, Configuration Parameters
auto_explain.log_nested_statements configuration parameter, Configuration Parameters
auto_explain.log_timing configuration parameter, Configuration Parameters
auto_explain.log_triggers configuration parameter, Configuration Parameters
auto_explain.log_verbose configuration parameter, Configuration Parameters
auto_explain.sample_rate configuration parameter, Configuration Parameters
avals, hstore Operators and Functions
average, Aggregate Functions
avg, Aggregate Functions

B

B-tree (see index)
backend_flush_after configuration parameter, Asynchronous Behavior
Background workers, Background Worker Processes
backslash escapes, String Constants with C-style Escapes
backslash_quote configuration parameter, Previous PostgreSQL Versions
backup, Backup Control Functions, Backup and Restore
base type, The PostgreSQL Type System
BASE_BACKUP, Streaming Replication Protocol
BEGIN, BEGIN
BETWEEN, Comparison Functions and Operators
BETWEEN SYMMETRIC, Comparison Functions and Operators
BGWORKER_BACKEND_DATABASE_CONNECTION, Background Worker Processes
BGWORKER_SHMEM_ACCESS, Background Worker Processes
bgwriter_delay configuration parameter, Background Writer
bgwriter_flush_after configuration parameter, Background Writer
bgwriter_lru_maxpages configuration parameter, Background Writer
bgwriter_lru_multiplier configuration parameter, Background Writer
bigint, Numeric Constants, Integer Types
bigserial, Serial Types
binary data, Binary Data Types, Binary String Functions and Operators
functions, Binary String Functions and Operators
binary string
concatenation, Binary String Functions and Operators
length, Binary String Functions and Operators
bison, Requirements
bit string, Bit-string Constants, Bit String Types
constant, Bit-string Constants
data type, Bit String Types
bit strings, Bit String Functions and Operators
functions, Bit String Functions and Operators
bitmap scan, Combining Multiple Indexes, Planner Method Configuration
bit_and, Aggregate Functions
bit_length, String Functions and Operators
bit_or, Aggregate Functions
BLOB (see large object)
block_size configuration parameter, Preset Options
bloom, bloom
bonjour configuration parameter, Connection Settings
bonjour_name configuration parameter, Connection Settings
Boolean, Boolean Type
data type, Boolean Type
operators (see operators, logical)
bool_and, Aggregate Functions
bool_or, Aggregate Functions
booting
starting the server during, Starting the Database Server
box, Geometric Functions and Operators
box (data type), Boxes
BRIN (see index)
brin_desummarize_range, Index Maintenance Functions
brin_metapage_info, BRIN Functions
brin_page_items, BRIN Functions
brin_page_type, BRIN Functions
brin_revmap_data, BRIN Functions
brin_summarize_new_values, Index Maintenance Functions
brin_summarize_range, Index Maintenance Functions
broadcast, Network Address Functions and Operators
BSD Authentication, BSD Authentication
btree_gin, btree_gin
btree_gist, btree_gist
btrim, String Functions and Operators, Binary String Functions and Operators
bt_index_check, Functions
bt_index_parent_check, Functions
bt_metap, B-tree Functions
bt_page_items, B-tree Functions
bt_page_stats, B-tree Functions
bytea, Binary Data Types
bytea_output configuration parameter, Statement Behavior

C

C, libpq - C Library, ECPG - Embedded SQL in C
C++, Using C++ for Extensibility
canceling, Canceling Queries in Progress
SQL command, Canceling Queries in Progress
cardinality, Array Functions and Operators
CASCADE, Dependency Tracking
with DROP, Dependency Tracking
foreign key action, Foreign Keys
Cascading Replication, High Availability, Load Balancing, and Replication
CASE, Conditional Expressions, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
case sensitivity
of SQL commands, Identifiers and Key Words
cast, CREATE CAST
I/O conversion, CREATE CAST
cbrt, Mathematical Functions and Operators
ceil, Mathematical Functions and Operators
ceiling, Mathematical Functions and Operators
center, Geometric Functions and Operators
Certificate, Certificate Authentication
char, Character Types
character, Character Types
character set, Locale and Formatting, Preset Options, Character Set Support
character string, String Constants, Character Types
concatenation, String Functions and Operators
constant, String Constants
data types, Character Types
length, String Functions and Operators
character varying, Character Types
char_length, String Functions and Operators
check constraint, Check Constraints
CHECK OPTION, CREATE VIEW
checkpoint, WAL Configuration
CHECKPOINT, CHECKPOINT
checkpoint_completion_target configuration parameter, Checkpoints
checkpoint_flush_after configuration parameter, Checkpoints
checkpoint_timeout configuration parameter, Checkpoints
checkpoint_warning configuration parameter, Checkpoints
check_function_bodies configuration parameter, Statement Behavior
chkpass, chkpass
chr, String Functions and Operators
cid, Object Identifier Types
cidr, cidr
circle, Circles, Geometric Functions and Operators
citext, citext
client authentication, Client Authentication
timeout during, Security and Authentication
client_encoding configuration parameter, Locale and Formatting
client_min_messages configuration parameter, Statement Behavior
clock_timestamp, Date/Time Functions and Operators
CLOSE, CLOSE
cluster
of databases (see database cluster)
CLUSTER, CLUSTER
clusterdb, clusterdb
clustering, High Availability, Load Balancing, and Replication
cluster_name configuration parameter, Process Title
cmax, System Columns
cmin, System Columns
COALESCE, COALESCE
COLLATE, Collation Expressions
collation, Collation Support
in PL/pgSQL, Collation of PL/pgSQL Variables
in SQL functions, SQL Functions with Collations
collation for, System Information Functions
column, Concepts, Table Basics
adding, Adding a Column
removing, Removing a Column
renaming, Renaming a Column
system column, System Columns
column data type
changing, Changing a Column's Data Type
column reference, Column References
col_description, System Information Functions
comment, Comments
about database objects, System Information Functions
in SQL, Comments
COMMENT, COMMENT
COMMIT, COMMIT
COMMIT PREPARED, COMMIT PREPARED
commit_delay configuration parameter, Settings
commit_siblings configuration parameter, Settings
common table expression (see WITH)
comparison, Comparison Functions and Operators, Subquery Expressions
composite type, Row and Array Comparisons
operators, Comparison Functions and Operators
row constructor, Row and Array Comparisons
subquery result row, Subquery Expressions
compiling, Building libpq Programs
libpq applications, Building libpq Programs
composite type, Composite Types, The PostgreSQL Type System
comparison, Row and Array Comparisons
constant, Constructing Composite Values
constructor, Row Constructors
computed field, Using Composite Types in Queries
concat, String Functions and Operators
concat_ws, String Functions and Operators
concurrency, Concurrency Control
conditional expression, Conditional Expressions
configuration
of recovery
of a standby server, Recovery Configuration
of the server, Server Configuration
of the server
functions, Configuration Settings Functions
configure, Installation Procedure
config_file configuration parameter, File Locations
conjunction, Logical Operators
connectby, Functions Provided, connectby
connection service file, The Connection Service File
conninfo, Connection Strings
constant, Constants
constraint, Constraints
adding, Adding a Constraint
check, Check Constraints
exclusion, Exclusion Constraints
foreign key, Foreign Keys
name, Check Constraints
NOT NULL, Not-Null Constraints
primary key, Primary Keys
removing, Removing a Constraint
unique, Unique Constraints
constraint exclusion, Partitioning and Constraint Exclusion, Other Planner Options
constraint_exclusion configuration parameter, Other Planner Options
CONTINUE
in PL/pgSQL, CONTINUE
continuous archiving, Backup and Restore
in standby, Continuous archiving in standby
control file, Extension Files
convert, String Functions and Operators
convert_from, String Functions and Operators
convert_to, String Functions and Operators
COPY, Populating a Table With Rows, Functions Associated with the COPY Command, COPY
with libpq, Functions Associated with the COPY Command
corr, Aggregate Functions
correlation, Aggregate Functions
in the query planner, Extended Statistics
cos, Mathematical Functions and Operators
cosd, Mathematical Functions and Operators
cot, Mathematical Functions and Operators
cotd, Mathematical Functions and Operators
count, Aggregate Functions
covariance
population, Aggregate Functions
sample, Aggregate Functions
covar_pop, Aggregate Functions
covar_samp, Aggregate Functions
cpu_index_tuple_cost configuration parameter, Planner Cost Constants
cpu_operator_cost configuration parameter, Planner Cost Constants
cpu_tuple_cost configuration parameter, Planner Cost Constants
CREATE ACCESS METHOD, CREATE ACCESS METHOD
CREATE AGGREGATE, CREATE AGGREGATE
CREATE CAST, CREATE CAST
CREATE COLLATION, CREATE COLLATION
CREATE CONVERSION, CREATE CONVERSION
CREATE DATABASE, Creating a Database, CREATE DATABASE
CREATE DOMAIN, CREATE DOMAIN
CREATE EVENT TRIGGER, CREATE EVENT TRIGGER
CREATE EXTENSION, CREATE EXTENSION
CREATE FOREIGN DATA WRAPPER, CREATE FOREIGN DATA WRAPPER
CREATE FOREIGN TABLE, CREATE FOREIGN TABLE
CREATE FUNCTION, CREATE FUNCTION
CREATE GROUP, CREATE GROUP
CREATE INDEX, CREATE INDEX
CREATE LANGUAGE, CREATE LANGUAGE
CREATE MATERIALIZED VIEW, CREATE MATERIALIZED VIEW
CREATE OPERATOR, CREATE OPERATOR
CREATE OPERATOR CLASS, CREATE OPERATOR CLASS
CREATE OPERATOR FAMILY, CREATE OPERATOR FAMILY
CREATE POLICY, CREATE POLICY
CREATE PUBLICATION, CREATE PUBLICATION
CREATE ROLE, Database Roles, CREATE ROLE
CREATE RULE, CREATE RULE
CREATE SCHEMA, CREATE SCHEMA
CREATE SEQUENCE, CREATE SEQUENCE
CREATE SERVER, CREATE SERVER
CREATE STATISTICS, CREATE STATISTICS
CREATE SUBSCRIPTION, CREATE SUBSCRIPTION
CREATE TABLE, Creating a New Table, CREATE TABLE
CREATE TABLE AS, CREATE TABLE AS
CREATE TABLESPACE, Tablespaces, CREATE TABLESPACE
CREATE TEXT SEARCH CONFIGURATION, CREATE TEXT SEARCH CONFIGURATION
CREATE TEXT SEARCH DICTIONARY, CREATE TEXT SEARCH DICTIONARY
CREATE TEXT SEARCH PARSER, CREATE TEXT SEARCH PARSER
CREATE TEXT SEARCH TEMPLATE, CREATE TEXT SEARCH TEMPLATE
CREATE TRANSFORM, CREATE TRANSFORM
CREATE TRIGGER, CREATE TRIGGER
CREATE TYPE, CREATE TYPE
CREATE USER, CREATE USER
CREATE USER MAPPING, CREATE USER MAPPING
CREATE VIEW, CREATE VIEW
createdb, Creating a Database, Creating a Database, createdb
createuser, Database Roles, createuser
CREATE_REPLICATION_SLOT, Streaming Replication Protocol
cross compilation, Installation Procedure
cross join, Joined Tables
crosstab, crosstab(text), crosstabN(text), crosstab(text, text)
crypt, crypt()
cstring, Pseudo-Types
ctid, System Columns
CTID, View Rules in Non-SELECT Statements
CUBE, GROUPING SETS, CUBE, and ROLLUP
cube (extension), cube
cume_dist, Window Functions
hypothetical, Aggregate Functions
current_catalog, System Information Functions
current_database, System Information Functions
current_date, Date/Time Functions and Operators
current_logfiles
and the log_destination configuration parameter, Where To Log
and the pg_current_logfile function, System Information Functions
current_query, System Information Functions
current_role, System Information Functions
current_schema, System Information Functions
current_schemas, System Information Functions
current_setting, Configuration Settings Functions
current_time, Date/Time Functions and Operators
current_timestamp, Date/Time Functions and Operators
current_user, System Information Functions
currval, Sequence Manipulation Functions
cursor, Cursors, CLOSE, DECLARE, EXPLAIN, FETCH, MOVE
CLOSE, CLOSE
DECLARE, DECLARE
FETCH, FETCH
in PL/pgSQL, Cursors
MOVE, MOVE
showing the query plan, EXPLAIN
cursor_tuple_fraction configuration parameter, Other Planner Options
custom scan provider, Writing A Custom Scan Provider
handler for, Writing A Custom Scan Provider
Cygwin, Cygwin
installation on, Cygwin

D

data area (see database cluster)
data partitioning, High Availability, Load Balancing, and Replication
data type, Data Types, Numeric Types, Enumerated Types, Type Conversion, The PostgreSQL Type System, The PostgreSQL Type System, Base Types in C-Language Functions, User-defined Types
base, The PostgreSQL Type System
category, Overview
composite, The PostgreSQL Type System
constant, Constants of Other Types
conversion, Type Conversion
enumerated (enum), Enumerated Types
internal organization, Base Types in C-Language Functions
numeric, Numeric Types
type cast, Type Casts
user-defined, User-defined Types
database, Creating a Database, Managing Databases
creating, Creating a Database
privilege to create, Role Attributes
database activity, Monitoring Database Activity
monitoring, Monitoring Database Activity
database cluster, Concepts, Creating a Database Cluster
data_checksums configuration parameter, Preset Options
data_directory configuration parameter, File Locations
data_sync_retry configuration parameter, Error Handling
date, Date/Time Types, Dates
constants, Special Values
current, Current Date/Time
output format, Date/Time Output
(see also formatting)
DateStyle configuration parameter, Locale and Formatting
date_part, Date/Time Functions and Operators, EXTRACT, date_part
date_trunc, Date/Time Functions and Operators, date_trunc
dblink, dblink, dblink
dblink_build_sql_delete, dblink_build_sql_delete
dblink_build_sql_insert, dblink_build_sql_insert
dblink_build_sql_update, dblink_build_sql_update
dblink_cancel_query, dblink_cancel_query
dblink_close, dblink_close
dblink_connect, dblink_connect
dblink_connect_u, dblink_connect_u
dblink_disconnect, dblink_disconnect
dblink_error_message, dblink_error_message
dblink_exec, dblink_exec
dblink_fetch, dblink_fetch
dblink_get_connections, dblink_get_connections
dblink_get_notify, dblink_get_notify
dblink_get_pkey, dblink_get_pkey
dblink_get_result, dblink_get_result
dblink_is_busy, dblink_is_busy
dblink_open, dblink_open
dblink_send_query, dblink_send_query
db_user_namespace configuration parameter, Security and Authentication
deadlock, Deadlocks
timeout during, Lock Management
deadlock_timeout configuration parameter, Lock Management
DEALLOCATE, DEALLOCATE
dearmor, armor(), dearmor()
debug_assertions configuration parameter, Preset Options
debug_deadlocks configuration parameter, Developer Options
debug_pretty_print configuration parameter, What To Log
debug_print_parse configuration parameter, What To Log
debug_print_plan configuration parameter, What To Log
debug_print_rewritten configuration parameter, What To Log
decimal (see numeric)
DECLARE, DECLARE
decode, String Functions and Operators, Binary String Functions and Operators
decode_bytea
in PL/Perl, Utility Functions in PL/Perl
decrypt, Raw Encryption Functions
decrypt_iv, Raw Encryption Functions
default value, Default Values
changing, Changing a Column's Default Value
default_statistics_target configuration parameter, Other Planner Options
default_tablespace configuration parameter, Statement Behavior
default_text_search_config configuration parameter, Locale and Formatting
default_transaction_deferrable configuration parameter, Statement Behavior
default_transaction_isolation configuration parameter, Statement Behavior
default_transaction_read_only configuration parameter, Statement Behavior
default_with_oids configuration parameter, Previous PostgreSQL Versions
deferrable transaction
setting, SET TRANSACTION
setting default, Statement Behavior
defined, hstore Operators and Functions
degrees, Mathematical Functions and Operators
delay, Delaying Execution
DELETE, Deletions, Deleting Data, Returning Data From Modified Rows, DELETE
RETURNING, Returning Data From Modified Rows
delete, hstore Operators and Functions
deleting, Deleting Data
dense_rank, Window Functions
hypothetical, Aggregate Functions
diameter, Geometric Functions and Operators
dict_int, dict_int
dict_xsyn, dict_xsyn
difference, Soundex
digest, digest()
dirty read, Transaction Isolation
DISCARD, DISCARD
disjunction, Logical Operators
disk drive, WAL Internals
disk space, Recovering Disk Space
disk usage, Determining Disk Usage
DISTINCT, Querying a Table, DISTINCT
div, Mathematical Functions and Operators
dmetaphone, Double Metaphone
dmetaphone_alt, Double Metaphone
DO, DO
document, What Is a Document?
text search, What Is a Document?
dollar quoting, Dollar-quoted String Constants
double precision, Floating-Point Types
DROP ACCESS METHOD, DROP ACCESS METHOD
DROP AGGREGATE, DROP AGGREGATE
DROP CAST, DROP CAST
DROP COLLATION, DROP COLLATION
DROP CONVERSION, DROP CONVERSION
DROP DATABASE, Destroying a Database, DROP DATABASE
DROP DOMAIN, DROP DOMAIN
DROP EVENT TRIGGER, DROP EVENT TRIGGER
DROP EXTENSION, DROP EXTENSION
DROP FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER
DROP FOREIGN TABLE, DROP FOREIGN TABLE
DROP FUNCTION, DROP FUNCTION
DROP GROUP, DROP GROUP
DROP INDEX, DROP INDEX
DROP LANGUAGE, DROP LANGUAGE
DROP MATERIALIZED VIEW, DROP MATERIALIZED VIEW
DROP OPERATOR, DROP OPERATOR
DROP OPERATOR CLASS, DROP OPERATOR CLASS
DROP OPERATOR FAMILY, DROP OPERATOR FAMILY
DROP OWNED, DROP OWNED
DROP POLICY, DROP POLICY
DROP PUBLICATION, DROP PUBLICATION
DROP ROLE, Database Roles, DROP ROLE
DROP RULE, DROP RULE
DROP SCHEMA, DROP SCHEMA
DROP SEQUENCE, DROP SEQUENCE
DROP SERVER, DROP SERVER
DROP STATISTICS, DROP STATISTICS
DROP SUBSCRIPTION, DROP SUBSCRIPTION
DROP TABLE, Creating a New Table, DROP TABLE
DROP TABLESPACE, DROP TABLESPACE
DROP TEXT SEARCH CONFIGURATION, DROP TEXT SEARCH CONFIGURATION
DROP TEXT SEARCH DICTIONARY, DROP TEXT SEARCH DICTIONARY
DROP TEXT SEARCH PARSER, DROP TEXT SEARCH PARSER
DROP TEXT SEARCH TEMPLATE, DROP TEXT SEARCH TEMPLATE
DROP TRANSFORM, DROP TRANSFORM
DROP TRIGGER, DROP TRIGGER
DROP TYPE, DROP TYPE
DROP USER, DROP USER
DROP USER MAPPING, DROP USER MAPPING
DROP VIEW, DROP VIEW
dropdb, Destroying a Database, dropdb
dropuser, Database Roles, dropuser
DROP_REPLICATION_SLOT, Streaming Replication Protocol
DTD, Creating XML Values
DTrace, Installation Procedure, Dynamic Tracing
duplicate, Querying a Table
duplicates, DISTINCT
dynamic loading, Other Defaults, Dynamic Loading
dynamic_library_path, Dynamic Loading
dynamic_library_path configuration parameter, Other Defaults
dynamic_shared_memory_type configuration parameter, Memory

E

each, hstore Operators and Functions
earth, Cube-based Earth Distances
earthdistance, earthdistance
earth_box, Cube-based Earth Distances
earth_distance, Cube-based Earth Distances
ECPG, ECPG - Embedded SQL in C
ecpg, ecpg
effective_cache_size configuration parameter, Planner Cost Constants
effective_io_concurrency configuration parameter, Asynchronous Behavior
elog, Reporting Errors Within the Server
in PL/Perl, Utility Functions in PL/Perl
in PL/Python, Utility Functions
in PL/Tcl, Database Access from PL/Tcl
embedded SQL, ECPG - Embedded SQL in C
in C, ECPG - Embedded SQL in C
enabled role, enabled_roles
enable_bitmapscan configuration parameter, Planner Method Configuration
enable_gathermerge configuration parameter, Planner Method Configuration
enable_hashagg configuration parameter, Planner Method Configuration
enable_hashjoin configuration parameter, Planner Method Configuration
enable_indexonlyscan configuration parameter, Planner Method Configuration
enable_indexscan configuration parameter, Planner Method Configuration
enable_material configuration parameter, Planner Method Configuration
enable_mergejoin configuration parameter, Planner Method Configuration
enable_nestloop configuration parameter, Planner Method Configuration
enable_seqscan configuration parameter, Planner Method Configuration
enable_sort configuration parameter, Planner Method Configuration
enable_tidscan configuration parameter, Planner Method Configuration
encode, String Functions and Operators, Binary String Functions and Operators
encode_array_constructor
in PL/Perl, Utility Functions in PL/Perl
encode_array_literal
in PL/Perl, Utility Functions in PL/Perl
encode_bytea
in PL/Perl, Utility Functions in PL/Perl
encode_typed_literal
in PL/Perl, Utility Functions in PL/Perl
encrypt, Raw Encryption Functions
encryption, Encryption Options, pgcrypto
for specific columns, pgcrypto
encrypt_iv, Raw Encryption Functions
END, END
enumerated types, Enumerated Types
enum_first, Enum Support Functions
enum_last, Enum Support Functions
enum_range, Enum Support Functions
environment variable, Environment Variables
ephemeral named relation
registering with SPI, SPI_register_relation, SPI_register_trigger_data
unregistering from SPI, SPI_unregister_relation
ereport, Reporting Errors Within the Server
error codes, PostgreSQL Error Codes
libpq, Main Functions
list of, PostgreSQL Error Codes
error message, Connection Status Functions
escape string syntax, String Constants with C-style Escapes
escape_string_warning configuration parameter, Previous PostgreSQL Versions
escaping strings, Escaping Strings for Inclusion in SQL Commands
in libpq, Escaping Strings for Inclusion in SQL Commands
event log, Registering Event Log on Windows
event log, Registering Event Log on Windows
event trigger, Event Triggers, Writing Event Trigger Functions in C
in C, Writing Event Trigger Functions in C
in PL/Tcl, Event Trigger Procedures in PL/Tcl
event_source configuration parameter, Where To Log
event_trigger, Pseudo-Types
every, Aggregate Functions
EXCEPT, Combining Queries
exceptions
in PL/pgSQL, Trapping Errors
in PL/Tcl, Error Handling in PL/Tcl
exclusion constraint, Exclusion Constraints
EXECUTE, EXECUTE
exist, hstore Operators and Functions
EXISTS, Subquery Expressions
EXIT
in PL/pgSQL, EXIT
exit_on_error configuration parameter, Error Handling
exp, Mathematical Functions and Operators
EXPLAIN, Using EXPLAIN, EXPLAIN
expression, Value Expressions
order of evaluation, Expression Evaluation Rules
syntax, Value Expressions
extending SQL, Extending SQL
extension, Packaging Related Objects into an Extension
externally maintained, Extensions
external_pid_file configuration parameter, File Locations
extract, Date/Time Functions and Operators, EXTRACT, date_part
extra_float_digits configuration parameter, Locale and Formatting

F

failover, High Availability, Load Balancing, and Replication
false, Boolean Type
family, Network Address Functions and Operators
fast path, The Fast-Path Interface
fdw_handler, Pseudo-Types
FETCH, FETCH
field
computed, Using Composite Types in Queries
field selection, Field Selection
file system mount points, Use of Secondary File Systems
file_fdw, file_fdw
FILTER, Aggregate Expressions
first_value, Window Functions
flex, Requirements
float4 (see real)
float8 (see double precision)
floating point, Floating-Point Types
floating-point
display, Locale and Formatting
floor, Mathematical Functions and Operators
force_parallel_mode configuration parameter, Other Planner Options
foreign data, Foreign Data
foreign data wrapper, Writing A Foreign Data Wrapper
handler for, Writing A Foreign Data Wrapper
foreign key, Foreign Keys, Foreign Keys
foreign table, Foreign Data
format, String Functions and Operators, format
use in PL/pgSQL, Executing Dynamic Commands
formatting, Data Type Formatting Functions
format_type, System Information Functions
Free Space Map, Free Space Map
FreeBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
from_collapse_limit configuration parameter, Other Planner Options
FSM (see Free Space Map)
fsm_page_contents, General Functions
fsync configuration parameter, Settings
full text search, Text Search Types, Text Search Types, Full Text Search
data types, Text Search Types
functions and operators, Text Search Types
full_page_writes configuration parameter, Settings
function, Table Functions, Functions and Operators, Functions, Polymorphic Types, User-defined Functions, Query Language (SQL) Functions, Internal Functions, C-Language Functions
default values for arguments, SQL Functions with Default Values for Arguments
in the FROM clause, Table Functions
internal, Internal Functions
invocation, Function Calls
mixed notation, Using Mixed Notation
named argument, Arguments for SQL Functions
named notation, Using Named Notation
output parameter, SQL Functions with Output Parameters
polymorphic, Polymorphic Types
positional notation, Using Positional Notation
RETURNS TABLE, SQL Functions Returning TABLE
type resolution in an invocation, Functions
user-defined, User-defined Functions, Query Language (SQL) Functions, C-Language Functions
in C, C-Language Functions
in SQL, Query Language (SQL) Functions
variadic, SQL Functions with Variable Numbers of Arguments
with SETOF, SQL Functions Returning Sets
functional dependency, The GROUP BY and HAVING Clauses
fuzzystrmatch, fuzzystrmatch

G

gc_to_sec, Cube-based Earth Distances
generate_series, Set Returning Functions
generate_subscripts, Set Returning Functions
genetic query optimization, Genetic Query Optimizer
gen_random_bytes, Random-Data Functions
gen_random_uuid, Random-Data Functions
gen_salt, gen_salt()
GEQO (see genetic query optimization)
geqo configuration parameter, Genetic Query Optimizer
geqo_effort configuration parameter, Genetic Query Optimizer
geqo_generations configuration parameter, Genetic Query Optimizer
geqo_pool_size configuration parameter, Genetic Query Optimizer
geqo_seed configuration parameter, Genetic Query Optimizer
geqo_selection_bias configuration parameter, Genetic Query Optimizer
geqo_threshold configuration parameter, Genetic Query Optimizer
get_bit, Binary String Functions and Operators
get_byte, Binary String Functions and Operators
get_current_ts_config, Text Search Functions and Operators
get_raw_page, General Functions
GIN (see index)
gin_clean_pending_list, Index Maintenance Functions
gin_fuzzy_search_limit configuration parameter, Other Defaults
gin_leafpage_items, GIN Functions
gin_metapage_info, GIN Functions
gin_page_opaque_info, GIN Functions
gin_pending_list_limit configuration parameter, Statement Behavior
GiST (see index)
global data, Global Data in PL/Tcl
in PL/Python, Sharing Data
in PL/Tcl, Global Data in PL/Tcl
GRANT, Privileges, GRANT
GREATEST, GREATEST and LEAST, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
Gregorian calendar, History of Units
GROUP BY, Aggregate Functions, The GROUP BY and HAVING Clauses
grouping, The GROUP BY and HAVING Clauses
GROUPING, Aggregate Functions
GROUPING SETS, GROUPING SETS, CUBE, and ROLLUP
GSSAPI, GSSAPI Authentication
GUID, UUID Type

H

hash (see index)
hash_bitmap_info, Hash Functions
hash_metapage_info, Hash Functions
hash_page_items, Hash Functions
hash_page_stats, Hash Functions
hash_page_type, Hash Functions
has_any_column_privilege, System Information Functions
has_column_privilege, System Information Functions
has_database_privilege, System Information Functions
has_foreign_data_wrapper_privilege, System Information Functions
has_function_privilege, System Information Functions
has_language_privilege, System Information Functions
has_schema_privilege, System Information Functions
has_sequence_privilege, System Information Functions
has_server_privilege, System Information Functions
has_tablespace_privilege, System Information Functions
has_table_privilege, System Information Functions
has_type_privilege, System Information Functions
HAVING, Aggregate Functions, The GROUP BY and HAVING Clauses
hba_file configuration parameter, File Locations
heap_page_items, Heap Functions
heap_page_item_attrs, Heap Functions
height, Geometric Functions and Operators
hierarchical database, Concepts
high availability, High Availability, Load Balancing, and Replication
history, A Brief History of PostgreSQL
of PostgreSQL, A Brief History of PostgreSQL
hmac, hmac()
host, Network Address Functions and Operators
host name, Parameter Key Words
hostmask, Network Address Functions and Operators
Hot Standby, High Availability, Load Balancing, and Replication
hot_standby configuration parameter, Standby Servers
hot_standby_feedback configuration parameter, Standby Servers
HP-UX, HP-UX
installation on, HP-UX
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
hstore, hstore, hstore Operators and Functions
hstore_to_array, hstore Operators and Functions
hstore_to_json, hstore Operators and Functions
hstore_to_jsonb, hstore Operators and Functions
hstore_to_jsonb_loose, hstore Operators and Functions
hstore_to_json_loose, hstore Operators and Functions
hstore_to_matrix, hstore Operators and Functions
huge_pages configuration parameter, Memory
hypothetical-set aggregate
built-in, Aggregate Functions

I

icount, intarray Functions and Operators
ICU, Installation Procedure, Managing Collations, Parameters
ident, Ident Authentication
identifier, Identifiers and Key Words
length, Identifiers and Key Words
syntax of, Identifiers and Key Words
IDENTIFY_SYSTEM, Streaming Replication Protocol
ident_file configuration parameter, File Locations
idle_in_transaction_session_timeout configuration parameter, Statement Behavior
idx, intarray Functions and Operators
IFNULL, COALESCE
ignore_checksum_failure configuration parameter, Developer Options
ignore_system_indexes configuration parameter, Developer Options
IMMUTABLE, Function Volatility Categories
IMPORT FOREIGN SCHEMA, IMPORT FOREIGN SCHEMA
IN, Subquery Expressions, Row and Array Comparisons
include
in configuration file, Managing Configuration File Contents
include_dir
in configuration file, Managing Configuration File Contents
include_if_exists
in configuration file, Managing Configuration File Contents
index, Indexes, Multicolumn Indexes, Indexes and ORDER BY, Combining Multiple Indexes, Unique Indexes, Indexes on Expressions, Partial Indexes, Index-Only Scans, Examining Index Usage, GIN and GiST Index Types, GIN and GiST Index Types, Locking and Indexes, Interfacing Extensions To Indexes, Building Indexes Concurrently, Operators and Functions
and ORDER BY, Indexes and ORDER BY
B-tree, Index Types
BRIN, Index Types, BRIN Indexes
building concurrently, Building Indexes Concurrently
combining multiple indexes, Combining Multiple Indexes
examining usage, Examining Index Usage
on expressions, Indexes on Expressions
for user-defined data type, Interfacing Extensions To Indexes
GIN, Index Types, GIN and GiST Index Types, GIN Indexes
text search, GIN and GiST Index Types
GiST, Index Types, GIN and GiST Index Types, GiST Indexes
text search, GIN and GiST Index Types
hash, Index Types
index-only scans, Index-Only Scans
locks, Locking and Indexes
multicolumn, Multicolumn Indexes
partial, Partial Indexes
SP-GiST, Index Types, SP-GiST Indexes
unique, Unique Indexes
index scan, Planner Method Configuration
index-only scan, Index-Only Scans
index_am_handler, Pseudo-Types
inet (data type), inet
inet_client_addr, System Information Functions
inet_client_port, System Information Functions
inet_merge, Network Address Functions and Operators
inet_same_family, Network Address Functions and Operators
inet_server_addr, System Information Functions
inet_server_port, System Information Functions
information schema, The Information Schema
inheritance, Inheritance, Inheritance
initcap, String Functions and Operators
initdb, Creating a Database Cluster, initdb
Initialization Fork, The Initialization Fork
input function, User-defined Types
INSERT, Populating a Table With Rows, Inserting Data, Returning Data From Modified Rows, INSERT
RETURNING, Returning Data From Modified Rows
inserting, Inserting Data
installation, Installation from Source Code
on Windows, Installation from Source Code on Windows
instr function, Appendix
int2 (see smallint)
int4 (see integer)
int8 (see bigint)
intagg, intagg
intarray, intarray
integer, Numeric Constants, Integer Types
integer_datetimes configuration parameter, Preset Options
interfaces
externally maintained, Client Interfaces
internal, Pseudo-Types
INTERSECT, Combining Queries
interval, Date/Time Types, Interval Input
output format, Interval Output
(see also formatting)
IntervalStyle configuration parameter, Locale and Formatting
intset, intarray Functions and Operators
int_array_aggregate, Functions
int_array_enum, Functions
inverse distribution, Aggregate Functions
IS DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
IS DOCUMENT, IS DOCUMENT
IS FALSE, Comparison Functions and Operators
IS NOT DISTINCT FROM, Comparison Functions and Operators, Row and Array Comparisons
IS NOT DOCUMENT, IS NOT DOCUMENT
IS NOT FALSE, Comparison Functions and Operators
IS NOT NULL, Comparison Functions and Operators
IS NOT TRUE, Comparison Functions and Operators
IS NOT UNKNOWN, Comparison Functions and Operators
IS NULL, Comparison Functions and Operators, Platform and Client Compatibility
IS TRUE, Comparison Functions and Operators
IS UNKNOWN, Comparison Functions and Operators
isclosed, Geometric Functions and Operators
isempty, Range Functions and Operators
isfinite, Date/Time Functions and Operators
isn, isn
ISNULL, Comparison Functions and Operators
isn_weak, Functions and Operators
isopen, Geometric Functions and Operators
is_array_ref
in PL/Perl, Utility Functions in PL/Perl
is_valid, Functions and Operators

J

join, Joins Between Tables, Joined Tables, Controlling the Planner with Explicit JOIN Clauses
controlling the order, Controlling the Planner with Explicit JOIN Clauses
cross, Joined Tables
left, Joined Tables
natural, Joined Tables
outer, Joins Between Tables, Joined Tables
right, Joined Tables
self, Joins Between Tables
join_collapse_limit configuration parameter, Other Planner Options
JSON, JSON Types, JSON Functions and Operators
functions and operators, JSON Functions and Operators
JSONB, JSON Types
jsonb
containment, jsonb Containment and Existence
existence, jsonb Containment and Existence
indexes on, jsonb Indexing
jsonb_agg, Aggregate Functions
jsonb_array_elements, JSON Functions and Operators
jsonb_array_elements_text, JSON Functions and Operators
jsonb_array_length, JSON Functions and Operators
jsonb_build_array, JSON Functions and Operators
jsonb_build_object, JSON Functions and Operators
jsonb_each, JSON Functions and Operators
jsonb_each_text, JSON Functions and Operators
jsonb_extract_path, JSON Functions and Operators
jsonb_extract_path_text, JSON Functions and Operators
jsonb_insert, JSON Functions and Operators
jsonb_object, JSON Functions and Operators
jsonb_object_agg, Aggregate Functions
jsonb_object_keys, JSON Functions and Operators
jsonb_populate_record, JSON Functions and Operators
jsonb_populate_recordset, JSON Functions and Operators
jsonb_pretty, JSON Functions and Operators
jsonb_set, JSON Functions and Operators
jsonb_strip_nulls, JSON Functions and Operators
jsonb_to_record, JSON Functions and Operators
jsonb_to_recordset, JSON Functions and Operators
jsonb_typeof, JSON Functions and Operators
json_agg, Aggregate Functions
json_array_elements, JSON Functions and Operators
json_array_elements_text, JSON Functions and Operators
json_array_length, JSON Functions and Operators
json_build_array, JSON Functions and Operators
json_build_object, JSON Functions and Operators
json_each, JSON Functions and Operators
json_each_text, JSON Functions and Operators
json_extract_path, JSON Functions and Operators
json_extract_path_text, JSON Functions and Operators
json_object, JSON Functions and Operators
json_object_agg, Aggregate Functions
json_object_keys, JSON Functions and Operators
json_populate_record, JSON Functions and Operators
json_populate_recordset, JSON Functions and Operators
json_strip_nulls, JSON Functions and Operators
json_to_record, JSON Functions and Operators
json_to_recordset, JSON Functions and Operators
json_typeof, JSON Functions and Operators
Julian date, History of Units
justify_days, Date/Time Functions and Operators
justify_hours, Date/Time Functions and Operators
justify_interval, Date/Time Functions and Operators

K

key word, Identifiers and Key Words, SQL Key Words
list of, SQL Key Words
syntax of, Identifiers and Key Words
krb_caseins_users configuration parameter, Security and Authentication
krb_server_keyfile configuration parameter, Security and Authentication

L

label (see alias)
lag, Window Functions
language_handler, Pseudo-Types
large object, Large Objects
lastval, Sequence Manipulation Functions
last_value, Window Functions
LATERAL, LATERAL Subqueries
in the FROM clause, LATERAL Subqueries
latitude, Cube-based Earth Distances
lca, Operators and Functions
lc_collate configuration parameter, Preset Options
lc_ctype configuration parameter, Preset Options
lc_messages configuration parameter, Locale and Formatting
lc_monetary configuration parameter, Locale and Formatting
lc_numeric configuration parameter, Locale and Formatting
lc_time configuration parameter, Locale and Formatting
LDAP, Installation Procedure, LDAP Authentication
LDAP connection parameter lookup, LDAP Lookup of Connection Parameters
ldconfig, Shared Libraries
lead, Window Functions
LEAST, GREATEST and LEAST, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
left, String Functions and Operators
left join, Joined Tables
length, String Functions and Operators, Binary String Functions and Operators, Geometric Functions and Operators, Text Search Functions and Operators
of a binary string (see binary strings, length)
of a character string (see character string, length)
length(tsvector), Manipulating Documents
levenshtein, Levenshtein
levenshtein_less_equal, Levenshtein
lex, Requirements
libedit, Requirements
libperl, Requirements
libpq, libpq - C Library, Retrieving Query Results Row-By-Row
single-row mode, Retrieving Query Results Row-By-Row
libpq-fe.h, libpq - C Library, Connection Status Functions
libpq-int.h, Connection Status Functions
libpython, Requirements
library finalization function, Dynamic Loading
library initialization function, Dynamic Loading
LIKE, LIKE
and locales, Behavior
LIMIT, LIMIT and OFFSET
line, Lines
line segment, Line Segments
linear regression, Aggregate Functions
Linux
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
LISTEN, LISTEN
listen_addresses configuration parameter, Connection Settings
ll_to_earth, Cube-based Earth Distances
ln, Mathematical Functions and Operators
lo, lo
LOAD, LOAD
load balancing, High Availability, Load Balancing, and Replication
locale, Creating a Database Cluster, Locale Support
localtime, Date/Time Functions and Operators
localtimestamp, Date/Time Functions and Operators
local_preload_libraries configuration parameter, Shared Library Preloading
lock, Explicit Locking, Advisory Locks, Viewing Locks
advisory, Advisory Locks
monitoring, Viewing Locks
LOCK, Table-level Locks, LOCK
lock_timeout configuration parameter, Statement Behavior
log, Mathematical Functions and Operators
log shipping, High Availability, Load Balancing, and Replication
Logging
current_logfiles file and the pg_current_logfile + function, System Information Functions
pg_current_logfile function, System Information Functions
logging_collector configuration parameter, Where To Log
Logical Decoding, Logical Decoding, Logical Decoding
login privilege, Role Attributes
log_autovacuum_min_duration configuration parameter, Automatic Vacuuming
log_btree_build_stats configuration parameter, Developer Options
log_checkpoints configuration parameter, What To Log
log_connections configuration parameter, What To Log
log_destination configuration parameter, Where To Log
log_directory configuration parameter, Where To Log
log_disconnections configuration parameter, What To Log
log_duration configuration parameter, What To Log
log_error_verbosity configuration parameter, What To Log
log_executor_stats configuration parameter, Statistics Monitoring
log_filename configuration parameter, Where To Log
log_file_mode configuration parameter, Where To Log
log_hostname configuration parameter, What To Log
log_line_prefix configuration parameter, What To Log
log_lock_waits configuration parameter, What To Log
log_min_duration_statement configuration parameter, When To Log
log_min_error_statement configuration parameter, When To Log
log_min_messages configuration parameter, When To Log
log_parser_stats configuration parameter, Statistics Monitoring
log_planner_stats configuration parameter, Statistics Monitoring
log_replication_commands configuration parameter, What To Log
log_rotation_age configuration parameter, Where To Log
log_rotation_size configuration parameter, Where To Log
log_statement configuration parameter, What To Log
log_statement_stats configuration parameter, Statistics Monitoring
log_temp_files configuration parameter, What To Log
log_timezone configuration parameter, What To Log
log_truncate_on_rotation configuration parameter, Where To Log
longitude, Cube-based Earth Distances
looks_like_number
in PL/Perl, Utility Functions in PL/Perl
loop, Simple Loops
in PL/pgSQL, Simple Loops
lower, String Functions and Operators, Range Functions and Operators
and locales, Behavior
lower_inc, Range Functions and Operators
lower_inf, Range Functions and Operators
lo_close, Closing a Large Object Descriptor
lo_compat_privileges configuration parameter, Previous PostgreSQL Versions
lo_creat, Creating a Large Object, Server-side Functions
lo_create, Creating a Large Object
lo_export, Exporting a Large Object, Server-side Functions
lo_from_bytea, Server-side Functions
lo_get, Server-side Functions
lo_import, Importing a Large Object, Server-side Functions
lo_import_with_oid, Importing a Large Object
lo_lseek, Seeking in a Large Object
lo_lseek64, Seeking in a Large Object
lo_open, Opening an Existing Large Object
lo_put, Server-side Functions
lo_read, Reading Data from a Large Object
lo_tell, Obtaining the Seek Position of a Large Object
lo_tell64, Obtaining the Seek Position of a Large Object
lo_truncate, Truncating a Large Object
lo_truncate64, Truncating a Large Object
lo_unlink, Removing a Large Object, Server-side Functions
lo_write, Writing Data to a Large Object
lpad, String Functions and Operators
lseg, Line Segments, Geometric Functions and Operators
LSN, WAL Internals
ltree, ltree
ltree2text, Operators and Functions
ltrim, String Functions and Operators

M

MAC address (see macaddr)
MAC address (EUI-64 format) (see macaddr)
macaddr (data type), macaddr
macaddr8 (data type), macaddr8
macaddr8_set7bit, Network Address Functions and Operators
macOS, macOS
installation on, macOS
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
magic block, Dynamic Loading
maintenance, Routine Database Maintenance Tasks
maintenance_work_mem configuration parameter, Memory
make, Requirements
make_date, Date/Time Functions and Operators
make_interval, Date/Time Functions and Operators
make_time, Date/Time Functions and Operators
make_timestamp, Date/Time Functions and Operators
make_timestamptz, Date/Time Functions and Operators
make_valid, Functions and Operators
MANPATH, Environment Variables
masklen, Network Address Functions and Operators
materialized view, Materialized Views
implementation through rules, Materialized Views
materialized views, pg_matviews
max, Aggregate Functions
max_connections configuration parameter, Connection Settings
max_files_per_process configuration parameter, Kernel Resource Usage
max_function_args configuration parameter, Preset Options
max_identifier_length configuration parameter, Preset Options
max_index_keys configuration parameter, Preset Options
max_locks_per_transaction configuration parameter, Lock Management
max_logical_replication_workers configuration parameter, Subscribers
max_parallel_workers configuration parameter, Asynchronous Behavior
max_parallel_workers_per_gather configuration parameter, Asynchronous Behavior
max_pred_locks_per_page configuration parameter, Lock Management
max_pred_locks_per_relation configuration parameter, Lock Management
max_pred_locks_per_transaction configuration parameter, Lock Management
max_prepared_transactions configuration parameter, Memory
max_replication_slots configuration parameter, Sending Server(s)
max_stack_depth configuration parameter, Memory
max_standby_archive_delay configuration parameter, Standby Servers
max_standby_streaming_delay configuration parameter, Standby Servers
max_sync_workers_per_subscription configuration parameter, Subscribers
max_wal_senders configuration parameter, Sending Server(s)
max_wal_size configuration parameter, Checkpoints
max_worker_processes configuration parameter, Asynchronous Behavior
md5, String Functions and Operators, Binary String Functions and Operators
MD5, Password Authentication
median, Aggregate Expressions
(see also percentile)
memory context
in SPI, Memory Management
memory overcommit, Linux Memory Overcommit
metaphone, Metaphone
min, Aggregate Functions
MinGW, MinGW/Native Windows
installation on, MinGW/Native Windows
min_parallel_index_scan_size configuration parameter, Planner Cost Constants
min_parallel_table_scan_size configuration parameter, Planner Cost Constants
min_wal_size configuration parameter, Checkpoints
mod, Mathematical Functions and Operators
mode
statistical, Aggregate Functions
monitoring, Monitoring Database Activity
database activity, Monitoring Database Activity
MOVE, MOVE
moving-aggregate mode, Moving-Aggregate Mode
Multiversion Concurrency Control, Introduction
MultiXactId, Multixacts and Wraparound
MVCC, Introduction

N

name, Identifiers and Key Words
qualified, Creating a Schema
syntax of, Identifiers and Key Words
unqualified, The Schema Search Path
NaN (see not a number)
natural join, Joined Tables
negation, Logical Operators
NetBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
netmask, Network Address Functions and Operators
network, Network Address Types, Network Address Functions and Operators
data types, Network Address Types
Network Attached Storage (NAS) (see Network File Systems)
Network File Systems, Use of Network File Systems
nextval, Sequence Manipulation Functions
NFS (see Network File Systems)
nlevel, Operators and Functions
non-durable, Non-Durable Settings
nonblocking connection, Database Connection Control Functions, Asynchronous Command Processing
nonrepeatable read, Transaction Isolation
normal_rand, normal_rand
NOT (operator), Logical Operators
not a number
double precision, Floating-Point Types
numeric (data type), Arbitrary Precision Numbers
NOT IN, Subquery Expressions, Row and Array Comparisons
not-null constraint, Not-Null Constraints
notation, Calling Functions
functions, Calling Functions
notice processing, Notice Processing
in libpq, Notice Processing
notice processor, Notice Processing
notice receiver, Notice Processing
NOTIFY, Asynchronous Notification, NOTIFY
in libpq, Asynchronous Notification
NOTNULL, Comparison Functions and Operators
now, Date/Time Functions and Operators
npoints, Geometric Functions and Operators
nth_value, Window Functions
ntile, Window Functions
null value
with check constraints, Check Constraints
comparing, Comparison Functions and Operators
default value, Default Values
in DISTINCT, DISTINCT
in libpq, Retrieving Query Result Information
in PL/Perl, PL/Perl Functions and Arguments
in PL/Python, Null, None
with unique constraints, Unique Constraints
NULLIF, NULLIF
number
constant, Numeric Constants
numeric, Numeric Constants
numeric (data type), Arbitrary Precision Numbers
numnode, Text Search Functions and Operators, Manipulating Queries
num_nonnulls, Comparison Functions and Operators
num_nulls, Comparison Functions and Operators
NVL, COALESCE

O

object identifier, Object Identifier Types
data type, Object Identifier Types
object-oriented database, Concepts
obj_description, System Information Functions
octet_length, String Functions and Operators, Binary String Functions and Operators
OFFSET, LIMIT and OFFSET
OID
column, System Columns
in libpq, Retrieving Other Result Information
oid, Object Identifier Types
oid2name, oid2name
old_snapshot_threshold configuration parameter, Asynchronous Behavior
ON CONFLICT, INSERT
ONLY, The FROM Clause
OOM, Linux Memory Overcommit
opaque, Pseudo-Types
OpenBSD
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
OpenSSL, Installation Procedure
(see also SSL)
operator, Operators, Operator Precedence, Functions and Operators, Logical Operators, Operators, User-defined Operators
invocation, Operator Invocations
logical, Logical Operators
precedence, Operator Precedence
syntax, Operators
type resolution in an invocation, Operators
user-defined, User-defined Operators
operator class, Operator Classes and Operator Families, Index Methods and Operator Classes
operator family, Operator Classes and Operator Families, Operator Classes and Operator Families
operator_precedence_warning configuration parameter, Previous PostgreSQL Versions
OR (operator), Logical Operators
Oracle, Porting from Oracle PL/SQL
porting from PL/SQL to PL/pgSQL, Porting from Oracle PL/SQL
ORDER BY, Querying a Table, Sorting Rows
and locales, Behavior
ordered-set aggregate, Aggregate Expressions
built-in, Aggregate Functions
ordering operator, System Dependencies on Operator Classes
ordinality, Set Returning Functions
outer join, Joined Tables
output function, User-defined Types
OVER clause, Window Function Calls
overcommit, Linux Memory Overcommit
OVERLAPS, Date/Time Functions and Operators
overlay, String Functions and Operators, Binary String Functions and Operators
overloading, Function Overloading
functions, Function Overloading
operators, User-defined Operators
owner, Privileges

P

pageinspect, pageinspect
page_checksum, General Functions
page_header, General Functions
palloc, Writing Code
PAM, Installation Procedure, PAM Authentication
parallel query, Parallel Query
parallel_setup_cost configuration parameter, Planner Cost Constants
parallel_tuple_cost configuration parameter, Planner Cost Constants
parameter
syntax, Positional Parameters
parenthesis, Value Expressions
parse_ident, String Functions and Operators
partitioned table, Table Partitioning
partitioning, Table Partitioning
password, Role Attributes
authentication, Password Authentication
of the superuser, Creating a Database Cluster
password file, The Password File
passwordcheck, passwordcheck
password_encryption configuration parameter, Security and Authentication
path, Geometric Functions and Operators
for schemas, Statement Behavior
PATH, Environment Variables
path (data type), Paths
pattern matching, Pattern Matching
patterns
in psql and pg_dump, Patterns
pclose, Geometric Functions and Operators
peer, Peer Authentication
percentile
continuous, Aggregate Functions
discrete, Aggregate Functions
percent_rank, Window Functions
hypothetical, Aggregate Functions
performance, Performance Tips
perl, Requirements
Perl, PL/Perl - Perl Procedural Language
permission (see privilege)
pfree, Writing Code
PGAPPNAME, Environment Variables
pgbench, pgbench
PGcancel, Canceling Queries in Progress
PGCLIENTENCODING, Environment Variables
PGconn, Database Connection Control Functions
PGCONNECT_TIMEOUT, Environment Variables
pgcrypto, pgcrypto
PGDATA, Creating a Database Cluster
PGDATABASE, Environment Variables
PGDATESTYLE, Environment Variables
PGEventProc, Event Callback Procedure
PGGEQO, Environment Variables
PGGSSLIB, Environment Variables
PGHOST, Environment Variables
PGHOSTADDR, Environment Variables
PGKRBSRVNAME, Environment Variables
PGLOCALEDIR, Environment Variables
PGOPTIONS, Environment Variables
PGPASSFILE, Environment Variables
PGPASSWORD, Environment Variables
PGPORT, Environment Variables
pgp_armor_headers, pgp_armor_headers
pgp_key_id, pgp_key_id()
pgp_pub_decrypt, pgp_pub_decrypt()
pgp_pub_decrypt_bytea, pgp_pub_decrypt()
pgp_pub_encrypt, pgp_pub_encrypt()
pgp_pub_encrypt_bytea, pgp_pub_encrypt()
pgp_sym_decrypt, pgp_sym_decrypt()
pgp_sym_decrypt_bytea, pgp_sym_decrypt()
pgp_sym_encrypt, pgp_sym_encrypt()
pgp_sym_encrypt_bytea, pgp_sym_encrypt()
PGREQUIREPEER, Environment Variables
PGREQUIRESSL, Environment Variables
PGresult, Main Functions
pgrowlocks, pgrowlocks, Overview
PGSERVICE, Environment Variables
PGSERVICEFILE, Environment Variables
PGSSLCERT, Environment Variables
PGSSLCOMPRESSION, Environment Variables
PGSSLCRL, Environment Variables
PGSSLKEY, Environment Variables
PGSSLMODE, Environment Variables
PGSSLROOTCERT, Environment Variables
pgstatginindex, Functions
pgstathashindex, Functions
pgstatindex, Functions
pgstattuple, pgstattuple, Functions
pgstattuple_approx, Functions
PGSYSCONFDIR, Environment Variables
PGTARGETSESSIONATTRS, Environment Variables
PGTZ, Environment Variables
PGUSER, Environment Variables
pgxs, Extension Building Infrastructure
pg_advisory_lock, Advisory Lock Functions
pg_advisory_lock_shared, Advisory Lock Functions
pg_advisory_unlock, Advisory Lock Functions
pg_advisory_unlock_all, Advisory Lock Functions
pg_advisory_unlock_shared, Advisory Lock Functions
pg_advisory_xact_lock, Advisory Lock Functions
pg_advisory_xact_lock_shared, Advisory Lock Functions
pg_aggregate, pg_aggregate
pg_am, pg_am
pg_amop, pg_amop
pg_amproc, pg_amproc
pg_archivecleanup, pg_archivecleanup
pg_attrdef, pg_attrdef
pg_attribute, pg_attribute
pg_authid, pg_authid
pg_auth_members, pg_auth_members
pg_available_extensions, pg_available_extensions
pg_available_extension_versions, pg_available_extension_versions
pg_backend_pid, System Information Functions
pg_backup_start_time, Backup Control Functions
pg_basebackup, pg_basebackup
pg_blocking_pids, System Information Functions
pg_buffercache, pg_buffercache
pg_buffercache_pages, pg_buffercache
pg_cancel_backend, Server Signaling Functions
pg_cast, pg_cast
pg_class, pg_class
pg_client_encoding, String Functions and Operators
pg_collation, pg_collation
pg_collation_actual_version, Database Object Management Functions
pg_collation_is_visible, System Information Functions
pg_column_size, Database Object Management Functions
pg_config, pg_config, pg_config
with + ecpg, Processing Embedded SQL Programs
with libpq, Building libpq Programs
with user-defined C functions, Writing Code
pg_conf_load_time, System Information Functions
pg_constraint, pg_constraint
pg_controldata, pg_controldata
pg_control_checkpoint, System Information Functions
pg_control_init, System Information Functions
pg_control_recovery, System Information Functions
pg_control_system, System Information Functions
pg_conversion, pg_conversion
pg_conversion_is_visible, System Information Functions
pg_create_logical_replication_slot, Replication Functions
pg_create_physical_replication_slot, Replication Functions
pg_create_restore_point, Backup Control Functions
pg_ctl, Creating a Database Cluster, Starting the Database Server, pg_ctl
pg_current_logfile, System Information Functions
pg_current_wal_flush_lsn, Backup Control Functions
pg_current_wal_insert_lsn, Backup Control Functions
pg_current_wal_lsn, Backup Control Functions
pg_cursors, pg_cursors
pg_database, Template Databases, pg_database
pg_database_size, Database Object Management Functions
pg_db_role_setting, pg_db_role_setting
pg_ddl_command, Pseudo-Types
pg_default_acl, pg_default_acl
pg_depend, pg_depend
pg_describe_object, System Information Functions
pg_description, pg_description
pg_drop_replication_slot, Replication Functions
pg_dump, pg_dump
pg_dumpall, pg_dumpall
use during upgrade, Upgrading Data via pg_dumpall
pg_enum, pg_enum
pg_event_trigger, pg_event_trigger
pg_event_trigger_ddl_commands, Capturing Changes at Command End
pg_event_trigger_dropped_objects, Processing Objects Dropped by a DDL Command
pg_event_trigger_table_rewrite_oid, Handling a Table Rewrite Event
pg_event_trigger_table_rewrite_reason, Handling a Table Rewrite Event
pg_export_snapshot, Snapshot Synchronization Functions
pg_extension, pg_extension
pg_extension_config_dump, Extension Configuration Tables
pg_filenode_relation, Database Object Management Functions
pg_file_rename, adminpack
pg_file_settings, pg_file_settings
pg_file_unlink, adminpack
pg_file_write, adminpack
pg_foreign_data_wrapper, pg_foreign_data_wrapper
pg_foreign_server, pg_foreign_server
pg_foreign_table, pg_foreign_table
pg_freespace, Functions
pg_freespacemap, pg_freespacemap
pg_function_is_visible, System Information Functions
pg_get_constraintdef, System Information Functions
pg_get_expr, System Information Functions
pg_get_functiondef, System Information Functions
pg_get_function_arguments, System Information Functions
pg_get_function_identity_arguments, System Information Functions
pg_get_function_result, System Information Functions
pg_get_indexdef, System Information Functions
pg_get_keywords, System Information Functions
pg_get_object_address, System Information Functions
pg_get_ruledef, System Information Functions
pg_get_serial_sequence, System Information Functions
pg_get_statisticsobjdef, System Information Functions
pg_get_triggerdef, System Information Functions
pg_get_userbyid, System Information Functions
pg_get_viewdef, System Information Functions
pg_group, pg_group
pg_has_role, System Information Functions
pg_hba.conf, The pg_hba.conf File
pg_hba_file_rules, pg_hba_file_rules
pg_ident.conf, User Name Maps
pg_identify_object, System Information Functions
pg_identify_object_as_address, System Information Functions
pg_import_system_collations, Database Object Management Functions
pg_index, pg_index
pg_indexam_has_property, System Information Functions
pg_indexes, pg_indexes
pg_indexes_size, Database Object Management Functions
pg_index_column_has_property, System Information Functions
pg_index_has_property, System Information Functions
pg_inherits, pg_inherits
pg_init_privs, pg_init_privs
pg_isready, pg_isready
pg_is_in_backup, Backup Control Functions
pg_is_in_recovery, Recovery Control Functions
pg_is_other_temp_schema, System Information Functions
pg_is_wal_replay_paused, Recovery Control Functions
pg_language, pg_language
pg_largeobject, pg_largeobject
pg_largeobject_metadata, pg_largeobject_metadata
pg_last_committed_xact, System Information Functions
pg_last_wal_receive_lsn, Recovery Control Functions
pg_last_wal_replay_lsn, Recovery Control Functions
pg_last_xact_replay_timestamp, Recovery Control Functions
pg_listening_channels, System Information Functions
pg_locks, pg_locks
pg_logdir_ls, adminpack
pg_logical_emit_message, Replication Functions
pg_logical_slot_get_binary_changes, Replication Functions
pg_logical_slot_get_changes, Replication Functions
pg_logical_slot_peek_binary_changes, Replication Functions
pg_logical_slot_peek_changes, Replication Functions
pg_lsn, pg_lsn Type
pg_ls_dir, Generic File Access Functions
pg_ls_logdir, Generic File Access Functions
pg_ls_waldir, Generic File Access Functions
pg_matviews, pg_matviews
pg_my_temp_schema, System Information Functions
pg_namespace, pg_namespace
pg_notification_queue_usage, System Information Functions
pg_notify, pg_notify
pg_opclass, pg_opclass
pg_opclass_is_visible, System Information Functions
pg_operator, pg_operator
pg_operator_is_visible, System Information Functions
pg_opfamily, pg_opfamily
pg_opfamily_is_visible, System Information Functions
pg_options_to_table, System Information Functions
pg_partitioned_table, pg_partitioned_table
pg_pltemplate, pg_pltemplate
pg_policies, pg_policies
pg_policy, pg_policy
pg_postmaster_start_time, System Information Functions
pg_prepared_statements, pg_prepared_statements
pg_prepared_xacts, pg_prepared_xacts
pg_prewarm, pg_prewarm
pg_proc, pg_proc
pg_publication, pg_publication
pg_publication_rel, pg_publication_rel
pg_publication_tables, pg_publication_tables
pg_range, pg_range
pg_read_binary_file, Generic File Access Functions
pg_read_file, Generic File Access Functions
pg_receivewal, pg_receivewal
pg_recvlogical, pg_recvlogical
pg_relation_filenode, Database Object Management Functions
pg_relation_filepath, Database Object Management Functions
pg_relation_size, Database Object Management Functions
pg_reload_conf, Server Signaling Functions
pg_relpages, Functions
pg_replication_origin, pg_replication_origin
pg_replication_origin_advance, Replication Functions
pg_replication_origin_create, Replication Functions
pg_replication_origin_drop, Replication Functions
pg_replication_origin_oid, Replication Functions
pg_replication_origin_progress, Replication Functions
pg_replication_origin_session_is_setup, Replication Functions
pg_replication_origin_session_progress, Replication Functions
pg_replication_origin_session_reset, Replication Functions
pg_replication_origin_session_setup, Replication Functions
pg_replication_origin_status, pg_replication_origin_status
pg_replication_origin_xact_reset, Replication Functions
pg_replication_origin_xact_setup, Replication Functions
pg_replication_slots, pg_replication_slots
pg_resetwal, pg_resetwal
pg_restore, pg_restore
pg_rewind, pg_rewind
pg_rewrite, pg_rewrite
pg_roles, pg_roles
pg_rotate_logfile, Server Signaling Functions
pg_rules, pg_rules
pg_safe_snapshot_blocking_pids, System Information Functions
pg_seclabel, pg_seclabel
pg_seclabels, pg_seclabels
pg_sequence, pg_sequence
pg_sequences, pg_sequences
pg_service.conf, The Connection Service File
pg_settings, pg_settings
pg_shadow, pg_shadow
pg_shdepend, pg_shdepend
pg_shdescription, pg_shdescription
pg_shseclabel, pg_shseclabel
pg_size_bytes, Database Object Management Functions
pg_size_pretty, Database Object Management Functions
pg_sleep, Delaying Execution
pg_sleep_for, Delaying Execution
pg_sleep_until, Delaying Execution
pg_standby, pg_standby
pg_start_backup, Backup Control Functions
pg_statio_all_indexes, Viewing Statistics
pg_statio_all_sequences, Viewing Statistics
pg_statio_all_tables, Viewing Statistics
pg_statio_sys_indexes, Viewing Statistics
pg_statio_sys_sequences, Viewing Statistics
pg_statio_sys_tables, Viewing Statistics
pg_statio_user_indexes, Viewing Statistics
pg_statio_user_sequences, Viewing Statistics
pg_statio_user_tables, Viewing Statistics
pg_statistic, Single-Column Statistics, pg_statistic
pg_statistics_obj_is_visible, System Information Functions
pg_statistic_ext, Extended Statistics, pg_statistic_ext
pg_stats, Single-Column Statistics, pg_stats
pg_stat_activity, Viewing Statistics
pg_stat_all_indexes, Viewing Statistics
pg_stat_all_tables, Viewing Statistics
pg_stat_archiver, Viewing Statistics
pg_stat_bgwriter, Viewing Statistics
pg_stat_clear_snapshot, Statistics Functions
pg_stat_database, Viewing Statistics
pg_stat_database_conflicts, Viewing Statistics
pg_stat_file, Generic File Access Functions
pg_stat_get_activity, Statistics Functions
pg_stat_get_snapshot_timestamp, Statistics Functions
pg_stat_progress_vacuum, Viewing Statistics
pg_stat_replication, Viewing Statistics
pg_stat_reset, Statistics Functions
pg_stat_reset_shared, Statistics Functions
pg_stat_reset_single_function_counters, Statistics Functions
pg_stat_reset_single_table_counters, Statistics Functions
pg_stat_ssl, Viewing Statistics
pg_stat_statements, pg_stat_statements
function, Functions
pg_stat_statements_reset, Functions
pg_stat_subscription, Viewing Statistics
pg_stat_sys_indexes, Viewing Statistics
pg_stat_sys_tables, Viewing Statistics
pg_stat_user_functions, Viewing Statistics
pg_stat_user_indexes, Viewing Statistics
pg_stat_user_tables, Viewing Statistics
pg_stat_wal_receiver, Viewing Statistics
pg_stat_xact_all_tables, Viewing Statistics
pg_stat_xact_sys_tables, Viewing Statistics
pg_stat_xact_user_functions, Viewing Statistics
pg_stat_xact_user_tables, Viewing Statistics
pg_stop_backup, Backup Control Functions
pg_subscription, pg_subscription
pg_subscription_rel, pg_subscription_rel
pg_switch_wal, Backup Control Functions
pg_tables, pg_tables
pg_tablespace, pg_tablespace
pg_tablespace_databases, System Information Functions
pg_tablespace_location, System Information Functions
pg_tablespace_size, Database Object Management Functions
pg_table_is_visible, System Information Functions
pg_table_size, Database Object Management Functions
pg_temp, Statement Behavior
securing functions, Writing SECURITY DEFINER Functions Safely
pg_terminate_backend, Server Signaling Functions
pg_test_fsync, pg_test_fsync
pg_test_timing, pg_test_timing
pg_timezone_abbrevs, pg_timezone_abbrevs
pg_timezone_names, pg_timezone_names
pg_total_relation_size, Database Object Management Functions
pg_transform, pg_transform
pg_trgm, pg_trgm
pg_trgm.similarity_threshold configuration parameter, GUC Parameters
pg_trgm.word_similarity_threshold configuration parameter + , GUC Parameters
pg_trigger, pg_trigger
pg_try_advisory_lock, Advisory Lock Functions
pg_try_advisory_lock_shared, Advisory Lock Functions
pg_try_advisory_xact_lock, Advisory Lock Functions
pg_try_advisory_xact_lock_shared, Advisory Lock Functions
pg_ts_config, pg_ts_config
pg_ts_config_is_visible, System Information Functions
pg_ts_config_map, pg_ts_config_map
pg_ts_dict, pg_ts_dict
pg_ts_dict_is_visible, System Information Functions
pg_ts_parser, pg_ts_parser
pg_ts_parser_is_visible, System Information Functions
pg_ts_template, pg_ts_template
pg_ts_template_is_visible, System Information Functions
pg_type, pg_type
pg_typeof, System Information Functions
pg_type_is_visible, System Information Functions
pg_upgrade, pg_upgrade
pg_user, pg_user
pg_user_mapping, pg_user_mapping
pg_user_mappings, pg_user_mappings
pg_views, pg_views
pg_visibility, pg_visibility
pg_waldump, pg_waldump
pg_walfile_name, Backup Control Functions
pg_walfile_name_offset, Backup Control Functions
pg_wal_lsn_diff, Backup Control Functions
pg_wal_replay_pause, Recovery Control Functions
pg_wal_replay_resume, Recovery Control Functions
pg_xact_commit_timestamp, System Information Functions
phantom read, Transaction Isolation
phraseto_tsquery, Text Search Functions and Operators, Parsing Queries
pi, Mathematical Functions and Operators
PIC, Compiling and Linking Dynamically-loaded Functions
PID
determining PID of server process
in libpq, Connection Status Functions
PITR, Backup and Restore
PITR standby, High Availability, Load Balancing, and Replication
pkg-config, Installation Procedure
with ecpg, Processing Embedded SQL Programs
with - libpq, Building libpq Programs
PL/Perl, PL/Perl - Perl Procedural Language
PL/PerlU, Trusted and Untrusted PL/Perl
PL/pgSQL, PL/pgSQL - SQL Procedural Language
PL/Python, PL/Python - Python Procedural Language
PL/SQL (Oracle), Porting from Oracle PL/SQL
porting to PL/pgSQL, Porting from Oracle PL/SQL
PL/Tcl, PL/Tcl - Tcl Procedural Language
plainto_tsquery, Text Search Functions and Operators, Parsing Queries
plperl.on_init configuration parameter, Configuration
plperl.on_plperlu_init configuration parameter, Configuration
plperl.on_plperl_init configuration parameter, Configuration
plperl.use_strict configuration parameter, Configuration
plpgsql.check_asserts configuration parameter, Checking Assertions
plpgsql.variable_conflict configuration parameter, Variable Substitution
pltcl.start_proc configuration parameter, PL/Tcl Configuration
pltclu.start_proc configuration parameter, PL/Tcl Configuration
point, Points, Geometric Functions and Operators
point-in-time recovery, Backup and Restore
policy, Row Security Policies
polygon, Polygons, Geometric Functions and Operators
polymorphic function, Polymorphic Types
polymorphic type, Polymorphic Types
popen, Geometric Functions and Operators
populate_record, hstore Operators and Functions
port, Parameter Key Words
port configuration parameter, Connection Settings
position, String Functions and Operators, Binary String Functions and Operators
POSTGRES, The Berkeley POSTGRES Project
postgres, Architectural Fundamentals, Starting the Database Server, Creating a Database, postgres
postgres user, The PostgreSQL User Account
Postgres95, Postgres95
postgresql.auto.conf, Parameter Interaction via the Configuration File
postgresql.conf, Parameter Interaction via the Configuration File
postgres_fdw, postgres_fdw
postmaster, postmaster
post_auth_delay configuration parameter, Developer Options
power, Mathematical Functions and Operators
PQbackendPID, Connection Status Functions
PQbinaryTuples, Retrieving Query Result Information
with COPY, Functions Associated with the COPY Command
PQcancel, Canceling Queries in Progress
PQclear, Main Functions
PQclientEncoding, Control Functions
PQcmdStatus, Retrieving Other Result Information
PQcmdTuples, Retrieving Other Result Information
PQconndefaults, Database Connection Control Functions
PQconnectdb, Database Connection Control Functions
PQconnectdbParams, Database Connection Control Functions
PQconnectionNeedsPassword, Connection Status Functions
PQconnectionUsedPassword, Connection Status Functions
PQconnectPoll, Database Connection Control Functions
PQconnectStart, Database Connection Control Functions
PQconnectStartParams, Database Connection Control Functions
PQconninfo, Database Connection Control Functions
PQconninfoFree, Miscellaneous Functions
PQconninfoParse, Database Connection Control Functions
PQconsumeInput, Asynchronous Command Processing
PQcopyResult, Miscellaneous Functions
PQdb, Connection Status Functions
PQdescribePortal, Main Functions
PQdescribePrepared, Main Functions
PQencryptPassword, Miscellaneous Functions
PQencryptPasswordConn, Miscellaneous Functions
PQendcopy, Obsolete Functions for COPY
PQerrorMessage, Connection Status Functions
PQescapeBytea, Escaping Strings for Inclusion in SQL Commands
PQescapeByteaConn, Escaping Strings for Inclusion in SQL Commands
PQescapeIdentifier, Escaping Strings for Inclusion in SQL Commands
PQescapeLiteral, Escaping Strings for Inclusion in SQL Commands
PQescapeString, Escaping Strings for Inclusion in SQL Commands
PQescapeStringConn, Escaping Strings for Inclusion in SQL Commands
PQexec, Main Functions
PQexecParams, Main Functions
PQexecPrepared, Main Functions
PQfformat, Retrieving Query Result Information
with COPY, Functions Associated with the COPY Command
PQfinish, Database Connection Control Functions
PQfireResultCreateEvents, Miscellaneous Functions
PQflush, Asynchronous Command Processing
PQfmod, Retrieving Query Result Information
PQfn, The Fast-Path Interface
PQfname, Retrieving Query Result Information
PQfnumber, Retrieving Query Result Information
PQfreeCancel, Canceling Queries in Progress
PQfreemem, Miscellaneous Functions
PQfsize, Retrieving Query Result Information
PQftable, Retrieving Query Result Information
PQftablecol, Retrieving Query Result Information
PQftype, Retrieving Query Result Information
PQgetCancel, Canceling Queries in Progress
PQgetCopyData, Functions for Receiving COPY Data
PQgetisnull, Retrieving Query Result Information
PQgetlength, Retrieving Query Result Information
PQgetline, Obsolete Functions for COPY
PQgetlineAsync, Obsolete Functions for COPY
PQgetResult, Asynchronous Command Processing
PQgetssl, Connection Status Functions
PQgetvalue, Retrieving Query Result Information
PQhost, Connection Status Functions
PQinitOpenSSL, SSL Library Initialization
PQinitSSL, SSL Library Initialization
PQinstanceData, Event Support Functions
PQisBusy, Asynchronous Command Processing
PQisnonblocking, Asynchronous Command Processing
PQisthreadsafe, Behavior in Threaded Programs
PQlibVersion, Miscellaneous Functions
(see also PQserverVersion)
PQmakeEmptyPGresult, Miscellaneous Functions
PQnfields, Retrieving Query Result Information
with COPY, Functions Associated with the COPY Command
PQnotifies, Asynchronous Notification
PQnparams, Retrieving Query Result Information
PQntuples, Retrieving Query Result Information
PQoidStatus, Retrieving Other Result Information
PQoidValue, Retrieving Other Result Information
PQoptions, Connection Status Functions
PQparameterStatus, Connection Status Functions
PQparamtype, Retrieving Query Result Information
PQpass, Connection Status Functions
PQping, Database Connection Control Functions
PQpingParams, Database Connection Control Functions
PQport, Connection Status Functions
PQprepare, Main Functions
PQprint, Retrieving Query Result Information
PQprotocolVersion, Connection Status Functions
PQputCopyData, Functions for Sending COPY Data
PQputCopyEnd, Functions for Sending COPY Data
PQputline, Obsolete Functions for COPY
PQputnbytes, Obsolete Functions for COPY
PQregisterEventProc, Event Support Functions
PQrequestCancel, Canceling Queries in Progress
PQreset, Database Connection Control Functions
PQresetPoll, Database Connection Control Functions
PQresetStart, Database Connection Control Functions
PQresStatus, Main Functions
PQresultAlloc, Miscellaneous Functions
PQresultErrorField, Main Functions
PQresultErrorMessage, Main Functions
PQresultInstanceData, Event Support Functions
PQresultSetInstanceData, Event Support Functions
PQresultStatus, Main Functions
PQresultVerboseErrorMessage, Main Functions
PQsendDescribePortal, Asynchronous Command Processing
PQsendDescribePrepared, Asynchronous Command Processing
PQsendPrepare, Asynchronous Command Processing
PQsendQuery, Asynchronous Command Processing
PQsendQueryParams, Asynchronous Command Processing
PQsendQueryPrepared, Asynchronous Command Processing
PQserverVersion, Connection Status Functions
PQsetClientEncoding, Control Functions
PQsetdb, Database Connection Control Functions
PQsetdbLogin, Database Connection Control Functions
PQsetErrorContextVisibility, Control Functions
PQsetErrorVerbosity, Control Functions
PQsetInstanceData, Event Support Functions
PQsetnonblocking, Asynchronous Command Processing
PQsetNoticeProcessor, Notice Processing
PQsetNoticeReceiver, Notice Processing
PQsetResultAttrs, Miscellaneous Functions
PQsetSingleRowMode, Retrieving Query Results Row-By-Row
PQsetvalue, Miscellaneous Functions
PQsocket, Connection Status Functions
PQsslAttribute, Connection Status Functions
PQsslAttributeNames, Connection Status Functions
PQsslInUse, Connection Status Functions
PQsslStruct, Connection Status Functions
PQstatus, Connection Status Functions
PQtrace, Control Functions
PQtransactionStatus, Connection Status Functions
PQtty, Connection Status Functions
PQunescapeBytea, Escaping Strings for Inclusion in SQL Commands
PQuntrace, Control Functions
PQuser, Connection Status Functions
predicate locking, Serializable Isolation Level
PREPARE, PREPARE
PREPARE TRANSACTION, PREPARE TRANSACTION
prepared statements, DEALLOCATE, EXECUTE, EXPLAIN, PREPARE
creating, PREPARE
executing, EXECUTE
removing, DEALLOCATE
showing the query plan, EXPLAIN
preparing a query
in PL/pgSQL, Plan Caching
in PL/Python, Database Access Functions
in PL/Tcl, Database Access from PL/Tcl
pre_auth_delay configuration parameter, Developer Options
primary key, Primary Keys
primary_conninfo recovery parameter, Standby Server Settings
primary_slot_name recovery parameter, Standby Server Settings
privilege, Privileges, Schemas and Privileges, Rules and Privileges, Rules and Privileges
querying, System Information Functions
with rules, Rules and Privileges
for schemas, Schemas and Privileges
with views, Rules and Privileges
procedural language, Procedural Languages, Writing A Procedural Language Handler
externally maintained, Procedural Languages
handler for, Writing A Procedural Language Handler
protocol, Frontend/Backend Protocol
frontend-backend, Frontend/Backend Protocol
ps, Standard Unix Tools
to monitor activity, Standard Unix Tools
psql, Accessing a Database, psql
Python, PL/Python - Python Procedural Language

R

radians, Mathematical Functions and Operators
radius, Geometric Functions and Operators
RADIUS, RADIUS Authentication
RAISE
in PL/pgSQL, Reporting Errors and Messages
random, Mathematical Functions and Operators
random_page_cost configuration parameter, Planner Cost Constants
range table, The Query Tree
range type, Range Types
exclude, Constraints on Ranges
indexes on, Indexing
rank, Window Functions
hypothetical, Aggregate Functions
read committed, Read Committed Isolation Level
read-only transaction
setting, SET TRANSACTION
setting default, Statement Behavior
readline, Requirements
real, Floating-Point Types
REASSIGN OWNED, REASSIGN OWNED
record, Pseudo-Types
recovery.conf, Recovery Configuration
recovery_end_command recovery parameter, Archive Recovery Settings
recovery_min_apply_delay recovery parameter, Standby Server Settings
recovery_target recovery parameter, Recovery Target Settings
recovery_target_action recovery parameter, Recovery Target Settings
recovery_target_inclusive recovery parameter, Recovery Target Settings
recovery_target_lsn recovery parameter, Recovery Target Settings
recovery_target_name recovery parameter, Recovery Target Settings
recovery_target_time recovery parameter, Recovery Target Settings
recovery_target_timeline recovery parameter, Recovery Target Settings
recovery_target_xid recovery parameter, Recovery Target Settings
rectangle, Boxes
referential integrity, Foreign Keys, Foreign Keys
REFRESH MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW
regclass, Object Identifier Types
regconfig, Object Identifier Types
regdictionary, Object Identifier Types
regexp_match, String Functions and Operators, POSIX Regular Expressions
regexp_matches, String Functions and Operators, POSIX Regular Expressions
regexp_replace, String Functions and Operators, POSIX Regular Expressions
regexp_split_to_array, String Functions and Operators, POSIX Regular Expressions
regexp_split_to_table, String Functions and Operators, POSIX Regular Expressions
regoper, Object Identifier Types
regoperator, Object Identifier Types
regproc, Object Identifier Types
regprocedure, Object Identifier Types
regression intercept, Aggregate Functions
regression slope, Aggregate Functions
regression test, Installation Procedure
regression tests, Regression Tests
regr_avgx, Aggregate Functions
regr_avgy, Aggregate Functions
regr_count, Aggregate Functions
regr_intercept, Aggregate Functions
regr_r2, Aggregate Functions
regr_slope, Aggregate Functions
regr_sxx, Aggregate Functions
regr_sxy, Aggregate Functions
regr_syy, Aggregate Functions
regtype, Object Identifier Types
regular expression, SIMILAR TO Regular Expressions, POSIX Regular Expressions
(see also pattern matching)
regular expressions
and locales, Behavior
reindex, Routine Reindexing
REINDEX, REINDEX
reindexdb, reindexdb
relation, Concepts
relational database, Concepts
RELEASE SAVEPOINT, RELEASE SAVEPOINT
repeat, String Functions and Operators
repeatable read, Repeatable Read Isolation Level
replace, String Functions and Operators
replacement_sort_tuples configuration parameter, Memory
replication, High Availability, Load Balancing, and Replication
Replication Origins, Replication Progress Tracking
Replication Progress Tracking, Replication Progress Tracking
replication slot
logical replication, Replication Slots
streaming replication, Replication Slots
reporting errors
in PL/pgSQL, Reporting Errors and Messages
RESET, RESET
restartpoint, WAL Configuration
restart_after_crash configuration parameter, Error Handling
restore_command recovery parameter, Archive Recovery Settings
RESTRICT, Dependency Tracking
with DROP, Dependency Tracking
foreign key action, Foreign Keys
RETURN NEXT
in PL/pgSQL, RETURN NEXT and RETURN QUERY
RETURN QUERY
in PL/pgSQL, RETURN NEXT and RETURN QUERY
RETURNING, Returning Data From Modified Rows
RETURNING INTO, Executing a Query with a Single-row Result
in PL/pgSQL, Executing a Query with a Single-row Result
reverse, String Functions and Operators
REVOKE, Privileges, REVOKE
right, String Functions and Operators
right join, Joined Tables
role, Database Roles, Role Membership, Default Roles
applicable, applicable_roles
enabled, enabled_roles
membership in, Role Membership
privilege to create, Role Attributes
privilege to initiate replication, Role Attributes
ROLLBACK, ROLLBACK
rollback
psql, Variables
ROLLBACK PREPARED, ROLLBACK PREPARED
ROLLBACK TO SAVEPOINT, ROLLBACK TO SAVEPOINT
ROLLUP, GROUPING SETS, CUBE, and ROLLUP
round, Mathematical Functions and Operators
routine maintenance, Routine Database Maintenance Tasks
row, Concepts, Table Basics
ROW, Row Constructors
row estimation, Row Estimation Examples
multivariate, Multivariate Statistics Examples
planner, Row Estimation Examples
row type, Composite Types
constructor, Row Constructors
row-level security, Row Security Policies
row-wise comparison, Row and Array Comparisons
row_number, Window Functions
row_security configuration parameter, Statement Behavior
row_security_active, System Information Functions
row_to_json, JSON Functions and Operators
rpad, String Functions and Operators
rtrim, String Functions and Operators
rule, The Rule System, Views and the Rule System, How SELECT Rules Work, Materialized Views, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules Versus Triggers
and materialized views, Materialized Views
and views, Views and the Rule System
for DELETE, Rules on INSERT, UPDATE, and DELETE
for INSERT, Rules on INSERT, UPDATE, and DELETE
for SELECT, How SELECT Rules Work
compared with triggers, Rules Versus Triggers
for UPDATE, Rules on INSERT, UPDATE, and DELETE

S

SAVEPOINT, SAVEPOINT
savepoints, RELEASE SAVEPOINT, ROLLBACK TO SAVEPOINT, SAVEPOINT
defining, SAVEPOINT
releasing, RELEASE SAVEPOINT
rolling back, ROLLBACK TO SAVEPOINT
scalar (see expression)
scale, Mathematical Functions and Operators
schema, Schemas, Creating a Schema, The Public Schema, Overview
creating, Creating a Schema
current, The Schema Search Path, System Information Functions
public, The Public Schema
removing, Creating a Schema
SCRAM, Password Authentication
search path, The Schema Search Path
current, System Information Functions
object visibility, System Information Functions
search_path configuration parameter, The Schema Search Path, Statement Behavior
use in securing functions, Writing SECURITY DEFINER Functions Safely
SECURITY LABEL, SECURITY LABEL
sec_to_gc, Cube-based Earth Distances
seg, seg
segment_size configuration parameter, Preset Options
SELECT, Querying a Table, Queries, SELECT Output Columns, SELECT
determination of result type, SELECT Output Columns
select list, Select Lists
SELECT INTO, Executing a Query with a Single-row Result, SELECT INTO
in PL/pgSQL, Executing a Query with a Single-row Result
semaphores, Shared Memory and Semaphores
sepgsql, sepgsql
sepgsql.debug_audit configuration parameter, GUC Parameters
sepgsql.permissive configuration parameter, GUC Parameters
sequence, Sequence Manipulation Functions
and serial type, Serial Types
sequential scan, Planner Method Configuration
seq_page_cost configuration parameter, Planner Cost Constants
serial, Serial Types
serial2, Serial Types
serial4, Serial Types
serial8, Serial Types
serializable, Serializable Isolation Level
Serializable Snapshot Isolation, Introduction
serialization anomaly, Transaction Isolation, Serializable Isolation Level
server log, Error Reporting and Logging, Log File Maintenance
log file maintenance, Log File Maintenance
server spoofing, Preventing Server Spoofing
server_encoding configuration parameter, Preset Options
server_version configuration parameter, Preset Options
server_version_num configuration parameter, Preset Options
session_preload_libraries configuration parameter, Shared Library Preloading
session_replication_role configuration parameter, Statement Behavior
session_user, System Information Functions
SET, Configuration Settings Functions, SET
SET CONSTRAINTS, SET CONSTRAINTS
set difference, Combining Queries
set intersection, Combining Queries
set operation, Combining Queries
set returning functions, Set Returning Functions
functions, Set Returning Functions
SET ROLE, SET ROLE
SET SESSION AUTHORIZATION, SET SESSION AUTHORIZATION
SET TRANSACTION, SET TRANSACTION
set union, Combining Queries
SET XML OPTION, Statement Behavior
setseed, Mathematical Functions and Operators
setval, Sequence Manipulation Functions
setweight, Text Search Functions and Operators, Manipulating Documents
setweight for specific lexeme(s), Text Search Functions and Operators
set_bit, Binary String Functions and Operators
set_byte, Binary String Functions and Operators
set_config, Configuration Settings Functions
set_limit, Functions and Operators
set_masklen, Network Address Functions and Operators
shared library, Shared Libraries, Compiling and Linking Dynamically-loaded Functions
shared memory, Shared Memory and Semaphores
shared_buffers configuration parameter, Memory
shared_preload_libraries, Shared Memory and LWLocks
shared_preload_libraries configuration parameter, Shared Library Preloading
shobj_description, System Information Functions
SHOW, Configuration Settings Functions, SHOW, Streaming Replication Protocol
show_limit, Functions and Operators
show_trgm, Functions and Operators
shutdown, Shutting Down the Server
SIGHUP, Parameter Interaction via the Configuration File, The pg_hba.conf File, User Name Maps
SIGINT, Shutting Down the Server
sign, Mathematical Functions and Operators
signal
backend processes, Server Signaling Functions
significant digits, Locale and Formatting
SIGQUIT, Shutting Down the Server
SIGTERM, Shutting Down the Server
SIMILAR TO, SIMILAR TO Regular Expressions
similarity, Functions and Operators
sin, Mathematical Functions and Operators
sind, Mathematical Functions and Operators
single-user mode, Options for Single-User Mode
skeys, hstore Operators and Functions
sleep, Delaying Execution
slice, hstore Operators and Functions
sliced bread (see TOAST)
smallint, Integer Types
smallserial, Serial Types
Solaris, Solaris
installation on, Solaris
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
SOME, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
sort, intarray Functions and Operators
sorting, Sorting Rows
sort_asc, intarray Functions and Operators
sort_desc, intarray Functions and Operators
soundex, Soundex
SP-GiST (see index)
SPI, Server Programming Interface, spi
examples, spi
SPI_connect, SPI_connect
SPI_copytuple, SPI_copytuple
spi_cursor_close
in PL/Perl, Database Access from PL/Perl
SPI_cursor_close, SPI_cursor_close
SPI_cursor_fetch, SPI_cursor_fetch
SPI_cursor_find, SPI_cursor_find
SPI_cursor_move, SPI_cursor_move
SPI_cursor_open, SPI_cursor_open
SPI_cursor_open_with_args, SPI_cursor_open_with_args
SPI_cursor_open_with_paramlist, SPI_cursor_open_with_paramlist
SPI_exec, SPI_exec
SPI_execp, SPI_execp
SPI_execute, SPI_execute
SPI_execute_plan, SPI_execute_plan
SPI_execute_plan_with_paramlist, SPI_execute_plan_with_paramlist
SPI_execute_with_args, SPI_execute_with_args
spi_exec_prepared
in PL/Perl, Database Access from PL/Perl
spi_exec_query
in PL/Perl, Database Access from PL/Perl
spi_fetchrow
in PL/Perl, Database Access from PL/Perl
SPI_finish, SPI_finish
SPI_fname, SPI_fname
SPI_fnumber, SPI_fnumber
spi_freeplan
in PL/Perl, Database Access from PL/Perl
SPI_freeplan, SPI_freeplan
SPI_freetuple, SPI_freetuple
SPI_freetuptable, SPI_freetuptable
SPI_getargcount, SPI_getargcount
SPI_getargtypeid, SPI_getargtypeid
SPI_getbinval, SPI_getbinval
SPI_getnspname, SPI_getnspname
SPI_getrelname, SPI_getrelname
SPI_gettype, SPI_gettype
SPI_gettypeid, SPI_gettypeid
SPI_getvalue, SPI_getvalue
SPI_is_cursor_plan, SPI_is_cursor_plan
SPI_keepplan, SPI_keepplan
spi_lastoid
in PL/Tcl, Database Access from PL/Tcl
SPI_modifytuple, SPI_modifytuple
SPI_palloc, SPI_palloc
SPI_pfree, SPI_pfree
spi_prepare
in PL/Perl, Database Access from PL/Perl
SPI_prepare, SPI_prepare
SPI_prepare_cursor, SPI_prepare_cursor
SPI_prepare_params, SPI_prepare_params
spi_query
in PL/Perl, Database Access from PL/Perl
spi_query_prepared
in PL/Perl, Database Access from PL/Perl
SPI_register_relation, SPI_register_relation
SPI_register_trigger_data, SPI_register_trigger_data
SPI_repalloc, SPI_repalloc
SPI_returntuple, SPI_returntuple
SPI_saveplan, SPI_saveplan
SPI_scroll_cursor_fetch, SPI_scroll_cursor_fetch
SPI_scroll_cursor_move, SPI_scroll_cursor_move
SPI_unregister_relation, SPI_unregister_relation
split_part, String Functions and Operators
SQL/CLI, SQL Conformance
SQL/Foundation, SQL Conformance
SQL/Framework, SQL Conformance
SQL/JRT, SQL Conformance
SQL/MED, SQL Conformance
SQL/OLB, SQL Conformance
SQL/PSM, SQL Conformance
SQL/Schemata, SQL Conformance
SQL/XML, SQL Conformance
sqrt, Mathematical Functions and Operators
ssh, Secure TCP/IP Connections with SSH Tunnels
SSI, Introduction
SSL, Secure TCP/IP Connections with SSL, SSL Support
in libpq, Connection Status Functions
with libpq, Parameter Key Words
ssl configuration parameter, Security and Authentication
sslinfo, sslinfo
ssl_ca_file configuration parameter, Security and Authentication
ssl_cert_file configuration parameter, Security and Authentication
ssl_cipher, Functions Provided
ssl_ciphers configuration parameter, Security and Authentication
ssl_client_cert_present, Functions Provided
ssl_client_dn, Functions Provided
ssl_client_dn_field, Functions Provided
ssl_client_serial, Functions Provided
ssl_crl_file configuration parameter, Security and Authentication
ssl_dh_params_file configuration parameter, Security and Authentication
ssl_ecdh_curve configuration parameter, Security and Authentication
ssl_extension_info, Functions Provided
ssl_issuer_dn, Functions Provided
ssl_issuer_field, Functions Provided
ssl_is_used, Functions Provided
ssl_key_file configuration parameter, Security and Authentication
ssl_prefer_server_ciphers configuration parameter, Security and Authentication
ssl_version, Functions Provided
SSPI, SSPI Authentication
STABLE, Function Volatility Categories
standard deviation, Aggregate Functions
population, Aggregate Functions
sample, Aggregate Functions
standard_conforming_strings configuration parameter, Previous PostgreSQL Versions
standby server, High Availability, Load Balancing, and Replication
standby_mode recovery parameter, Standby Server Settings
START TRANSACTION, START TRANSACTION
START_REPLICATION, Streaming Replication Protocol
statement_timeout configuration parameter, Statement Behavior
statement_timestamp, Date/Time Functions and Operators
statistics, Aggregate Functions, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics, The Statistics Collector
of the planner, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics
stats_temp_directory configuration parameter, Query and Index Statistics Collector
stddev, Aggregate Functions
stddev_pop, Aggregate Functions
stddev_samp, Aggregate Functions
STONITH, High Availability, Load Balancing, and Replication
storage parameters, Storage Parameters
Streaming Replication, High Availability, Load Balancing, and Replication
string (see character string)
strings
backslash quotes, Previous PostgreSQL Versions
escape warning, Previous PostgreSQL Versions
standard conforming, Previous PostgreSQL Versions
string_agg, Aggregate Functions
string_to_array, Array Functions and Operators
strip, Text Search Functions and Operators, Manipulating Documents
strpos, String Functions and Operators
subarray, intarray Functions and Operators
subltree, Operators and Functions
subpath, Operators and Functions
subquery, Aggregate Functions, Scalar Subqueries, Subqueries, Subquery Expressions
subscript, Subscripts
substr, String Functions and Operators
substring, String Functions and Operators, Binary String Functions and Operators, SIMILAR TO Regular Expressions, POSIX Regular Expressions
subtransactions
in PL/Tcl, Explicit Subtransactions in PL/Tcl
sum, Aggregate Functions
superuser, Accessing a Database, Role Attributes
superuser_reserved_connections configuration parameter, Connection Settings
suppress_redundant_updates_trigger, Trigger Functions
svals, hstore Operators and Functions
synchronize_seqscans configuration parameter, Previous PostgreSQL Versions
synchronous commit, Asynchronous Commit
Synchronous Replication, High Availability, Load Balancing, and Replication
synchronous_commit configuration parameter, Settings
synchronous_standby_names configuration parameter, Master Server
syntax, SQL Syntax
SQL, SQL Syntax
syslog_facility configuration parameter, Where To Log
syslog_ident configuration parameter, Where To Log
syslog_sequence_numbers configuration parameter, Where To Log
syslog_split_messages configuration parameter, Where To Log
system catalog, The System Catalog Schema
schema, The System Catalog Schema
systemd, Installation Procedure, Starting the Database Server
RemoveIPC, systemd RemoveIPC

T

table, Concepts, Table Basics, Modifying Tables
creating, Table Basics
inheritance, Inheritance
modifying, Modifying Tables
partitioning, Table Partitioning
removing, Table Basics
renaming, Renaming a Table
TABLE command, SELECT
table expression, Table Expressions
table function, Table Functions, xmltable
XMLTABLE, xmltable
table sampling method, Writing A Table Sampling Method
tablefunc, tablefunc
tableoid, System Columns
TABLESAMPLE method, Writing A Table Sampling Method
tablespace, Tablespaces
default, Statement Behavior
temporary, Statement Behavior
tan, Mathematical Functions and Operators
tand, Mathematical Functions and Operators
target list, The Query Tree
Tcl, PL/Tcl - Tcl Procedural Language
tcn, tcn
tcp_keepalives_count configuration parameter, Connection Settings
tcp_keepalives_idle configuration parameter, Connection Settings
tcp_keepalives_interval configuration parameter, Connection Settings
template0, Template Databases
template1, Creating a Database, Template Databases
temp_buffers configuration parameter, Memory
temp_file_limit configuration parameter, Disk
temp_tablespaces configuration parameter, Statement Behavior
test, Regression Tests
test_decoding, test_decoding
text, Character Types, Network Address Functions and Operators
text search, Text Search Types, Text Search Types, Full Text Search, GIN and GiST Index Types
data types, Text Search Types
functions and operators, Text Search Types
indexes, GIN and GiST Index Types
text2ltree, Operators and Functions
threads, Behavior in Threaded Programs
with libpq, Behavior in Threaded Programs
tid, Object Identifier Types
time, Date/Time Types, Times
constants, Special Values
current, Current Date/Time
output format, Date/Time Output
(see also formatting)
time span, Date/Time Types
time with time zone, Date/Time Types, Times
time without time zone, Date/Time Types, Times
time zone, Time Zones, Locale and Formatting
conversion, AT TIME ZONE
input abbreviations, Date/Time Configuration Files
time zone data, Installation Procedure
time zone names, Locale and Formatting
timelines, Backup and Restore
TIMELINE_HISTORY, Streaming Replication Protocol
timeofday, Date/Time Functions and Operators
timeout
client authentication, Security and Authentication
deadlock, Lock Management
timestamp, Date/Time Types, Time Stamps
timestamp with time zone, Date/Time Types, Time Stamps
timestamp without time zone, Date/Time Types, Time Stamps
timestamptz, Date/Time Types
TimeZone configuration parameter, Locale and Formatting
timezone_abbreviations configuration parameter, Locale and Formatting
TOAST, TOAST
and user-defined types, TOAST Considerations
per-column storage settings, Description
versus large objects, Introduction
token, Lexical Structure
to_ascii, String Functions and Operators
to_char, Data Type Formatting Functions
and locales, Behavior
to_date, Data Type Formatting Functions
to_hex, String Functions and Operators
to_json, JSON Functions and Operators
to_jsonb, JSON Functions and Operators
to_number, Data Type Formatting Functions
to_regclass, System Information Functions
to_regnamespace, System Information Functions
to_regoper, System Information Functions
to_regoperator, System Information Functions
to_regproc, System Information Functions
to_regprocedure, System Information Functions
to_regrole, System Information Functions
to_regtype, System Information Functions
to_timestamp, Data Type Formatting Functions, Date/Time Functions and Operators
to_tsquery, Text Search Functions and Operators, Parsing Queries
to_tsvector, Text Search Functions and Operators, Parsing Documents
trace_locks configuration parameter, Developer Options
trace_lock_oidmin configuration parameter, Developer Options
trace_lock_table configuration parameter, Developer Options
trace_lwlocks configuration parameter, Developer Options
trace_notify configuration parameter, Developer Options
trace_recovery_messages configuration parameter, Developer Options
trace_sort configuration parameter, Developer Options
trace_userlocks configuration parameter, Developer Options
track_activities configuration parameter, Query and Index Statistics Collector
track_activity_query_size configuration parameter, Query and Index Statistics Collector
track_commit_timestamp configuration parameter, Sending Server(s)
track_counts configuration parameter, Query and Index Statistics Collector
track_functions configuration parameter, Query and Index Statistics Collector
track_io_timing configuration parameter, Query and Index Statistics Collector
transaction, Transactions
transaction ID, Preventing Transaction ID Wraparound Failures
wraparound, Preventing Transaction ID Wraparound Failures
transaction isolation, Transaction Isolation
transaction isolation level, Transaction Isolation
read committed, Read Committed Isolation Level
repeatable read, Repeatable Read Isolation Level
serializable, Serializable Isolation Level
setting, SET TRANSACTION
setting default, Statement Behavior
transaction log (see WAL)
transaction_timestamp, Date/Time Functions and Operators
transform_null_equals configuration parameter, Platform and Client Compatibility
transition tables, CREATE TRIGGER
(see also ephemeral named relation)
implementation in PLs, SPI_register_trigger_data
referencing from C trigger, Writing Trigger Functions in C
translate, String Functions and Operators
trigger, Pseudo-Types, Triggers, Writing Trigger Functions in C, Rules Versus Triggers, Trigger Procedures, Trigger Functions
arguments for trigger functions, Overview of Trigger Behavior
for updating a derived tsvector column, Triggers for Automatic Updates
in C, Writing Trigger Functions in C
in PL/pgSQL, Trigger Procedures
in PL/Python, Trigger Functions
in PL/Tcl, Trigger Procedures in PL/Tcl
compared with rules, Rules Versus Triggers
triggered_change_notification, tcn
trigger_file recovery parameter, Standby Server Settings
trim, String Functions and Operators, Binary String Functions and Operators
true, Boolean Type
trunc, Mathematical Functions and Operators, Network Address Functions and Operators
TRUNCATE, TRUNCATE
trusted, Trusted and Untrusted PL/Perl
PL/Perl, Trusted and Untrusted PL/Perl
tsm_handler, Pseudo-Types
tsm_system_rows, tsm_system_rows
tsm_system_time, tsm_system_time
tsquery (data type), tsquery
tsquery_phrase, Text Search Functions and Operators, Manipulating Queries
tsvector (data type), tsvector
tsvector concatenation, Manipulating Documents
tsvector_to_array, Text Search Functions and Operators
tsvector_update_trigger, Text Search Functions and Operators
tsvector_update_trigger_column, Text Search Functions and Operators
ts_debug, Text Search Functions and Operators, Configuration Testing
ts_delete, Text Search Functions and Operators
ts_filter, Text Search Functions and Operators
ts_headline, Text Search Functions and Operators, Highlighting Results
ts_lexize, Text Search Functions and Operators, Dictionary Testing
ts_parse, Text Search Functions and Operators, Parser Testing
ts_rank, Text Search Functions and Operators, Ranking Search Results
ts_rank_cd, Text Search Functions and Operators, Ranking Search Results
ts_rewrite, Text Search Functions and Operators, Query Rewriting
ts_stat, Text Search Functions and Operators, Gathering Document Statistics
ts_token_type, Text Search Functions and Operators, Parser Testing
tuple_data_split, General Functions
txid_current, System Information Functions
txid_current_if_assigned, System Information Functions
txid_current_snapshot, System Information Functions
txid_snapshot_xip, System Information Functions
txid_snapshot_xmax, System Information Functions
txid_snapshot_xmin, System Information Functions
txid_status, System Information Functions
txid_visible_in_snapshot, System Information Functions
type, Polymorphic Types (see data type)
polymorphic, Polymorphic Types
type cast, Numeric Constants, Type Casts

U

UESCAPE, Identifiers and Key Words, String Constants with Unicode Escapes
unaccent, unaccent, Functions
Unicode escape, String Constants with Unicode Escapes
in identifiers, Identifiers and Key Words
in string constants, String Constants with Unicode Escapes
UNION, Combining Queries, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
uniq, intarray Functions and Operators
unique constraint, Unique Constraints
Unix domain socket, Parameter Key Words
unix_socket_directories configuration parameter, Connection Settings
unix_socket_group configuration parameter, Connection Settings
unix_socket_permissions configuration parameter, Connection Settings
unknown, Pseudo-Types
UNLISTEN, UNLISTEN
unnest, Array Functions and Operators
for tsvector, Text Search Functions and Operators
unqualified name, The Schema Search Path
updatable views, Updatable Views
UPDATE, Updates, Updating Data, Returning Data From Modified Rows, UPDATE
RETURNING, Returning Data From Modified Rows
update_process_title configuration parameter, Process Title
updating, Updating Data
upgrading, Upgrading a PostgreSQL Cluster
upper, String Functions and Operators, Range Functions and Operators
and locales, Behavior
upper_inc, Range Functions and Operators
upper_inf, Range Functions and Operators
UPSERT, INSERT
URI, Connection Strings
user, System Information Functions, Database Roles
current, System Information Functions
user mapping, Foreign Data
User name maps, User Name Maps
UUID, UUID Type, Installation Procedure
uuid-ossp, uuid-ossp
uuid_generate_v1, uuid-ossp Functions
uuid_generate_v1mc, uuid-ossp Functions
uuid_generate_v3, uuid-ossp Functions

V

vacuum, Routine Vacuuming
VACUUM, VACUUM
vacuumdb, vacuumdb
vacuumlo, vacuumlo
vacuum_cost_delay configuration parameter, Cost-based Vacuum Delay
vacuum_cost_limit configuration parameter, Cost-based Vacuum Delay
vacuum_cost_page_dirty configuration parameter, Cost-based Vacuum Delay
vacuum_cost_page_hit configuration parameter, Cost-based Vacuum Delay
vacuum_cost_page_miss configuration parameter, Cost-based Vacuum Delay
vacuum_defer_cleanup_age configuration parameter, Master Server
vacuum_freeze_min_age configuration parameter, Statement Behavior
vacuum_freeze_table_age configuration parameter, Statement Behavior
vacuum_multixact_freeze_min_age configuration parameter, Statement Behavior
vacuum_multixact_freeze_table_age configuration parameter, Statement Behavior
value expression, Value Expressions
VALUES, VALUES Lists, UNION, CASE, and Related Constructs, VALUES
determination of result type, UNION, CASE, and Related Constructs
varchar, Character Types
variadic function, SQL Functions with Variable Numbers of Arguments
variance, Aggregate Functions
population, Aggregate Functions
sample, Aggregate Functions
var_pop, Aggregate Functions
var_samp, Aggregate Functions
version, Accessing a Database, System Information Functions, Upgrading a PostgreSQL Cluster
compatibility, Upgrading a PostgreSQL Cluster
view, Views, Views and the Rule System, Materialized Views, Cooperation with Views
implementation through rules, Views and the Rule System
materialized, Materialized Views
updating, Cooperation with Views
Visibility Map, Visibility Map
VM (see Visibility Map)
void, Pseudo-Types
VOLATILE, Function Volatility Categories
volatility, Function Volatility Categories
functions, Function Volatility Categories
VPATH, Installation Procedure, Extension Building Infrastructure

W

WAL, Reliability and the Write-Ahead Log
wal_block_size configuration parameter, Preset Options
wal_buffers configuration parameter, Settings
wal_compression configuration parameter, Settings
wal_consistency_checking configuration parameter, Developer Options
wal_debug configuration parameter, Developer Options
wal_keep_segments configuration parameter, Sending Server(s)
wal_level configuration parameter, Settings
wal_log_hints configuration parameter, Settings
wal_receiver_status_interval configuration parameter, Standby Servers
wal_receiver_timeout configuration parameter, Standby Servers
wal_retrieve_retry_interval configuration parameter, Standby Servers
wal_segment_size configuration parameter, Preset Options
wal_sender_timeout configuration parameter, Sending Server(s)
wal_sync_method configuration parameter, Settings
wal_writer_delay configuration parameter, Settings
wal_writer_flush_after configuration parameter, Settings
warm standby, High Availability, Load Balancing, and Replication
WHERE, The WHERE Clause
where to log, Where To Log
WHILE
in PL/pgSQL, WHILE
width, Geometric Functions and Operators
width_bucket, Mathematical Functions and Operators
window function, Window Functions, Window Function Calls, Window Function Processing, Window Functions
built-in, Window Functions
invocation, Window Function Calls
order of execution, Window Function Processing
WITH, WITH Queries (Common Table Expressions), SELECT
in SELECT, WITH Queries (Common Table Expressions), SELECT
WITH CHECK OPTION, CREATE VIEW
WITHIN GROUP, Aggregate Expressions
witness server, High Availability, Load Balancing, and Replication
word_similarity, Functions and Operators
work_mem configuration parameter, Memory
wraparound
of multixact IDs, Multixacts and Wraparound
of transaction IDs, Preventing Transaction ID Wraparound Failures

X

xid, Object Identifier Types
xmax, System Columns
xmin, System Columns
XML, XML Type
XML export, Mapping Tables to XML
XML option, Creating XML Values, Statement Behavior
xml2, xml2
xmlagg, xmlagg, Aggregate Functions
xmlbinary configuration parameter, Statement Behavior
xmlcomment, xmlcomment
xmlconcat, xmlconcat
xmlelement, xmlelement
XMLEXISTS, XMLEXISTS
xmlforest, xmlforest
xmloption configuration parameter, Statement Behavior
xmlparse, Creating XML Values
xmlpi, xmlpi
xmlroot, xmlroot
xmlserialize, Creating XML Values
xmltable, xmltable
xml_is_well_formed, xml_is_well_formed
xml_is_well_formed_content, xml_is_well_formed
xml_is_well_formed_document, xml_is_well_formed
XPath, xpath
xpath_exists, xpath_exists
xpath_table, xpath_table
xslt_process, xslt_process

Z

zero_damaged_pages configuration parameter, Developer Options
zlib, Requirements, Installation Procedure
\ No newline at end of file + libpq, Building libpq Programs
PL/Perl, PL/Perl - Perl Procedural Language
PL/PerlU, Trusted and Untrusted PL/Perl
PL/pgSQL, PL/pgSQL - SQL Procedural Language
PL/Python, PL/Python - Python Procedural Language
PL/SQL (Oracle), Porting from Oracle PL/SQL
porting to PL/pgSQL, Porting from Oracle PL/SQL
PL/Tcl, PL/Tcl - Tcl Procedural Language
plainto_tsquery, Text Search Functions and Operators, Parsing Queries
plperl.on_init configuration parameter, Configuration
plperl.on_plperlu_init configuration parameter, Configuration
plperl.on_plperl_init configuration parameter, Configuration
plperl.use_strict configuration parameter, Configuration
plpgsql.check_asserts configuration parameter, Checking Assertions
plpgsql.variable_conflict configuration parameter, Variable Substitution
pltcl.start_proc configuration parameter, PL/Tcl Configuration
pltclu.start_proc configuration parameter, PL/Tcl Configuration
point, Points, Geometric Functions and Operators
point-in-time recovery, Backup and Restore
policy, Row Security Policies
polygon, Polygons, Geometric Functions and Operators
polymorphic function, Polymorphic Types
polymorphic type, Polymorphic Types
popen, Geometric Functions and Operators
populate_record, hstore Operators and Functions
port, Parameter Key Words
port configuration parameter, Connection Settings
position, String Functions and Operators, Binary String Functions and Operators
POSTGRES, The Berkeley POSTGRES Project
postgres, Architectural Fundamentals, Starting the Database Server, Creating a Database, postgres
postgres user, The PostgreSQL User Account
Postgres95, Postgres95
postgresql.auto.conf, Parameter Interaction via the Configuration File
postgresql.conf, Parameter Interaction via the Configuration File
postgres_fdw, postgres_fdw
postmaster, postmaster
post_auth_delay configuration parameter, Developer Options
power, Mathematical Functions and Operators
PQbackendPID, Connection Status Functions
PQbinaryTuples, Retrieving Query Result Information
with COPY, Functions Associated with the COPY Command
PQcancel, Canceling Queries in Progress
PQclear, Main Functions
PQclientEncoding, Control Functions
PQcmdStatus, Retrieving Other Result Information
PQcmdTuples, Retrieving Other Result Information
PQconndefaults, Database Connection Control Functions
PQconnectdb, Database Connection Control Functions
PQconnectdbParams, Database Connection Control Functions
PQconnectionNeedsPassword, Connection Status Functions
PQconnectionUsedPassword, Connection Status Functions
PQconnectPoll, Database Connection Control Functions
PQconnectStart, Database Connection Control Functions
PQconnectStartParams, Database Connection Control Functions
PQconninfo, Database Connection Control Functions
PQconninfoFree, Miscellaneous Functions
PQconninfoParse, Database Connection Control Functions
PQconsumeInput, Asynchronous Command Processing
PQcopyResult, Miscellaneous Functions
PQdb, Connection Status Functions
PQdescribePortal, Main Functions
PQdescribePrepared, Main Functions
PQencryptPassword, Miscellaneous Functions
PQencryptPasswordConn, Miscellaneous Functions
PQendcopy, Obsolete Functions for COPY
PQerrorMessage, Connection Status Functions
PQescapeBytea, Escaping Strings for Inclusion in SQL Commands
PQescapeByteaConn, Escaping Strings for Inclusion in SQL Commands
PQescapeIdentifier, Escaping Strings for Inclusion in SQL Commands
PQescapeLiteral, Escaping Strings for Inclusion in SQL Commands
PQescapeString, Escaping Strings for Inclusion in SQL Commands
PQescapeStringConn, Escaping Strings for Inclusion in SQL Commands
PQexec, Main Functions
PQexecParams, Main Functions
PQexecPrepared, Main Functions
PQfformat, Retrieving Query Result Information
with COPY, Functions Associated with the COPY Command
PQfinish, Database Connection Control Functions
PQfireResultCreateEvents, Miscellaneous Functions
PQflush, Asynchronous Command Processing
PQfmod, Retrieving Query Result Information
PQfn, The Fast-Path Interface
PQfname, Retrieving Query Result Information
PQfnumber, Retrieving Query Result Information
PQfreeCancel, Canceling Queries in Progress
PQfreemem, Miscellaneous Functions
PQfsize, Retrieving Query Result Information
PQftable, Retrieving Query Result Information
PQftablecol, Retrieving Query Result Information
PQftype, Retrieving Query Result Information
PQgetCancel, Canceling Queries in Progress
PQgetCopyData, Functions for Receiving COPY Data
PQgetisnull, Retrieving Query Result Information
PQgetlength, Retrieving Query Result Information
PQgetline, Obsolete Functions for COPY
PQgetlineAsync, Obsolete Functions for COPY
PQgetResult, Asynchronous Command Processing
PQgetssl, Connection Status Functions
PQgetvalue, Retrieving Query Result Information
PQhost, Connection Status Functions
PQinitOpenSSL, SSL Library Initialization
PQinitSSL, SSL Library Initialization
PQinstanceData, Event Support Functions
PQisBusy, Asynchronous Command Processing
PQisnonblocking, Asynchronous Command Processing
PQisthreadsafe, Behavior in Threaded Programs
PQlibVersion, Miscellaneous Functions
(see also PQserverVersion)
PQmakeEmptyPGresult, Miscellaneous Functions
PQnfields, Retrieving Query Result Information
with COPY, Functions Associated with the COPY Command
PQnotifies, Asynchronous Notification
PQnparams, Retrieving Query Result Information
PQntuples, Retrieving Query Result Information
PQoidStatus, Retrieving Other Result Information
PQoidValue, Retrieving Other Result Information
PQoptions, Connection Status Functions
PQparameterStatus, Connection Status Functions
PQparamtype, Retrieving Query Result Information
PQpass, Connection Status Functions
PQping, Database Connection Control Functions
PQpingParams, Database Connection Control Functions
PQport, Connection Status Functions
PQprepare, Main Functions
PQprint, Retrieving Query Result Information
PQprotocolVersion, Connection Status Functions
PQputCopyData, Functions for Sending COPY Data
PQputCopyEnd, Functions for Sending COPY Data
PQputline, Obsolete Functions for COPY
PQputnbytes, Obsolete Functions for COPY
PQregisterEventProc, Event Support Functions
PQrequestCancel, Canceling Queries in Progress
PQreset, Database Connection Control Functions
PQresetPoll, Database Connection Control Functions
PQresetStart, Database Connection Control Functions
PQresStatus, Main Functions
PQresultAlloc, Miscellaneous Functions
PQresultErrorField, Main Functions
PQresultErrorMessage, Main Functions
PQresultInstanceData, Event Support Functions
PQresultSetInstanceData, Event Support Functions
PQresultStatus, Main Functions
PQresultVerboseErrorMessage, Main Functions
PQsendDescribePortal, Asynchronous Command Processing
PQsendDescribePrepared, Asynchronous Command Processing
PQsendPrepare, Asynchronous Command Processing
PQsendQuery, Asynchronous Command Processing
PQsendQueryParams, Asynchronous Command Processing
PQsendQueryPrepared, Asynchronous Command Processing
PQserverVersion, Connection Status Functions
PQsetClientEncoding, Control Functions
PQsetdb, Database Connection Control Functions
PQsetdbLogin, Database Connection Control Functions
PQsetErrorContextVisibility, Control Functions
PQsetErrorVerbosity, Control Functions
PQsetInstanceData, Event Support Functions
PQsetnonblocking, Asynchronous Command Processing
PQsetNoticeProcessor, Notice Processing
PQsetNoticeReceiver, Notice Processing
PQsetResultAttrs, Miscellaneous Functions
PQsetSingleRowMode, Retrieving Query Results Row-By-Row
PQsetvalue, Miscellaneous Functions
PQsocket, Connection Status Functions
PQsslAttribute, Connection Status Functions
PQsslAttributeNames, Connection Status Functions
PQsslInUse, Connection Status Functions
PQsslStruct, Connection Status Functions
PQstatus, Connection Status Functions
PQtrace, Control Functions
PQtransactionStatus, Connection Status Functions
PQtty, Connection Status Functions
PQunescapeBytea, Escaping Strings for Inclusion in SQL Commands
PQuntrace, Control Functions
PQuser, Connection Status Functions
predicate locking, Serializable Isolation Level
PREPARE, PREPARE
PREPARE TRANSACTION, PREPARE TRANSACTION
prepared statements, DEALLOCATE, EXECUTE, EXPLAIN, PREPARE
creating, PREPARE
executing, EXECUTE
removing, DEALLOCATE
showing the query plan, EXPLAIN
preparing a query
in PL/pgSQL, Plan Caching
in PL/Python, Database Access Functions
in PL/Tcl, Database Access from PL/Tcl
pre_auth_delay configuration parameter, Developer Options
primary key, Primary Keys
primary_conninfo recovery parameter, Standby Server Settings
primary_slot_name recovery parameter, Standby Server Settings
privilege, Privileges, Schemas and Privileges, Rules and Privileges, Rules and Privileges
querying, System Information Functions
with rules, Rules and Privileges
for schemas, Schemas and Privileges
with views, Rules and Privileges
procedural language, Procedural Languages, Writing A Procedural Language Handler
externally maintained, Procedural Languages
handler for, Writing A Procedural Language Handler
protocol, Frontend/Backend Protocol
frontend-backend, Frontend/Backend Protocol
ps, Standard Unix Tools
to monitor activity, Standard Unix Tools
psql, Accessing a Database, psql
Python, PL/Python - Python Procedural Language

R

radians, Mathematical Functions and Operators
radius, Geometric Functions and Operators
RADIUS, RADIUS Authentication
RAISE
in PL/pgSQL, Reporting Errors and Messages
random, Mathematical Functions and Operators
random_page_cost configuration parameter, Planner Cost Constants
range table, The Query Tree
range type, Range Types
exclude, Constraints on Ranges
indexes on, Indexing
rank, Window Functions
hypothetical, Aggregate Functions
read committed, Read Committed Isolation Level
read-only transaction
setting, SET TRANSACTION
setting default, Statement Behavior
readline, Requirements
real, Floating-Point Types
REASSIGN OWNED, REASSIGN OWNED
record, Pseudo-Types
recovery.conf, Recovery Configuration
recovery_end_command recovery parameter, Archive Recovery Settings
recovery_min_apply_delay recovery parameter, Standby Server Settings
recovery_target recovery parameter, Recovery Target Settings
recovery_target_action recovery parameter, Recovery Target Settings
recovery_target_inclusive recovery parameter, Recovery Target Settings
recovery_target_lsn recovery parameter, Recovery Target Settings
recovery_target_name recovery parameter, Recovery Target Settings
recovery_target_time recovery parameter, Recovery Target Settings
recovery_target_timeline recovery parameter, Recovery Target Settings
recovery_target_xid recovery parameter, Recovery Target Settings
rectangle, Boxes
referential integrity, Foreign Keys, Foreign Keys
REFRESH MATERIALIZED VIEW, REFRESH MATERIALIZED VIEW
regclass, Object Identifier Types
regconfig, Object Identifier Types
regdictionary, Object Identifier Types
regexp_match, String Functions and Operators, POSIX Regular Expressions
regexp_matches, String Functions and Operators, POSIX Regular Expressions
regexp_replace, String Functions and Operators, POSIX Regular Expressions
regexp_split_to_array, String Functions and Operators, POSIX Regular Expressions
regexp_split_to_table, String Functions and Operators, POSIX Regular Expressions
regoper, Object Identifier Types
regoperator, Object Identifier Types
regproc, Object Identifier Types
regprocedure, Object Identifier Types
regression intercept, Aggregate Functions
regression slope, Aggregate Functions
regression test, Installation Procedure
regression tests, Regression Tests
regr_avgx, Aggregate Functions
regr_avgy, Aggregate Functions
regr_count, Aggregate Functions
regr_intercept, Aggregate Functions
regr_r2, Aggregate Functions
regr_slope, Aggregate Functions
regr_sxx, Aggregate Functions
regr_sxy, Aggregate Functions
regr_syy, Aggregate Functions
regtype, Object Identifier Types
regular expression, SIMILAR TO Regular Expressions, POSIX Regular Expressions
(see also pattern matching)
regular expressions
and locales, Behavior
reindex, Routine Reindexing
REINDEX, REINDEX
reindexdb, reindexdb
relation, Concepts
relational database, Concepts
RELEASE SAVEPOINT, RELEASE SAVEPOINT
repeat, String Functions and Operators
repeatable read, Repeatable Read Isolation Level
replace, String Functions and Operators
replacement_sort_tuples configuration parameter, Memory
replication, High Availability, Load Balancing, and Replication
Replication Origins, Replication Progress Tracking
Replication Progress Tracking, Replication Progress Tracking
replication slot
logical replication, Replication Slots
streaming replication, Replication Slots
reporting errors
in PL/pgSQL, Reporting Errors and Messages
RESET, RESET
restartpoint, WAL Configuration
restart_after_crash configuration parameter, Error Handling
restore_command recovery parameter, Archive Recovery Settings
RESTRICT, Dependency Tracking
with DROP, Dependency Tracking
foreign key action, Foreign Keys
RETURN NEXT
in PL/pgSQL, RETURN NEXT and RETURN QUERY
RETURN QUERY
in PL/pgSQL, RETURN NEXT and RETURN QUERY
RETURNING, Returning Data From Modified Rows
RETURNING INTO, Executing a Query with a Single-row Result
in PL/pgSQL, Executing a Query with a Single-row Result
reverse, String Functions and Operators
REVOKE, Privileges, REVOKE
right, String Functions and Operators
right join, Joined Tables
role, Database Roles, Role Membership, Default Roles
applicable, applicable_roles
enabled, enabled_roles
membership in, Role Membership
privilege to create, Role Attributes
privilege to initiate replication, Role Attributes
ROLLBACK, ROLLBACK
rollback
psql, Variables
ROLLBACK PREPARED, ROLLBACK PREPARED
ROLLBACK TO SAVEPOINT, ROLLBACK TO SAVEPOINT
ROLLUP, GROUPING SETS, CUBE, and ROLLUP
round, Mathematical Functions and Operators
routine maintenance, Routine Database Maintenance Tasks
row, Concepts, Table Basics
ROW, Row Constructors
row estimation, Row Estimation Examples
multivariate, Multivariate Statistics Examples
planner, Row Estimation Examples
row type, Composite Types
constructor, Row Constructors
row-level security, Row Security Policies
row-wise comparison, Row and Array Comparisons
row_number, Window Functions
row_security configuration parameter, Statement Behavior
row_security_active, System Information Functions
row_to_json, JSON Functions and Operators
rpad, String Functions and Operators
rtrim, String Functions and Operators
rule, The Rule System, Views and the Rule System, How SELECT Rules Work, Materialized Views, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules on INSERT, UPDATE, and DELETE, Rules Versus Triggers
and materialized views, Materialized Views
and views, Views and the Rule System
for DELETE, Rules on INSERT, UPDATE, and DELETE
for INSERT, Rules on INSERT, UPDATE, and DELETE
for SELECT, How SELECT Rules Work
compared with triggers, Rules Versus Triggers
for UPDATE, Rules on INSERT, UPDATE, and DELETE

S

SAVEPOINT, SAVEPOINT
savepoints, RELEASE SAVEPOINT, ROLLBACK TO SAVEPOINT, SAVEPOINT
defining, SAVEPOINT
releasing, RELEASE SAVEPOINT
rolling back, ROLLBACK TO SAVEPOINT
scalar (see expression)
scale, Mathematical Functions and Operators
schema, Schemas, Creating a Schema, The Public Schema, Overview
creating, Creating a Schema
current, The Schema Search Path, System Information Functions
public, The Public Schema
removing, Creating a Schema
SCRAM, Password Authentication
search path, The Schema Search Path
current, System Information Functions
object visibility, System Information Functions
search_path configuration parameter, The Schema Search Path, Statement Behavior
use in securing functions, Writing SECURITY DEFINER Functions Safely
SECURITY LABEL, SECURITY LABEL
sec_to_gc, Cube-based Earth Distances
seg, seg
segment_size configuration parameter, Preset Options
SELECT, Querying a Table, Queries, SELECT Output Columns, SELECT
determination of result type, SELECT Output Columns
select list, Select Lists
SELECT INTO, Executing a Query with a Single-row Result, SELECT INTO
in PL/pgSQL, Executing a Query with a Single-row Result
semaphores, Shared Memory and Semaphores
sepgsql, sepgsql
sepgsql.debug_audit configuration parameter, GUC Parameters
sepgsql.permissive configuration parameter, GUC Parameters
sequence, Sequence Manipulation Functions
and serial type, Serial Types
sequential scan, Planner Method Configuration
seq_page_cost configuration parameter, Planner Cost Constants
serial, Serial Types
serial2, Serial Types
serial4, Serial Types
serial8, Serial Types
serializable, Serializable Isolation Level
Serializable Snapshot Isolation, Introduction
serialization anomaly, Transaction Isolation, Serializable Isolation Level
server log, Error Reporting and Logging, Log File Maintenance
log file maintenance, Log File Maintenance
server spoofing, Preventing Server Spoofing
server_encoding configuration parameter, Preset Options
server_version configuration parameter, Preset Options
server_version_num configuration parameter, Preset Options
session_preload_libraries configuration parameter, Shared Library Preloading
session_replication_role configuration parameter, Statement Behavior
session_user, System Information Functions
SET, Configuration Settings Functions, SET
SET CONSTRAINTS, SET CONSTRAINTS
set difference, Combining Queries
set intersection, Combining Queries
set operation, Combining Queries
set returning functions, Set Returning Functions
functions, Set Returning Functions
SET ROLE, SET ROLE
SET SESSION AUTHORIZATION, SET SESSION AUTHORIZATION
SET TRANSACTION, SET TRANSACTION
set union, Combining Queries
SET XML OPTION, Statement Behavior
setseed, Mathematical Functions and Operators
setval, Sequence Manipulation Functions
setweight, Text Search Functions and Operators, Manipulating Documents
setweight for specific lexeme(s), Text Search Functions and Operators
set_bit, Binary String Functions and Operators
set_byte, Binary String Functions and Operators
set_config, Configuration Settings Functions
set_limit, Functions and Operators
set_masklen, Network Address Functions and Operators
shared library, Shared Libraries, Compiling and Linking Dynamically-loaded Functions
shared memory, Shared Memory and Semaphores
shared_buffers configuration parameter, Memory
shared_preload_libraries, Shared Memory and LWLocks
shared_preload_libraries configuration parameter, Shared Library Preloading
shobj_description, System Information Functions
SHOW, Configuration Settings Functions, SHOW, Streaming Replication Protocol
show_limit, Functions and Operators
show_trgm, Functions and Operators
shutdown, Shutting Down the Server
SIGHUP, Parameter Interaction via the Configuration File, The pg_hba.conf File, User Name Maps
SIGINT, Shutting Down the Server
sign, Mathematical Functions and Operators
signal
backend processes, Server Signaling Functions
significant digits, Locale and Formatting
SIGQUIT, Shutting Down the Server
SIGTERM, Shutting Down the Server
SIMILAR TO, SIMILAR TO Regular Expressions
similarity, Functions and Operators
sin, Mathematical Functions and Operators
sind, Mathematical Functions and Operators
single-user mode, Options for Single-User Mode
skeys, hstore Operators and Functions
sleep, Delaying Execution
slice, hstore Operators and Functions
sliced bread (see TOAST)
smallint, Integer Types
smallserial, Serial Types
Solaris, Solaris
installation on, Solaris
IPC configuration, Shared Memory and Semaphores
shared library, Compiling and Linking Dynamically-loaded Functions
start script, Starting the Database Server
SOME, Aggregate Functions, Subquery Expressions, Row and Array Comparisons
sort, intarray Functions and Operators
sorting, Sorting Rows
sort_asc, intarray Functions and Operators
sort_desc, intarray Functions and Operators
soundex, Soundex
SP-GiST (see index)
SPI, Server Programming Interface, spi
examples, spi
SPI_connect, SPI_connect
SPI_copytuple, SPI_copytuple
spi_cursor_close
in PL/Perl, Database Access from PL/Perl
SPI_cursor_close, SPI_cursor_close
SPI_cursor_fetch, SPI_cursor_fetch
SPI_cursor_find, SPI_cursor_find
SPI_cursor_move, SPI_cursor_move
SPI_cursor_open, SPI_cursor_open
SPI_cursor_open_with_args, SPI_cursor_open_with_args
SPI_cursor_open_with_paramlist, SPI_cursor_open_with_paramlist
SPI_exec, SPI_exec
SPI_execp, SPI_execp
SPI_execute, SPI_execute
SPI_execute_plan, SPI_execute_plan
SPI_execute_plan_with_paramlist, SPI_execute_plan_with_paramlist
SPI_execute_with_args, SPI_execute_with_args
spi_exec_prepared
in PL/Perl, Database Access from PL/Perl
spi_exec_query
in PL/Perl, Database Access from PL/Perl
spi_fetchrow
in PL/Perl, Database Access from PL/Perl
SPI_finish, SPI_finish
SPI_fname, SPI_fname
SPI_fnumber, SPI_fnumber
spi_freeplan
in PL/Perl, Database Access from PL/Perl
SPI_freeplan, SPI_freeplan
SPI_freetuple, SPI_freetuple
SPI_freetuptable, SPI_freetuptable
SPI_getargcount, SPI_getargcount
SPI_getargtypeid, SPI_getargtypeid
SPI_getbinval, SPI_getbinval
SPI_getnspname, SPI_getnspname
SPI_getrelname, SPI_getrelname
SPI_gettype, SPI_gettype
SPI_gettypeid, SPI_gettypeid
SPI_getvalue, SPI_getvalue
SPI_is_cursor_plan, SPI_is_cursor_plan
SPI_keepplan, SPI_keepplan
spi_lastoid
in PL/Tcl, Database Access from PL/Tcl
SPI_modifytuple, SPI_modifytuple
SPI_palloc, SPI_palloc
SPI_pfree, SPI_pfree
spi_prepare
in PL/Perl, Database Access from PL/Perl
SPI_prepare, SPI_prepare
SPI_prepare_cursor, SPI_prepare_cursor
SPI_prepare_params, SPI_prepare_params
spi_query
in PL/Perl, Database Access from PL/Perl
spi_query_prepared
in PL/Perl, Database Access from PL/Perl
SPI_register_relation, SPI_register_relation
SPI_register_trigger_data, SPI_register_trigger_data
SPI_repalloc, SPI_repalloc
SPI_returntuple, SPI_returntuple
SPI_saveplan, SPI_saveplan
SPI_scroll_cursor_fetch, SPI_scroll_cursor_fetch
SPI_scroll_cursor_move, SPI_scroll_cursor_move
SPI_unregister_relation, SPI_unregister_relation
split_part, String Functions and Operators
SQL/CLI, SQL Conformance
SQL/Foundation, SQL Conformance
SQL/Framework, SQL Conformance
SQL/JRT, SQL Conformance
SQL/MED, SQL Conformance
SQL/OLB, SQL Conformance
SQL/PSM, SQL Conformance
SQL/Schemata, SQL Conformance
SQL/XML, SQL Conformance
limits and conformance, XML Limits and Conformance to SQL/XML
sqrt, Mathematical Functions and Operators
ssh, Secure TCP/IP Connections with SSH Tunnels
SSI, Introduction
SSL, Secure TCP/IP Connections with SSL, SSL Support
in libpq, Connection Status Functions
with libpq, Parameter Key Words
ssl configuration parameter, Security and Authentication
sslinfo, sslinfo
ssl_ca_file configuration parameter, Security and Authentication
ssl_cert_file configuration parameter, Security and Authentication
ssl_cipher, Functions Provided
ssl_ciphers configuration parameter, Security and Authentication
ssl_client_cert_present, Functions Provided
ssl_client_dn, Functions Provided
ssl_client_dn_field, Functions Provided
ssl_client_serial, Functions Provided
ssl_crl_file configuration parameter, Security and Authentication
ssl_dh_params_file configuration parameter, Security and Authentication
ssl_ecdh_curve configuration parameter, Security and Authentication
ssl_extension_info, Functions Provided
ssl_issuer_dn, Functions Provided
ssl_issuer_field, Functions Provided
ssl_is_used, Functions Provided
ssl_key_file configuration parameter, Security and Authentication
ssl_prefer_server_ciphers configuration parameter, Security and Authentication
ssl_version, Functions Provided
SSPI, SSPI Authentication
STABLE, Function Volatility Categories
standard deviation, Aggregate Functions
population, Aggregate Functions
sample, Aggregate Functions
standard_conforming_strings configuration parameter, Previous PostgreSQL Versions
standby server, High Availability, Load Balancing, and Replication
standby_mode recovery parameter, Standby Server Settings
START TRANSACTION, START TRANSACTION
START_REPLICATION, Streaming Replication Protocol
statement_timeout configuration parameter, Statement Behavior
statement_timestamp, Date/Time Functions and Operators
statistics, Aggregate Functions, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics, The Statistics Collector
of the planner, Statistics Used by the Planner, Extended Statistics, Updating Planner Statistics
stats_temp_directory configuration parameter, Query and Index Statistics Collector
stddev, Aggregate Functions
stddev_pop, Aggregate Functions
stddev_samp, Aggregate Functions
STONITH, High Availability, Load Balancing, and Replication
storage parameters, Storage Parameters
Streaming Replication, High Availability, Load Balancing, and Replication
string (see character string)
strings
backslash quotes, Previous PostgreSQL Versions
escape warning, Previous PostgreSQL Versions
standard conforming, Previous PostgreSQL Versions
string_agg, Aggregate Functions
string_to_array, Array Functions and Operators
strip, Text Search Functions and Operators, Manipulating Documents
strpos, String Functions and Operators
subarray, intarray Functions and Operators
subltree, Operators and Functions
subpath, Operators and Functions
subquery, Aggregate Functions, Scalar Subqueries, Subqueries, Subquery Expressions
subscript, Subscripts
substr, String Functions and Operators
substring, String Functions and Operators, Binary String Functions and Operators, SIMILAR TO Regular Expressions, POSIX Regular Expressions
subtransactions
in PL/Tcl, Explicit Subtransactions in PL/Tcl
sum, Aggregate Functions
superuser, Accessing a Database, Role Attributes
superuser_reserved_connections configuration parameter, Connection Settings
suppress_redundant_updates_trigger, Trigger Functions
svals, hstore Operators and Functions
synchronize_seqscans configuration parameter, Previous PostgreSQL Versions
synchronous commit, Asynchronous Commit
Synchronous Replication, High Availability, Load Balancing, and Replication
synchronous_commit configuration parameter, Settings
synchronous_standby_names configuration parameter, Master Server
syntax, SQL Syntax
SQL, SQL Syntax
syslog_facility configuration parameter, Where To Log
syslog_ident configuration parameter, Where To Log
syslog_sequence_numbers configuration parameter, Where To Log
syslog_split_messages configuration parameter, Where To Log
system catalog, The System Catalog Schema
schema, The System Catalog Schema
systemd, Installation Procedure, Starting the Database Server
RemoveIPC, systemd RemoveIPC

T

table, Concepts, Table Basics, Modifying Tables
creating, Table Basics
inheritance, Inheritance
modifying, Modifying Tables
partitioning, Table Partitioning
removing, Table Basics
renaming, Renaming a Table
TABLE command, SELECT
table expression, Table Expressions
table function, Table Functions, xmltable
XMLTABLE, xmltable
table sampling method, Writing A Table Sampling Method
tablefunc, tablefunc
tableoid, System Columns
TABLESAMPLE method, Writing A Table Sampling Method
tablespace, Tablespaces
default, Statement Behavior
temporary, Statement Behavior
tan, Mathematical Functions and Operators
tand, Mathematical Functions and Operators
target list, The Query Tree
Tcl, PL/Tcl - Tcl Procedural Language
tcn, tcn
tcp_keepalives_count configuration parameter, Connection Settings
tcp_keepalives_idle configuration parameter, Connection Settings
tcp_keepalives_interval configuration parameter, Connection Settings
template0, Template Databases
template1, Creating a Database, Template Databases
temp_buffers configuration parameter, Memory
temp_file_limit configuration parameter, Disk
temp_tablespaces configuration parameter, Statement Behavior
test, Regression Tests
test_decoding, test_decoding
text, Character Types, Network Address Functions and Operators
text search, Text Search Types, Text Search Types, Full Text Search, GIN and GiST Index Types
data types, Text Search Types
functions and operators, Text Search Types
indexes, GIN and GiST Index Types
text2ltree, Operators and Functions
threads, Behavior in Threaded Programs
with libpq, Behavior in Threaded Programs
tid, Object Identifier Types
time, Date/Time Types, Times
constants, Special Values
current, Current Date/Time
output format, Date/Time Output
(see also formatting)
time span, Date/Time Types
time with time zone, Date/Time Types, Times
time without time zone, Date/Time Types, Times
time zone, Time Zones, Locale and Formatting
conversion, AT TIME ZONE
input abbreviations, Date/Time Configuration Files
time zone data, Installation Procedure
time zone names, Locale and Formatting
timelines, Backup and Restore
TIMELINE_HISTORY, Streaming Replication Protocol
timeofday, Date/Time Functions and Operators
timeout
client authentication, Security and Authentication
deadlock, Lock Management
timestamp, Date/Time Types, Time Stamps
timestamp with time zone, Date/Time Types, Time Stamps
timestamp without time zone, Date/Time Types, Time Stamps
timestamptz, Date/Time Types
TimeZone configuration parameter, Locale and Formatting
timezone_abbreviations configuration parameter, Locale and Formatting
TOAST, TOAST
and user-defined types, TOAST Considerations
per-column storage settings, Description
versus large objects, Introduction
token, Lexical Structure
to_ascii, String Functions and Operators
to_char, Data Type Formatting Functions
and locales, Behavior
to_date, Data Type Formatting Functions
to_hex, String Functions and Operators
to_json, JSON Functions and Operators
to_jsonb, JSON Functions and Operators
to_number, Data Type Formatting Functions
to_regclass, System Information Functions
to_regnamespace, System Information Functions
to_regoper, System Information Functions
to_regoperator, System Information Functions
to_regproc, System Information Functions
to_regprocedure, System Information Functions
to_regrole, System Information Functions
to_regtype, System Information Functions
to_timestamp, Data Type Formatting Functions, Date/Time Functions and Operators
to_tsquery, Text Search Functions and Operators, Parsing Queries
to_tsvector, Text Search Functions and Operators, Parsing Documents
trace_locks configuration parameter, Developer Options
trace_lock_oidmin configuration parameter, Developer Options
trace_lock_table configuration parameter, Developer Options
trace_lwlocks configuration parameter, Developer Options
trace_notify configuration parameter, Developer Options
trace_recovery_messages configuration parameter, Developer Options
trace_sort configuration parameter, Developer Options
trace_userlocks configuration parameter, Developer Options
track_activities configuration parameter, Query and Index Statistics Collector
track_activity_query_size configuration parameter, Query and Index Statistics Collector
track_commit_timestamp configuration parameter, Sending Server(s)
track_counts configuration parameter, Query and Index Statistics Collector
track_functions configuration parameter, Query and Index Statistics Collector
track_io_timing configuration parameter, Query and Index Statistics Collector
transaction, Transactions
transaction ID, Preventing Transaction ID Wraparound Failures
wraparound, Preventing Transaction ID Wraparound Failures
transaction isolation, Transaction Isolation
transaction isolation level, Transaction Isolation
read committed, Read Committed Isolation Level
repeatable read, Repeatable Read Isolation Level
serializable, Serializable Isolation Level
setting, SET TRANSACTION
setting default, Statement Behavior
transaction log (see WAL)
transaction_timestamp, Date/Time Functions and Operators
transform_null_equals configuration parameter, Platform and Client Compatibility
transition tables, CREATE TRIGGER
(see also ephemeral named relation)
implementation in PLs, SPI_register_trigger_data
referencing from C trigger, Writing Trigger Functions in C
translate, String Functions and Operators
trigger, Pseudo-Types, Triggers, Writing Trigger Functions in C, Rules Versus Triggers, Trigger Procedures, Trigger Functions
arguments for trigger functions, Overview of Trigger Behavior
for updating a derived tsvector column, Triggers for Automatic Updates
in C, Writing Trigger Functions in C
in PL/pgSQL, Trigger Procedures
in PL/Python, Trigger Functions
in PL/Tcl, Trigger Procedures in PL/Tcl
compared with rules, Rules Versus Triggers
triggered_change_notification, tcn
trigger_file recovery parameter, Standby Server Settings
trim, String Functions and Operators, Binary String Functions and Operators
true, Boolean Type
trunc, Mathematical Functions and Operators, Network Address Functions and Operators
TRUNCATE, TRUNCATE
trusted, Trusted and Untrusted PL/Perl
PL/Perl, Trusted and Untrusted PL/Perl
tsm_handler, Pseudo-Types
tsm_system_rows, tsm_system_rows
tsm_system_time, tsm_system_time
tsquery (data type), tsquery
tsquery_phrase, Text Search Functions and Operators, Manipulating Queries
tsvector (data type), tsvector
tsvector concatenation, Manipulating Documents
tsvector_to_array, Text Search Functions and Operators
tsvector_update_trigger, Text Search Functions and Operators
tsvector_update_trigger_column, Text Search Functions and Operators
ts_debug, Text Search Functions and Operators, Configuration Testing
ts_delete, Text Search Functions and Operators
ts_filter, Text Search Functions and Operators
ts_headline, Text Search Functions and Operators, Highlighting Results
ts_lexize, Text Search Functions and Operators, Dictionary Testing
ts_parse, Text Search Functions and Operators, Parser Testing
ts_rank, Text Search Functions and Operators, Ranking Search Results
ts_rank_cd, Text Search Functions and Operators, Ranking Search Results
ts_rewrite, Text Search Functions and Operators, Query Rewriting
ts_stat, Text Search Functions and Operators, Gathering Document Statistics
ts_token_type, Text Search Functions and Operators, Parser Testing
tuple_data_split, Heap Functions
txid_current, System Information Functions
txid_current_if_assigned, System Information Functions
txid_current_snapshot, System Information Functions
txid_snapshot_xip, System Information Functions
txid_snapshot_xmax, System Information Functions
txid_snapshot_xmin, System Information Functions
txid_status, System Information Functions
txid_visible_in_snapshot, System Information Functions
type, Polymorphic Types (see data type)
polymorphic, Polymorphic Types
type cast, Numeric Constants, Type Casts

U

UESCAPE, Identifiers and Key Words, String Constants with Unicode Escapes
unaccent, unaccent, Functions
Unicode escape, String Constants with Unicode Escapes
in identifiers, Identifiers and Key Words
in string constants, String Constants with Unicode Escapes
UNION, Combining Queries, UNION, CASE, and Related Constructs
determination of result type, UNION, CASE, and Related Constructs
uniq, intarray Functions and Operators
unique constraint, Unique Constraints
Unix domain socket, Parameter Key Words
unix_socket_directories configuration parameter, Connection Settings
unix_socket_group configuration parameter, Connection Settings
unix_socket_permissions configuration parameter, Connection Settings
unknown, Pseudo-Types
UNLISTEN, UNLISTEN
unnest, Array Functions and Operators
for tsvector, Text Search Functions and Operators
unqualified name, The Schema Search Path
updatable views, Updatable Views
UPDATE, Updates, Updating Data, Returning Data From Modified Rows, UPDATE
RETURNING, Returning Data From Modified Rows
update_process_title configuration parameter, Process Title
updating, Updating Data
upgrading, Upgrading a PostgreSQL Cluster
upper, String Functions and Operators, Range Functions and Operators
and locales, Behavior
upper_inc, Range Functions and Operators
upper_inf, Range Functions and Operators
UPSERT, INSERT
URI, Connection Strings
user, System Information Functions, Database Roles
current, System Information Functions
user mapping, Foreign Data
User name maps, User Name Maps
UUID, UUID Type, Installation Procedure
uuid-ossp, uuid-ossp
uuid_generate_v1, uuid-ossp Functions
uuid_generate_v1mc, uuid-ossp Functions
uuid_generate_v3, uuid-ossp Functions

V

vacuum, Routine Vacuuming
VACUUM, VACUUM
vacuumdb, vacuumdb
vacuumlo, vacuumlo
vacuum_cost_delay configuration parameter, Cost-based Vacuum Delay
vacuum_cost_limit configuration parameter, Cost-based Vacuum Delay
vacuum_cost_page_dirty configuration parameter, Cost-based Vacuum Delay
vacuum_cost_page_hit configuration parameter, Cost-based Vacuum Delay
vacuum_cost_page_miss configuration parameter, Cost-based Vacuum Delay
vacuum_defer_cleanup_age configuration parameter, Master Server
vacuum_freeze_min_age configuration parameter, Statement Behavior
vacuum_freeze_table_age configuration parameter, Statement Behavior
vacuum_multixact_freeze_min_age configuration parameter, Statement Behavior
vacuum_multixact_freeze_table_age configuration parameter, Statement Behavior
value expression, Value Expressions
VALUES, VALUES Lists, UNION, CASE, and Related Constructs, VALUES
determination of result type, UNION, CASE, and Related Constructs
varchar, Character Types
variadic function, SQL Functions with Variable Numbers of Arguments
variance, Aggregate Functions
population, Aggregate Functions
sample, Aggregate Functions
var_pop, Aggregate Functions
var_samp, Aggregate Functions
version, Accessing a Database, System Information Functions, Upgrading a PostgreSQL Cluster
compatibility, Upgrading a PostgreSQL Cluster
view, Views, Views and the Rule System, Materialized Views, Cooperation with Views
implementation through rules, Views and the Rule System
materialized, Materialized Views
updating, Cooperation with Views
Visibility Map, Visibility Map
VM (see Visibility Map)
void, Pseudo-Types
VOLATILE, Function Volatility Categories
volatility, Function Volatility Categories
functions, Function Volatility Categories
VPATH, Installation Procedure, Extension Building Infrastructure

W

WAL, Reliability and the Write-Ahead Log
wal_block_size configuration parameter, Preset Options
wal_buffers configuration parameter, Settings
wal_compression configuration parameter, Settings
wal_consistency_checking configuration parameter, Developer Options
wal_debug configuration parameter, Developer Options
wal_keep_segments configuration parameter, Sending Server(s)
wal_level configuration parameter, Settings
wal_log_hints configuration parameter, Settings
wal_receiver_status_interval configuration parameter, Standby Servers
wal_receiver_timeout configuration parameter, Standby Servers
wal_retrieve_retry_interval configuration parameter, Standby Servers
wal_segment_size configuration parameter, Preset Options
wal_sender_timeout configuration parameter, Sending Server(s)
wal_sync_method configuration parameter, Settings
wal_writer_delay configuration parameter, Settings
wal_writer_flush_after configuration parameter, Settings
warm standby, High Availability, Load Balancing, and Replication
WHERE, The WHERE Clause
where to log, Where To Log
WHILE
in PL/pgSQL, WHILE
width, Geometric Functions and Operators
width_bucket, Mathematical Functions and Operators
window function, Window Functions, Window Function Calls, Window Function Processing, Window Functions
built-in, Window Functions
invocation, Window Function Calls
order of execution, Window Function Processing
WITH, WITH Queries (Common Table Expressions), SELECT
in SELECT, WITH Queries (Common Table Expressions), SELECT
WITH CHECK OPTION, CREATE VIEW
WITHIN GROUP, Aggregate Expressions
witness server, High Availability, Load Balancing, and Replication
word_similarity, Functions and Operators
work_mem configuration parameter, Memory
wraparound
of multixact IDs, Multixacts and Wraparound
of transaction IDs, Preventing Transaction ID Wraparound Failures

X

xid, Object Identifier Types
xmax, System Columns
xmin, System Columns
XML, XML Type
XML export, Mapping Tables to XML
XML Functions, XML Functions
XML option, Creating XML Values, Statement Behavior
xml2, xml2
xmlagg, xmlagg, Aggregate Functions
xmlbinary configuration parameter, Statement Behavior
xmlcomment, xmlcomment
xmlconcat, xmlconcat
xmlelement, xmlelement
XMLEXISTS, XMLEXISTS
xmlforest, xmlforest
xmloption configuration parameter, Statement Behavior
xmlparse, Creating XML Values
xmlpi, xmlpi
xmlroot, xmlroot
xmlserialize, Creating XML Values
xmltable, xmltable
xml_is_well_formed, xml_is_well_formed
xml_is_well_formed_content, xml_is_well_formed
xml_is_well_formed_document, xml_is_well_formed
XPath, xpath
xpath_exists, xpath_exists
xpath_table, xpath_table
xslt_process, xslt_process

Z

zero_damaged_pages configuration parameter, Developer Options
zlib, Requirements, Installation Procedure
\ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/brin-builtin-opclasses.html postgresql-10-10.12/doc/src/sgml/html/brin-builtin-opclasses.html --- postgresql-10-10.10/doc/src/sgml/html/brin-builtin-opclasses.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/brin-builtin-opclasses.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -65.2. Built-in Operator Classes

65.2. Built-in Operator Classes

The core PostgreSQL distribution +65.2. Built-in Operator Classes

65.2. Built-in Operator Classes

The core PostgreSQL distribution includes the BRIN operator classes shown in Table 65.1.

The minmax diff -Nru postgresql-10-10.10/doc/src/sgml/html/brin-extensibility.html postgresql-10-10.12/doc/src/sgml/html/brin-extensibility.html --- postgresql-10-10.10/doc/src/sgml/html/brin-extensibility.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/brin-extensibility.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -65.3. Extensibility

65.3. Extensibility

The BRIN interface has a high level of abstraction, +65.3. Extensibility

65.3. Extensibility

The BRIN interface has a high level of abstraction, requiring the access method implementer only to implement the semantics of the data type being accessed. The BRIN layer itself takes care of concurrency, logging and searching the index structure. diff -Nru postgresql-10-10.10/doc/src/sgml/html/brin.html postgresql-10-10.12/doc/src/sgml/html/brin.html --- postgresql-10-10.10/doc/src/sgml/html/brin.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/brin.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 65. BRIN Indexes

\ No newline at end of file +Chapter 65. BRIN Indexes \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/brin-intro.html postgresql-10-10.12/doc/src/sgml/html/brin-intro.html --- postgresql-10-10.10/doc/src/sgml/html/brin-intro.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/brin-intro.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -65.1. Introduction

65.1. Introduction

BRIN stands for Block Range Index. +65.1. Introduction

65.1. Introduction

BRIN stands for Block Range Index. BRIN is designed for handling very large tables in which certain columns have some natural correlation with their physical location within the table. diff -Nru postgresql-10-10.10/doc/src/sgml/html/btree-gin.html postgresql-10-10.12/doc/src/sgml/html/btree-gin.html --- postgresql-10-10.10/doc/src/sgml/html/btree-gin.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/btree-gin.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.6. btree_gin

F.6. btree_gin

btree_gin provides sample GIN operator classes that +F.6. btree_gin

F.6. btree_gin

btree_gin provides sample GIN operator classes that implement B-tree equivalent behavior for the data types int2, int4, int8, float4, float8, timestamp with time zone, diff -Nru postgresql-10-10.10/doc/src/sgml/html/btree-gist.html postgresql-10-10.12/doc/src/sgml/html/btree-gist.html --- postgresql-10-10.10/doc/src/sgml/html/btree-gist.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/btree-gist.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.7. btree_gist

F.7. btree_gist

btree_gist provides GiST index operator classes that +F.7. btree_gist

F.7. btree_gist

btree_gist provides GiST index operator classes that implement B-tree equivalent behavior for the data types int2, int4, int8, float4, float8, numeric, timestamp with time zone, diff -Nru postgresql-10-10.10/doc/src/sgml/html/bug-reporting.html postgresql-10-10.12/doc/src/sgml/html/bug-reporting.html --- postgresql-10-10.10/doc/src/sgml/html/bug-reporting.html 2019-08-05 21:29:55.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/bug-reporting.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -5. Bug Reporting Guidelines

5. Bug Reporting Guidelines

When you find a bug in PostgreSQL we want to +5. Bug Reporting Guidelines

5. Bug Reporting Guidelines

When you find a bug in PostgreSQL we want to hear about it. Your bug reports play an important part in making PostgreSQL more reliable because even the utmost care cannot guarantee that every part of @@ -130,7 +130,7 @@ If you run a prepackaged version, such as RPMs, say so, including any subversion the package might have. If you are talking about a Git snapshot, mention that, including the commit hash. -

If your version is older than 10.10 we will almost certainly +

If your version is older than 10.12 we will almost certainly tell you to upgrade. There are many bug fixes and improvements in each new release, so it is quite possible that a bug you have encountered in an older release of PostgreSQL @@ -142,7 +142,7 @@ C library, processor, memory information, and so on. In most cases it is sufficient to report the vendor and version, but do not assume everyone knows what exactly Debian - contains or that everyone runs on i386s. If you have + contains or that everyone runs on x86_64. If you have installation problems then information about the toolchain on your machine (compiler, make, and so on) is also necessary. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-aggregate.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-aggregate.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-aggregate.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-aggregate.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.2. pg_aggregate

51.2. pg_aggregate

The catalog pg_aggregate stores information about +51.2. pg_aggregate

51.2. pg_aggregate

The catalog pg_aggregate stores information about aggregate functions. An aggregate function is a function that operates on a set of values (typically one column from each row that matches a query condition) and returns a single value computed diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-am.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-am.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-am.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-am.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.3. pg_am

51.3. pg_am

The catalog pg_am stores information about +51.3. pg_am

51.3. pg_am

The catalog pg_am stores information about relation access methods. There is one row for each access method supported by the system. Currently, only indexes have access methods. The requirements for index diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-amop.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-amop.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-amop.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-amop.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.4. pg_amop

51.4. pg_amop

The catalog pg_amop stores information about +51.4. pg_amop

51.4. pg_amop

The catalog pg_amop stores information about operators associated with access method operator families. There is one row for each operator that is a member of an operator family. A family member can be either a search operator or an diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-amproc.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-amproc.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-amproc.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-amproc.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.5. pg_amproc

51.5. pg_amproc

The catalog pg_amproc stores information about +51.5. pg_amproc

51.5. pg_amproc

The catalog pg_amproc stores information about support procedures associated with access method operator families. There is one row for each support procedure belonging to an operator family.

Table 51.5. pg_amproc Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
amprocfamilyoidpg_opfamily.oidThe operator family this entry is for
amproclefttypeoidpg_type.oidLeft-hand input data type of associated operator
amprocrighttypeoidpg_type.oidRight-hand input data type of associated operator
amprocnumint2 Support procedure number
amprocregprocpg_proc.oidOID of the procedure

The usual interpretation of the diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-attrdef.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-attrdef.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-attrdef.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-attrdef.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.6. pg_attrdef

51.6. pg_attrdef

The catalog pg_attrdef stores column default values. The main information +51.6. pg_attrdef

51.6. pg_attrdef

The catalog pg_attrdef stores column default values. The main information about columns is stored in pg_attribute (see below). Only columns that explicitly specify a default value (when the table is created or the column is added) will have an diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-attribute.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-attribute.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-attribute.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-attribute.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.7. pg_attribute

51.7. pg_attribute

The catalog pg_attribute stores information about +51.7. pg_attribute

51.7. pg_attribute

The catalog pg_attribute stores information about table columns. There will be exactly one pg_attribute row for every column in every table in the database. (There will also be attribute entries for diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-authid.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-authid.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-authid.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-authid.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.8. pg_authid

51.8. pg_authid

The catalog pg_authid contains information about +51.8. pg_authid

51.8. pg_authid

The catalog pg_authid contains information about database authorization identifiers (roles). A role subsumes the concepts of users and groups. A user is essentially just a role with the rolcanlogin flag set. Any role (with or diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-auth-members.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-auth-members.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-auth-members.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-auth-members.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.9. pg_auth_members

51.9. pg_auth_members

The catalog pg_auth_members shows the membership +51.9. pg_auth_members

51.9. pg_auth_members

The catalog pg_auth_members shows the membership relations between roles. Any non-circular set of relationships is allowed.

Because user identities are cluster-wide, pg_auth_members diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-cast.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-cast.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-cast.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-cast.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.10. pg_cast

51.10. pg_cast

The catalog pg_cast stores data type conversion +51.10. pg_cast

51.10. pg_cast

The catalog pg_cast stores data type conversion paths, both built-in and user-defined.

It should be noted that pg_cast does not represent every type conversion that the system knows how to perform; only those that diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-class.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-class.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-class.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-class.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.11. pg_class

51.11. pg_class

The catalog pg_class catalogs tables and most +51.11. pg_class

51.11. pg_class

The catalog pg_class catalogs tables and most everything else that has columns or is otherwise similar to a table. This includes indexes (but see also pg_index), sequences (but see also diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-collation.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-collation.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-collation.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-collation.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.12. pg_collation

51.12. pg_collation

The catalog pg_collation describes the +51.12. pg_collation

51.12. pg_collation

The catalog pg_collation describes the available collations, which are essentially mappings from an SQL name to operating system locale categories. See Section 23.2 for more information. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-constraint.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-constraint.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-constraint.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-constraint.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.13. pg_constraint

51.13. pg_constraint

The catalog pg_constraint stores check, primary +51.13. pg_constraint

51.13. pg_constraint

The catalog pg_constraint stores check, primary key, unique, foreign key, and exclusion constraints on tables. (Column constraints are not treated specially. Every column constraint is equivalent to some table constraint.) diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-conversion.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-conversion.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-conversion.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-conversion.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.14. pg_conversion

51.14. pg_conversion

The catalog pg_conversion describes +51.14. pg_conversion

51.14. pg_conversion

The catalog pg_conversion describes encoding conversion procedures. See CREATE CONVERSION for more information.

Table 51.14. pg_conversion Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
connamename Conversion name (unique within a namespace)
connamespaceoidpg_namespace.oid The OID of the namespace that contains this conversion diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-database.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-database.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-database.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-database.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.15. pg_database

51.15. pg_database

The catalog pg_database stores information about +51.15. pg_database

51.15. pg_database

The catalog pg_database stores information about the available databases. Databases are created with the CREATE DATABASE command. Consult Chapter 22 for details about the meaning of some of the parameters. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-db-role-setting.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-db-role-setting.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-db-role-setting.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-db-role-setting.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.16. pg_db_role_setting

51.16. pg_db_role_setting

The catalog pg_db_role_setting records the default +51.16. pg_db_role_setting

51.16. pg_db_role_setting

The catalog pg_db_role_setting records the default values that have been set for run-time configuration variables, for each role and database combination.

Unlike most system catalogs, pg_db_role_setting diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-default-acl.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-default-acl.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-default-acl.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-default-acl.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.17. pg_default_acl

51.17. pg_default_acl

The catalog pg_default_acl stores initial +51.17. pg_default_acl

51.17. pg_default_acl

The catalog pg_default_acl stores initial privileges to be assigned to newly created objects.

Table 51.17. pg_default_acl Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
defaclroleoidpg_authid.oidThe OID of the role associated with this entry
defaclnamespaceoidpg_namespace.oidThe OID of the namespace associated with this entry, or 0 if none
defaclobjtypechar  Type of object this entry is for: diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-depend.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-depend.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-depend.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-depend.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.18. pg_depend

51.18. pg_depend

The catalog pg_depend records the dependency +51.18. pg_depend

51.18. pg_depend

The catalog pg_depend records the dependency relationships between database objects. This information allows DROP commands to find which other objects must be dropped by DROP CASCADE or prevent dropping in the DROP diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-description.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-description.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-description.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-description.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.19. pg_description

51.19. pg_description

The catalog pg_description stores optional descriptions +51.19. pg_description

51.19. pg_description

The catalog pg_description stores optional descriptions (comments) for each database object. Descriptions can be manipulated with the COMMENT command and viewed with psql's \d commands. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-enum.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-enum.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-enum.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-enum.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.20. pg_enum

51.20. pg_enum

The pg_enum catalog contains entries +51.20. pg_enum

51.20. pg_enum

The pg_enum catalog contains entries showing the values and labels for each enum type. The internal representation of a given enum value is actually the OID of its associated row in pg_enum. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-event-trigger.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-event-trigger.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-event-trigger.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-event-trigger.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.21. pg_event_trigger

51.21. pg_event_trigger

The catalog pg_event_trigger stores event triggers. +51.21. pg_event_trigger

51.21. pg_event_trigger

The catalog pg_event_trigger stores event triggers. See Chapter 39 for more information.

Table 51.21. pg_event_trigger Columns

NameTypeReferencesDescription
evtnamename Trigger name (must be unique)
evteventname Identifies the event for which this trigger fires
evtowneroidpg_authid.oidOwner of the event trigger
evtfoidoidpg_proc.oidThe function to be called
evtenabledchar  Controls in which session_replication_role modes the event trigger fires. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-extension.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-extension.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-extension.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-extension.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.22. pg_extension

51.22. pg_extension

The catalog pg_extension stores information +51.22. pg_extension

51.22. pg_extension

The catalog pg_extension stores information about the installed extensions. See Section 37.15 for details about extensions.

Table 51.22. pg_extension Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
extnamename Name of the extension
extowneroidpg_authid.oidOwner of the extension
extnamespaceoidpg_namespace.oidSchema containing the extension's exported objects
extrelocatablebool True if extension can be relocated to another schema
extversiontext Version name for the extension
extconfigoid[]pg_class.oidArray of regclass OIDs for the extension's configuration diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-foreign-data-wrapper.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.23. pg_foreign_data_wrapper

51.23. pg_foreign_data_wrapper

The catalog pg_foreign_data_wrapper stores +51.23. pg_foreign_data_wrapper

51.23. pg_foreign_data_wrapper

The catalog pg_foreign_data_wrapper stores foreign-data wrapper definitions. A foreign-data wrapper is the mechanism by which external data, residing on foreign servers, is accessed. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-foreign-server.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-foreign-server.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-foreign-server.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-foreign-server.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.24. pg_foreign_server

51.24. pg_foreign_server

The catalog pg_foreign_server stores +51.24. pg_foreign_server

51.24. pg_foreign_server

The catalog pg_foreign_server stores foreign server definitions. A foreign server describes a source of external data, such as a remote server. Foreign servers are accessed via foreign-data wrappers. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-foreign-table.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-foreign-table.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-foreign-table.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-foreign-table.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.25. pg_foreign_table

51.25. pg_foreign_table

The catalog pg_foreign_table contains +51.25. pg_foreign_table

51.25. pg_foreign_table

The catalog pg_foreign_table contains auxiliary information about foreign tables. A foreign table is primarily represented by a pg_class entry, just like a regular table. Its pg_foreign_table diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-index.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-index.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-index.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-index.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.26. pg_index

51.26. pg_index

The catalog pg_index contains part of the information +51.26. pg_index

51.26. pg_index

The catalog pg_index contains part of the information about indexes. The rest is mostly in pg_class.

Table 51.26. pg_index Columns

NameTypeReferencesDescription
indexrelidoidpg_class.oidThe OID of the pg_class entry for this index
indrelidoidpg_class.oidThe OID of the pg_class entry for the table this index is for
indnattsint2 The number of columns in the index (duplicates diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-inherits.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-inherits.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-inherits.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-inherits.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.27. pg_inherits

51.27. pg_inherits

The catalog pg_inherits records information about +51.27. pg_inherits

51.27. pg_inherits

The catalog pg_inherits records information about table inheritance hierarchies. There is one entry for each direct child table in the database. (Indirect inheritance can be determined by following chains of entries.) diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-init-privs.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-init-privs.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-init-privs.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-init-privs.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.28. pg_init_privs

51.28. pg_init_privs

The catalog pg_init_privs records information about +51.28. pg_init_privs

51.28. pg_init_privs

The catalog pg_init_privs records information about the initial privileges of objects in the system. There is one entry for each object in the database which has a non-default (non-NULL) initial set of privileges. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-language.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-language.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-language.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-language.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.29. pg_language

51.29. pg_language

The catalog pg_language registers +51.29. pg_language

51.29. pg_language

The catalog pg_language registers languages in which you can write functions or stored procedures. See CREATE LANGUAGE and Chapter 41 for more information about language handlers. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-largeobject.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-largeobject.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-largeobject.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-largeobject.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.30. pg_largeobject

51.30. pg_largeobject

The catalog pg_largeobject holds the data making up +51.30. pg_largeobject

51.30. pg_largeobject

The catalog pg_largeobject holds the data making up large objects. A large object is identified by an OID assigned when it is created. Each large object is broken into segments or pages small enough to be conveniently stored as rows diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-largeobject-metadata.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-largeobject-metadata.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-largeobject-metadata.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-largeobject-metadata.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.31. pg_largeobject_metadata

51.31. pg_largeobject_metadata

The catalog pg_largeobject_metadata +51.31. pg_largeobject_metadata

51.31. pg_largeobject_metadata

The catalog pg_largeobject_metadata holds metadata associated with large objects. The actual large object data is stored in pg_largeobject. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-namespace.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-namespace.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-namespace.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-namespace.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.32. pg_namespace

51.32. pg_namespace

The catalog pg_namespace stores namespaces. +51.32. pg_namespace

51.32. pg_namespace

The catalog pg_namespace stores namespaces. A namespace is the structure underlying SQL schemas: each namespace can have a separate collection of relations, types, etc. without name conflicts. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-opclass.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-opclass.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-opclass.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-opclass.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.33. pg_opclass

51.33. pg_opclass

The catalog pg_opclass defines +51.33. pg_opclass

51.33. pg_opclass

The catalog pg_opclass defines index access method operator classes. Each operator class defines semantics for index columns of a particular data type and a particular index access method. An operator class essentially specifies that a diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-operator.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-operator.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-operator.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-operator.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.34. pg_operator

51.34. pg_operator

The catalog pg_operator stores information about operators. +51.34. pg_operator

51.34. pg_operator

The catalog pg_operator stores information about operators. See CREATE OPERATOR and Section 37.12 for more information.

Table 51.34. pg_operator Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
oprnamename Name of the operator
oprnamespaceoidpg_namespace.oid The OID of the namespace that contains this operator diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-opfamily.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-opfamily.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-opfamily.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-opfamily.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.35. pg_opfamily

51.35. pg_opfamily

The catalog pg_opfamily defines operator families. +51.35. pg_opfamily

51.35. pg_opfamily

The catalog pg_opfamily defines operator families. Each operator family is a collection of operators and associated support routines that implement the semantics specified for a particular index access method. Furthermore, the operators in a family are all diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-partitioned-table.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-partitioned-table.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-partitioned-table.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-partitioned-table.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.36. pg_partitioned_table

51.36. pg_partitioned_table

The catalog pg_partitioned_table stores +51.36. pg_partitioned_table

51.36. pg_partitioned_table

The catalog pg_partitioned_table stores information about how tables are partitioned.

Table 51.36. pg_partitioned_table Columns

NameTypeReferencesDescription
partrelidoidpg_class.oidThe OID of the pg_class entry for this partitioned table
partstratchar  Partitioning strategy; l = list partitioned table, r = range partitioned table diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-pltemplate.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-pltemplate.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-pltemplate.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-pltemplate.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.37. pg_pltemplate

51.37. pg_pltemplate

The catalog pg_pltemplate stores +51.37. pg_pltemplate

51.37. pg_pltemplate

The catalog pg_pltemplate stores template information for procedural languages. A template for a language allows the language to be created in a particular database by a simple CREATE LANGUAGE command, diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-policy.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-policy.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-policy.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-policy.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.38. pg_policy

51.38. pg_policy

The catalog pg_policy stores row level +51.38. pg_policy

51.38. pg_policy

The catalog pg_policy stores row level security policies for tables. A policy includes the kind of command that it applies to (possibly all commands), the roles that it applies to, the expression to be added as a security-barrier diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-proc.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-proc.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-proc.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-proc.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.39. pg_proc

51.39. pg_proc

The catalog pg_proc stores information about functions (or procedures). +51.39. pg_proc

51.39. pg_proc

The catalog pg_proc stores information about functions (or procedures). See CREATE FUNCTION and Section 37.3 for more information.

The table contains data for aggregate functions as well as plain functions. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-publication.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-publication.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-publication.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-publication.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.40. pg_publication

51.40. pg_publication

The catalog pg_publication contains all +51.40. pg_publication

51.40. pg_publication

The catalog pg_publication contains all publications created in the database. For more on publications see Section 31.1.

Table 51.40. pg_publication Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
pubnamename Name of the publication
pubowneroidpg_authid.oidOwner of the publication
puballtablesbool If true, this publication automatically includes all tables diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-publication-rel.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-publication-rel.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-publication-rel.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-publication-rel.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.41. pg_publication_rel

51.41. pg_publication_rel

The catalog pg_publication_rel contains the +51.41. pg_publication_rel

51.41. pg_publication_rel

The catalog pg_publication_rel contains the mapping between relations and publications in the database. This is a many-to-many mapping. See also Section 51.78 for a more user-friendly view of this information. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-range.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-range.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-range.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-range.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.42. pg_range

51.42. pg_range

The catalog pg_range stores information about +51.42. pg_range

51.42. pg_range

The catalog pg_range stores information about range types. This is in addition to the types' entries in pg_type.

Table 51.42. pg_range Columns

NameTypeReferencesDescription
rngtypidoidpg_type.oidOID of the range type
rngsubtypeoidpg_type.oidOID of the element type (subtype) of this range type
rngcollationoidpg_collation.oidOID of the collation used for range comparisons, or 0 if none
rngsubopcoidpg_opclass.oidOID of the subtype's operator class used for range comparisons
rngcanonicalregprocpg_proc.oidOID of the function to convert a range value into canonical form, diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-replication-origin.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-replication-origin.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-replication-origin.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-replication-origin.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.43. pg_replication_origin

51.43. pg_replication_origin

The pg_replication_origin catalog contains +51.43. pg_replication_origin

51.43. pg_replication_origin

The pg_replication_origin catalog contains all replication origins created. For more on replication origins see Chapter 49.

Table 51.43. pg_replication_origin Columns

NameTypeReferencesDescription
roidentOid A unique, cluster-wide identifier for the replication diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-rewrite.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-rewrite.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-rewrite.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-rewrite.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.44. pg_rewrite

51.44. pg_rewrite

The catalog pg_rewrite stores rewrite rules for tables and views. +51.44. pg_rewrite

51.44. pg_rewrite

The catalog pg_rewrite stores rewrite rules for tables and views.

Table 51.44. pg_rewrite Columns

NameTypeReferencesDescription
oidoid Row identifier (hidden attribute; must be explicitly selected)
rulenamename Rule name
ev_classoidpg_class.oidThe table this rule is for
ev_typechar  Event type that the rule is for: 1 = SELECT, 2 = UPDATE, 3 = INSERT, 4 = DELETE diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-seclabel.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-seclabel.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-seclabel.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-seclabel.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.45. pg_seclabel

51.45. pg_seclabel

The catalog pg_seclabel stores security +51.45. pg_seclabel

51.45. pg_seclabel

The catalog pg_seclabel stores security labels on database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier way to view security labels, see Section 51.83. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-sequence.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-sequence.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-sequence.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-sequence.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.46. pg_sequence

51.46. pg_sequence

The catalog pg_sequence contains information about +51.46. pg_sequence

51.46. pg_sequence

The catalog pg_sequence contains information about sequences. Some of the information about sequences, such as the name and the schema, is in pg_class.

Table 51.46. pg_sequence Columns

NameTypeReferencesDescription
seqrelidoidpg_class.oidThe OID of the pg_class entry for this sequence
seqtypidoidpg_type.oidData type of the sequence
seqstartint8 Start value of the sequence
seqincrementint8 Increment value of the sequence
seqmaxint8 Maximum value of the sequence
seqminint8 Minimum value of the sequence
seqcacheint8 Cache size of the sequence
seqcyclebool Whether the sequence cycles

\ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-shdepend.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-shdepend.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-shdepend.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-shdepend.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.47. pg_shdepend

51.47. pg_shdepend

The catalog pg_shdepend records the +51.47. pg_shdepend

51.47. pg_shdepend

The catalog pg_shdepend records the dependency relationships between database objects and shared objects, such as roles. This information allows PostgreSQL to ensure that those objects are diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-shdescription.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-shdescription.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-shdescription.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-shdescription.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.48. pg_shdescription

51.48. pg_shdescription

The catalog pg_shdescription stores optional +51.48. pg_shdescription

51.48. pg_shdescription

The catalog pg_shdescription stores optional descriptions (comments) for shared database objects. Descriptions can be manipulated with the COMMENT command and viewed with psql's \d commands. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-shseclabel.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-shseclabel.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-shseclabel.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-shseclabel.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.49. pg_shseclabel

51.49. pg_shseclabel

The catalog pg_shseclabel stores security +51.49. pg_shseclabel

51.49. pg_shseclabel

The catalog pg_shseclabel stores security labels on shared database objects. Security labels can be manipulated with the SECURITY LABEL command. For an easier way to view security labels, see Section 51.83. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-statistic-ext.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-statistic-ext.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-statistic-ext.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-statistic-ext.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.51. pg_statistic_ext

51.51. pg_statistic_ext

The catalog pg_statistic_ext +51.51. pg_statistic_ext

51.51. pg_statistic_ext

The catalog pg_statistic_ext holds extended planner statistics. Each row in this catalog corresponds to a statistics object created with CREATE STATISTICS. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-statistic.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-statistic.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-statistic.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-statistic.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.50. pg_statistic

51.50. pg_statistic

The catalog pg_statistic stores +51.50. pg_statistic

51.50. pg_statistic

The catalog pg_statistic stores statistical data about the contents of the database. Entries are created by ANALYZE and subsequently used by the query planner. Note that all the diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-subscription.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-subscription.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-subscription.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-subscription.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.52. pg_subscription

51.52. pg_subscription

The catalog pg_subscription contains all existing +51.52. pg_subscription

51.52. pg_subscription

The catalog pg_subscription contains all existing logical replication subscriptions. For more information about logical replication see Chapter 31.

Unlike most system catalogs, pg_subscription is diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-subscription-rel.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-subscription-rel.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-subscription-rel.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-subscription-rel.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.53. pg_subscription_rel

51.53. pg_subscription_rel

The catalog pg_subscription_rel contains the +51.53. pg_subscription_rel

51.53. pg_subscription_rel

The catalog pg_subscription_rel contains the state for each replicated relation in each subscription. This is a many-to-many mapping.

This catalog only contains tables known to the subscription after running diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-tablespace.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-tablespace.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-tablespace.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-tablespace.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.54. pg_tablespace

51.54. pg_tablespace

The catalog pg_tablespace stores information +51.54. pg_tablespace

51.54. pg_tablespace

The catalog pg_tablespace stores information about the available tablespaces. Tables can be placed in particular tablespaces to aid administration of disk layout.

Unlike most system catalogs, pg_tablespace diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-transform.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-transform.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-transform.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-transform.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.55. pg_transform

51.55. pg_transform

The catalog pg_transform stores information about +51.55. pg_transform

51.55. pg_transform

The catalog pg_transform stores information about transforms, which are a mechanism to adapt data types to procedural languages. See CREATE TRANSFORM for more information.

Table 51.55. pg_transform Columns

NameTypeReferencesDescription
trftypeoidpg_type.oidOID of the data type this transform is for
trflangoidpg_language.oidOID of the language this transform is for
trffromsqlregprocpg_proc.oid The OID of the function to use when converting the data type for input diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-trigger.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-trigger.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-trigger.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-trigger.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.56. pg_trigger

51.56. pg_trigger

The catalog pg_trigger stores triggers on tables +51.56. pg_trigger

51.56. pg_trigger

The catalog pg_trigger stores triggers on tables and views. See CREATE TRIGGER for more information. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-config.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-config.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-config.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-config.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.57. pg_ts_config

51.57. pg_ts_config

The pg_ts_config catalog contains entries +51.57. pg_ts_config

51.57. pg_ts_config

The pg_ts_config catalog contains entries representing text search configurations. A configuration specifies a particular text search parser and a list of dictionaries to use for each of the parser's output token types. The parser is shown diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-config-map.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-config-map.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-config-map.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-config-map.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.58. pg_ts_config_map

51.58. pg_ts_config_map

The pg_ts_config_map catalog contains entries +51.58. pg_ts_config_map

51.58. pg_ts_config_map

The pg_ts_config_map catalog contains entries showing which text search dictionaries should be consulted, and in what order, for each output token type of each text search configuration's parser. diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-dict.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-dict.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-dict.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-dict.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.59. pg_ts_dict

51.59. pg_ts_dict

The pg_ts_dict catalog contains entries +51.59. pg_ts_dict

51.59. pg_ts_dict

The pg_ts_dict catalog contains entries defining text search dictionaries. A dictionary depends on a text search template, which specifies all the implementation functions needed; the dictionary itself provides values for the user-settable diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-parser.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-parser.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-parser.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-parser.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.60. pg_ts_parser

51.60. pg_ts_parser

The pg_ts_parser catalog contains entries +51.60. pg_ts_parser

51.60. pg_ts_parser

The pg_ts_parser catalog contains entries defining text search parsers. A parser is responsible for splitting input text into lexemes and assigning a token type to each lexeme. Since a parser must be implemented by C-language-level functions, diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-template.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-template.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-ts-template.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-ts-template.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.61. pg_ts_template

51.61. pg_ts_template

The pg_ts_template catalog contains entries +51.61. pg_ts_template

51.61. pg_ts_template

The pg_ts_template catalog contains entries defining text search templates. A template is the implementation skeleton for a class of text search dictionaries. Since a template must be implemented by C-language-level functions, diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-type.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-type.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-type.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-type.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.62. pg_type

51.62. pg_type

The catalog pg_type stores information about data +51.62. pg_type

51.62. pg_type

The catalog pg_type stores information about data types. Base types and enum types (scalar types) are created with CREATE TYPE, and domains with diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalog-pg-user-mapping.html postgresql-10-10.12/doc/src/sgml/html/catalog-pg-user-mapping.html --- postgresql-10-10.10/doc/src/sgml/html/catalog-pg-user-mapping.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalog-pg-user-mapping.html 2020-02-10 22:31:58.000000000 +0000 @@ -1,5 +1,5 @@ -51.63. pg_user_mapping

51.63. pg_user_mapping

The catalog pg_user_mapping stores +51.63. pg_user_mapping

51.63. pg_user_mapping

The catalog pg_user_mapping stores the mappings from local user to remote. Access to this catalog is restricted from normal users, use the view pg_user_mappings diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalogs.html postgresql-10-10.12/doc/src/sgml/html/catalogs.html --- postgresql-10-10.10/doc/src/sgml/html/catalogs.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalogs.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 51. System Catalogs

Chapter 51. System Catalogs

Table of Contents

51.1. Overview
51.2. pg_aggregate
51.3. pg_am
51.4. pg_amop
51.5. pg_amproc
51.6. pg_attrdef
51.7. pg_attribute
51.8. pg_authid
51.9. pg_auth_members
51.10. pg_cast
51.11. pg_class
51.12. pg_collation
51.13. pg_constraint
51.14. pg_conversion
51.15. pg_database
51.16. pg_db_role_setting
51.17. pg_default_acl
51.18. pg_depend
51.19. pg_description
51.20. pg_enum
51.21. pg_event_trigger
51.22. pg_extension
51.23. pg_foreign_data_wrapper
51.24. pg_foreign_server
51.25. pg_foreign_table
51.26. pg_index
51.27. pg_inherits
51.28. pg_init_privs
51.29. pg_language
51.30. pg_largeobject
51.31. pg_largeobject_metadata
51.32. pg_namespace
51.33. pg_opclass
51.34. pg_operator
51.35. pg_opfamily
51.36. pg_partitioned_table
51.37. pg_pltemplate
51.38. pg_policy
51.39. pg_proc
51.40. pg_publication
51.41. pg_publication_rel
51.42. pg_range
51.43. pg_replication_origin
51.44. pg_rewrite
51.45. pg_seclabel
51.46. pg_sequence
51.47. pg_shdepend
51.48. pg_shdescription
51.49. pg_shseclabel
51.50. pg_statistic
51.51. pg_statistic_ext
51.52. pg_subscription
51.53. pg_subscription_rel
51.54. pg_tablespace
51.55. pg_transform
51.56. pg_trigger
51.57. pg_ts_config
51.58. pg_ts_config_map
51.59. pg_ts_dict
51.60. pg_ts_parser
51.61. pg_ts_template
51.62. pg_type
51.63. pg_user_mapping
51.64. System Views
51.65. pg_available_extensions
51.66. pg_available_extension_versions
51.67. pg_config
51.68. pg_cursors
51.69. pg_file_settings
51.70. pg_group
51.71. pg_hba_file_rules
51.72. pg_indexes
51.73. pg_locks
51.74. pg_matviews
51.75. pg_policies
51.76. pg_prepared_statements
51.77. pg_prepared_xacts
51.78. pg_publication_tables
51.79. pg_replication_origin_status
51.80. pg_replication_slots
51.81. pg_roles
51.82. pg_rules
51.83. pg_seclabels
51.84. pg_sequences
51.85. pg_settings
51.86. pg_shadow
51.87. pg_stats
51.88. pg_tables
51.89. pg_timezone_abbrevs
51.90. pg_timezone_names
51.91. pg_user
51.92. pg_user_mappings
51.93. pg_views

The system catalogs are the place where a relational database +Chapter 51. System Catalogs

Chapter 51. System Catalogs

Table of Contents

51.1. Overview
51.2. pg_aggregate
51.3. pg_am
51.4. pg_amop
51.5. pg_amproc
51.6. pg_attrdef
51.7. pg_attribute
51.8. pg_authid
51.9. pg_auth_members
51.10. pg_cast
51.11. pg_class
51.12. pg_collation
51.13. pg_constraint
51.14. pg_conversion
51.15. pg_database
51.16. pg_db_role_setting
51.17. pg_default_acl
51.18. pg_depend
51.19. pg_description
51.20. pg_enum
51.21. pg_event_trigger
51.22. pg_extension
51.23. pg_foreign_data_wrapper
51.24. pg_foreign_server
51.25. pg_foreign_table
51.26. pg_index
51.27. pg_inherits
51.28. pg_init_privs
51.29. pg_language
51.30. pg_largeobject
51.31. pg_largeobject_metadata
51.32. pg_namespace
51.33. pg_opclass
51.34. pg_operator
51.35. pg_opfamily
51.36. pg_partitioned_table
51.37. pg_pltemplate
51.38. pg_policy
51.39. pg_proc
51.40. pg_publication
51.41. pg_publication_rel
51.42. pg_range
51.43. pg_replication_origin
51.44. pg_rewrite
51.45. pg_seclabel
51.46. pg_sequence
51.47. pg_shdepend
51.48. pg_shdescription
51.49. pg_shseclabel
51.50. pg_statistic
51.51. pg_statistic_ext
51.52. pg_subscription
51.53. pg_subscription_rel
51.54. pg_tablespace
51.55. pg_transform
51.56. pg_trigger
51.57. pg_ts_config
51.58. pg_ts_config_map
51.59. pg_ts_dict
51.60. pg_ts_parser
51.61. pg_ts_template
51.62. pg_type
51.63. pg_user_mapping
51.64. System Views
51.65. pg_available_extensions
51.66. pg_available_extension_versions
51.67. pg_config
51.68. pg_cursors
51.69. pg_file_settings
51.70. pg_group
51.71. pg_hba_file_rules
51.72. pg_indexes
51.73. pg_locks
51.74. pg_matviews
51.75. pg_policies
51.76. pg_prepared_statements
51.77. pg_prepared_xacts
51.78. pg_publication_tables
51.79. pg_replication_origin_status
51.80. pg_replication_slots
51.81. pg_roles
51.82. pg_rules
51.83. pg_seclabels
51.84. pg_sequences
51.85. pg_settings
51.86. pg_shadow
51.87. pg_stats
51.88. pg_tables
51.89. pg_timezone_abbrevs
51.90. pg_timezone_names
51.91. pg_user
51.92. pg_user_mappings
51.93. pg_views

The system catalogs are the place where a relational database management system stores schema metadata, such as information about tables and columns, and internal bookkeeping information. PostgreSQL's system catalogs are regular diff -Nru postgresql-10-10.10/doc/src/sgml/html/catalogs-overview.html postgresql-10-10.12/doc/src/sgml/html/catalogs-overview.html --- postgresql-10-10.10/doc/src/sgml/html/catalogs-overview.html 2019-08-05 21:30:13.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/catalogs-overview.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -51.1. Overview

51.1. Overview

Table 51.1 lists the system catalogs. +51.1. Overview

51.1. Overview

Table 51.1 lists the system catalogs. More detailed documentation of each catalog follows below.

Most system catalogs are copied from the template database during database creation and are thereafter database-specific. A few diff -Nru postgresql-10-10.10/doc/src/sgml/html/charset.html postgresql-10-10.12/doc/src/sgml/html/charset.html --- postgresql-10-10.10/doc/src/sgml/html/charset.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/charset.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 23. Localization

Chapter 23. Localization

This chapter describes the available localization features from the +Chapter 23. Localization

Chapter 23. Localization

This chapter describes the available localization features from the point of view of the administrator. PostgreSQL supports two localization facilities: diff -Nru postgresql-10-10.10/doc/src/sgml/html/chkpass.html postgresql-10-10.12/doc/src/sgml/html/chkpass.html --- postgresql-10-10.10/doc/src/sgml/html/chkpass.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/chkpass.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.8. chkpass

F.8. chkpass

This module implements a data type chkpass that is +F.8. chkpass

F.8. chkpass

This module implements a data type chkpass that is designed for storing encrypted passwords. Each password is automatically converted to encrypted form upon entry, and is always stored encrypted. To compare, simply compare against a clear diff -Nru postgresql-10-10.10/doc/src/sgml/html/citext.html postgresql-10-10.12/doc/src/sgml/html/citext.html --- postgresql-10-10.10/doc/src/sgml/html/citext.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/citext.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -F.9. citext

F.9. citext

The citext module provides a case-insensitive +F.9. citext

F.9. citext

The citext module provides a case-insensitive character string type, citext. Essentially, it internally calls lower when comparing values. Otherwise, it behaves almost exactly like text. diff -Nru postgresql-10-10.10/doc/src/sgml/html/client-authentication.html postgresql-10-10.12/doc/src/sgml/html/client-authentication.html --- postgresql-10-10.10/doc/src/sgml/html/client-authentication.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/client-authentication.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 20. Client Authentication

Chapter 20. Client Authentication

When a client application connects to the database server, it +Chapter 20. Client Authentication

Chapter 20. Client Authentication

When a client application connects to the database server, it specifies which PostgreSQL database user name it wants to connect as, much the same way one logs into a Unix computer as a particular user. Within the SQL environment the active database diff -Nru postgresql-10-10.10/doc/src/sgml/html/client-authentication-problems.html postgresql-10-10.12/doc/src/sgml/html/client-authentication-problems.html --- postgresql-10-10.10/doc/src/sgml/html/client-authentication-problems.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/client-authentication-problems.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -20.4. Authentication Problems

20.4. Authentication Problems

Authentication failures and related problems generally +20.4. Authentication Problems

20.4. Authentication Problems

Authentication failures and related problems generally manifest themselves through error messages like the following:

FATAL:  no pg_hba.conf entry for host "123.123.123.123", user "andym", database "testdb"

This is what you are most likely to get if you succeed in contacting diff -Nru postgresql-10-10.10/doc/src/sgml/html/client-interfaces.html postgresql-10-10.12/doc/src/sgml/html/client-interfaces.html --- postgresql-10-10.10/doc/src/sgml/html/client-interfaces.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/client-interfaces.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -Part IV. Client Interfaces

Part IV. Client Interfaces

This part describes the client programming interfaces distributed +Part IV. Client Interfaces

Part IV. Client Interfaces

This part describes the client programming interfaces distributed with PostgreSQL. Each of these chapters can be read independently. Note that there are many other programming interfaces for client programs that are distributed separately and diff -Nru postgresql-10-10.10/doc/src/sgml/html/collation.html postgresql-10-10.12/doc/src/sgml/html/collation.html --- postgresql-10-10.10/doc/src/sgml/html/collation.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/collation.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -23.2. Collation Support

23.2. Collation Support

The collation feature allows specifying the sort order and character +23.2. Collation Support

23.2. Collation Support

The collation feature allows specifying the sort order and character classification behavior of data per-column, or even per-operation. This alleviates the restriction that the LC_COLLATE and LC_CTYPE settings diff -Nru postgresql-10-10.10/doc/src/sgml/html/config-setting.html postgresql-10-10.12/doc/src/sgml/html/config-setting.html --- postgresql-10-10.10/doc/src/sgml/html/config-setting.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/config-setting.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -19.1. Setting Parameters

19.1. Setting Parameters

19.1.1. Parameter Names and Values

All parameter names are case-insensitive. Every parameter takes a +19.1. Setting Parameters

19.1. Setting Parameters

19.1.1. Parameter Names and Values

All parameter names are case-insensitive. Every parameter takes a value of one of five types: boolean, string, integer, floating point, or enumerated (enum). The type determines the syntax for setting the parameter: @@ -67,6 +67,8 @@ identifiers or numbers must be single-quoted. To embed a single quote in a parameter value, write either two quotes (preferred) or backslash-quote. + If the file contains multiple entries for the same parameter, + all but the last one are ignored.

Parameters set in this way provide default values for the cluster. The settings seen by active sessions will be these values unless they are overridden. The following sections describe ways in which the @@ -88,15 +90,23 @@

In addition to postgresql.conf, a PostgreSQL data directory contains a file postgresql.auto.conf, - which has the same format as postgresql.conf but should - never be edited manually. This file holds settings provided through - the ALTER SYSTEM command. This file is automatically - read whenever postgresql.conf is, and its settings take - effect in the same way. Settings in postgresql.auto.conf - override those in postgresql.conf. + which has the same format as postgresql.conf but + is intended to be edited automatically not manually. This file holds + settings provided through the ALTER SYSTEM command. + This file is read whenever postgresql.conf is, + and its settings take effect in the same way. Settings + in postgresql.auto.conf override those + in postgresql.conf. +

External tools may also + modify postgresql.auto.conf. It is not + recommended to do this while the server is running, since a + concurrent ALTER SYSTEM command could overwrite + such changes. Such tools might simply append new settings to the end, + or they might choose to remove duplicate settings and/or comments + (as ALTER SYSTEM will).

The system view pg_file_settings - can be helpful for pre-testing changes to the configuration file, or for + can be helpful for pre-testing changes to the configuration files, or for diagnosing problems if a SIGHUP signal did not have the desired effects.

19.1.3. Parameter Interaction via SQL

PostgreSQL provides three SQL diff -Nru postgresql-10-10.10/doc/src/sgml/html/connect-estab.html postgresql-10-10.12/doc/src/sgml/html/connect-estab.html --- postgresql-10-10.10/doc/src/sgml/html/connect-estab.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/connect-estab.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -50.2. How Connections are Established

50.2. How Connections are Established

PostgreSQL is implemented using a +50.2. How Connections are Established

50.2. How Connections are Established

PostgreSQL is implemented using a simple process per user client/server model. In this model there is one client process connected to exactly one server process. As we do not diff -Nru postgresql-10-10.10/doc/src/sgml/html/continuous-archiving.html postgresql-10-10.12/doc/src/sgml/html/continuous-archiving.html --- postgresql-10-10.10/doc/src/sgml/html/continuous-archiving.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/continuous-archiving.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -25.3. Continuous Archiving and Point-in-Time Recovery (PITR)

25.3. Continuous Archiving and Point-in-Time Recovery (PITR)

At all times, PostgreSQL maintains a +25.3. Continuous Archiving and Point-in-Time Recovery (PITR)

25.3. Continuous Archiving and Point-in-Time Recovery (PITR)

At all times, PostgreSQL maintains a write ahead log (WAL) in the pg_wal/ subdirectory of the cluster's data directory. The log records every change made to the database's data files. This log exists diff -Nru postgresql-10-10.10/doc/src/sgml/html/contrib-dblink-build-sql-delete.html postgresql-10-10.12/doc/src/sgml/html/contrib-dblink-build-sql-delete.html --- postgresql-10-10.10/doc/src/sgml/html/contrib-dblink-build-sql-delete.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/contrib-dblink-build-sql-delete.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -dblink_build_sql_delete

pg_signal_backendSignal another backend to cancel a query or terminate its session.

The pg_monitor, pg_read_all_settings, pg_read_all_stats and pg_stat_scan_tables roles are intended to allow administrators to easily configure a role for the purpose of monitoring the database server. They grant a set of common privileges allowing the role to read various useful configuration settings, statistics and other system information normally restricted to superusers. +

The pg_signal_backend role is intended to allow + administrators to enable trusted, but non-superuser, roles to send signals + to other backends. Currently this role enables sending of signals for + canceling a query on another backend or terminating its session. A user + granted this role cannot however send signals to a backend owned by a + superuser. See Section 9.26.2.

Care should be taken when granting these roles to ensure they are only used where needed to perform the desired monitoring. -

Administrators can grant access to these roles to users using the GRANT - command: +

Administrators can grant access to these roles to users using the + GRANT command, for example:

GRANT pg_signal_backend TO admin_user;

\ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/dict-int.html postgresql-10-10.12/doc/src/sgml/html/dict-int.html --- postgresql-10-10.10/doc/src/sgml/html/dict-int.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/dict-int.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.12. dict_int

F.12. dict_int

dict_int is an example of an add-on dictionary template +F.12. dict_int

F.12. dict_int

dict_int is an example of an add-on dictionary template for full-text search. The motivation for this example dictionary is to control the indexing of integers (signed and unsigned), allowing such numbers to be indexed while preventing excessive growth in the number of diff -Nru postgresql-10-10.10/doc/src/sgml/html/dict-xsyn.html postgresql-10-10.12/doc/src/sgml/html/dict-xsyn.html --- postgresql-10-10.10/doc/src/sgml/html/dict-xsyn.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/dict-xsyn.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.13. dict_xsyn

F.13. dict_xsyn

dict_xsyn (Extended Synonym Dictionary) is an example of an +F.13. dict_xsyn

F.13. dict_xsyn

dict_xsyn (Extended Synonym Dictionary) is an example of an add-on dictionary template for full-text search. This dictionary type replaces words with groups of their synonyms, and so makes it possible to search for a word using any of its synonyms. diff -Nru postgresql-10-10.10/doc/src/sgml/html/different-replication-solutions.html postgresql-10-10.12/doc/src/sgml/html/different-replication-solutions.html --- postgresql-10-10.10/doc/src/sgml/html/different-replication-solutions.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/different-replication-solutions.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -26.1. Comparison of Different Solutions

26.1. Comparison of Different Solutions

Shared Disk Failover

Shared disk failover avoids synchronization overhead by having only one +26.1. Comparison of Different Solutions

26.1. Comparison of Different Solutions

Shared Disk Failover

Shared disk failover avoids synchronization overhead by having only one copy of the database. It uses a single disk array that is shared by multiple servers. If the main database server fails, the standby server is able to mount and start the database as though it were recovering from @@ -71,7 +71,8 @@ and COMMIT PREPARED). Pgpool-II and Continuent Tungsten are examples of this type of replication. -

Asynchronous Multimaster Replication

For servers that are not regularly connected, like laptops or +

Asynchronous Multimaster Replication

For servers that are not regularly connected or have slow + communication links, like laptops or remote servers, keeping data consistent among servers is a challenge. Using asynchronous multimaster replication, each server works independently, and periodically communicates with @@ -81,9 +82,8 @@

Synchronous Multimaster Replication

In synchronous multimaster replication, each server can accept write requests, and modified data is transmitted from the original server to every other server before each transaction - commits. Heavy write activity can cause excessive locking, - leading to poor performance. In fact, write performance is - often worse than that of a single server. Read requests can + commits. Heavy write activity can cause excessive locking and + commit delays, leading to poor performance. Read requests can be sent to any server. Some implementations use shared disk to reduce the communication overhead. Synchronous multimaster replication is best for mostly read workloads, though its big diff -Nru postgresql-10-10.10/doc/src/sgml/html/disk-full.html postgresql-10-10.12/doc/src/sgml/html/disk-full.html --- postgresql-10-10.10/doc/src/sgml/html/disk-full.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/disk-full.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -29.2. Disk Full Failure

29.2. Disk Full Failure

The most important disk monitoring task of a database administrator +29.2. Disk Full Failure

29.2. Disk Full Failure

The most important disk monitoring task of a database administrator is to make sure the disk doesn't become full. A filled data disk will not result in data corruption, but it might prevent useful activity from occurring. If the disk holding the WAL files grows full, database diff -Nru postgresql-10-10.10/doc/src/sgml/html/disk-usage.html postgresql-10-10.12/doc/src/sgml/html/disk-usage.html --- postgresql-10-10.10/doc/src/sgml/html/disk-usage.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/disk-usage.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -29.1. Determining Disk Usage

29.1. Determining Disk Usage

Each table has a primary heap disk file where most of the data is +29.1. Determining Disk Usage

29.1. Determining Disk Usage

Each table has a primary heap disk file where most of the data is stored. If the table has any columns with potentially-wide values, there also might be a TOAST file associated with the table, which is used to store values too wide to fit comfortably in the main diff -Nru postgresql-10-10.10/doc/src/sgml/html/diskusage.html postgresql-10-10.12/doc/src/sgml/html/diskusage.html --- postgresql-10-10.10/doc/src/sgml/html/diskusage.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/diskusage.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,4 +1,4 @@ -Chapter 29. Monitoring Disk Usage

Chapter 29. Monitoring Disk Usage

This chapter discusses how to monitor the disk usage of a +Chapter 29. Monitoring Disk Usage

Chapter 29. Monitoring Disk Usage

This chapter discusses how to monitor the disk usage of a PostgreSQL database system.

\ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/dml-delete.html postgresql-10-10.12/doc/src/sgml/html/dml-delete.html --- postgresql-10-10.10/doc/src/sgml/html/dml-delete.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/dml-delete.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -6.3. Deleting Data

6.3. Deleting Data

So far we have explained how to add data to tables and how to +6.3. Deleting Data

6.3. Deleting Data

So far we have explained how to add data to tables and how to change data. What remains is to discuss how to remove data that is no longer needed. Just as adding data is only possible in whole rows, you can only remove entire rows from a table. In the diff -Nru postgresql-10-10.10/doc/src/sgml/html/dml.html postgresql-10-10.12/doc/src/sgml/html/dml.html --- postgresql-10-10.10/doc/src/sgml/html/dml.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/dml.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 6. Data Manipulation

Chapter 6. Data Manipulation

The previous chapter discussed how to create tables and other +Chapter 6. Data Manipulation

Chapter 6. Data Manipulation

The previous chapter discussed how to create tables and other structures to hold your data. Now it is time to fill the tables with data. This chapter covers how to insert, update, and delete table data. The chapter diff -Nru postgresql-10-10.10/doc/src/sgml/html/dml-insert.html postgresql-10-10.12/doc/src/sgml/html/dml-insert.html --- postgresql-10-10.10/doc/src/sgml/html/dml-insert.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/dml-insert.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -6.1. Inserting Data

6.1. Inserting Data

When a table is created, it contains no data. The first thing to +6.1. Inserting Data

6.1. Inserting Data

When a table is created, it contains no data. The first thing to do before a database can be of much use is to insert data. Data is conceptually inserted one row at a time. Of course you can also insert more than one row, but there is no way to insert less than diff -Nru postgresql-10-10.10/doc/src/sgml/html/dml-returning.html postgresql-10-10.12/doc/src/sgml/html/dml-returning.html --- postgresql-10-10.10/doc/src/sgml/html/dml-returning.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/dml-returning.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -6.4. Returning Data From Modified Rows

6.4. Returning Data From Modified Rows

Sometimes it is useful to obtain data from modified rows while they are +6.4. Returning Data From Modified Rows

6.4. Returning Data From Modified Rows

Sometimes it is useful to obtain data from modified rows while they are being manipulated. The INSERT, UPDATE, and DELETE commands all have an optional RETURNING clause that supports this. Use diff -Nru postgresql-10-10.10/doc/src/sgml/html/dml-update.html postgresql-10-10.12/doc/src/sgml/html/dml-update.html --- postgresql-10-10.10/doc/src/sgml/html/dml-update.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/dml-update.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -6.2. Updating Data

6.2. Updating Data

The modification of data that is already in the database is +6.2. Updating Data

6.2. Updating Data

The modification of data that is already in the database is referred to as updating. You can update individual rows, all the rows in a table, or a subset of all rows. Each column can be updated separately; the other columns are not affected. diff -Nru postgresql-10-10.10/doc/src/sgml/html/docguide-authoring.html postgresql-10-10.12/doc/src/sgml/html/docguide-authoring.html --- postgresql-10-10.10/doc/src/sgml/html/docguide-authoring.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/docguide-authoring.html 2020-02-10 22:32:04.000000000 +0000 @@ -1,5 +1,5 @@ -J.4. Documentation Authoring

J.4. Documentation Authoring

SGML and DocBook do +J.4. Documentation Authoring

J.4. Documentation Authoring

SGML and DocBook do not suffer from an oversupply of open-source authoring tools. The most common tool set is the Emacs/XEmacs diff -Nru postgresql-10-10.10/doc/src/sgml/html/docguide-build.html postgresql-10-10.12/doc/src/sgml/html/docguide-build.html --- postgresql-10-10.10/doc/src/sgml/html/docguide-build.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/docguide-build.html 2020-02-10 22:32:04.000000000 +0000 @@ -1,5 +1,5 @@ -J.3. Building The Documentation

J.3. Building The Documentation

Once you have everything set up, change to the directory +J.3. Building The Documentation

J.3. Building The Documentation

Once you have everything set up, change to the directory doc/src/sgml and run one of the commands described in the following subsections to build the documentation. (Remember to use GNU make.) diff -Nru postgresql-10-10.10/doc/src/sgml/html/docguide-docbook.html postgresql-10-10.12/doc/src/sgml/html/docguide-docbook.html --- postgresql-10-10.10/doc/src/sgml/html/docguide-docbook.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/docguide-docbook.html 2020-02-10 22:32:04.000000000 +0000 @@ -1,5 +1,5 @@ -J.1. DocBook

J.1. DocBook

The documentation sources are written in +J.1. DocBook

J.1. DocBook

The documentation sources are written in DocBook, which is a markup language superficially similar to HTML. Both of these languages are applications of the Standard Generalized diff -Nru postgresql-10-10.10/doc/src/sgml/html/docguide.html postgresql-10-10.12/doc/src/sgml/html/docguide.html --- postgresql-10-10.10/doc/src/sgml/html/docguide.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/docguide.html 2020-02-10 22:32:04.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix J. Documentation

Appendix J. Documentation

PostgreSQL has four primary documentation +Appendix J. Documentation

Appendix J. Documentation

PostgreSQL has four primary documentation formats:

connection_object

An optional identifier for the connection, so that it can be +

connection_name

An optional identifier for the connection, so that it can be referred to in other commands. This can be an SQL identifier or a host variable.

connection_user

The user name for the database connection. diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-deallocate-descriptor.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -DEALLOCATE DESCRIPTOR

DEALLOCATE DESCRIPTOR

DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area

Synopsis

DEALLOCATE DESCRIPTOR name

Description

DEALLOCATE DESCRIPTOR deallocates a named SQL +DEALLOCATE DESCRIPTOR

DEALLOCATE DESCRIPTOR

DEALLOCATE DESCRIPTOR — deallocate an SQL descriptor area

Synopsis

DEALLOCATE DESCRIPTOR name

Description

DEALLOCATE DESCRIPTOR deallocates a named SQL descriptor area.

Parameters

name

The name of the descriptor which is going to be deallocated. It is case sensitive. This can be an SQL identifier or a host diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-declare.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-declare.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-declare.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-declare.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -DECLARE

DECLARE

DECLARE — define a cursor

Synopsis

DECLARE cursor_name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR prepared_name
+DECLARE

DECLARE

DECLARE — define a cursor

Synopsis

DECLARE cursor_name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR prepared_name
 DECLARE cursor_name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] CURSOR [ { WITH | WITHOUT } HOLD ] FOR query

Description

DECLARE declares a cursor for iterating over the result set of a prepared statement. This command has slightly different semantics from the direct SQL diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-describe.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-describe.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-describe.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-describe.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -DESCRIBE

DESCRIBE

DESCRIBE — obtain information about a prepared statement or result set

Synopsis

DESCRIBE [ OUTPUT ] prepared_name USING [ SQL ] DESCRIPTOR descriptor_name
+DESCRIBE

DESCRIBE

DESCRIBE — obtain information about a prepared statement or result set

Synopsis

DESCRIBE [ OUTPUT ] prepared_name USING [ SQL ] DESCRIPTOR descriptor_name
 DESCRIBE [ OUTPUT ] prepared_name INTO [ SQL ] DESCRIPTOR descriptor_name
 DESCRIBE [ OUTPUT ] prepared_name INTO sqlda_name

Description

DESCRIBE retrieves metadata information about the result columns contained in a prepared statement, without diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-disconnect.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-disconnect.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-disconnect.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-disconnect.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -DISCONNECT

DISCONNECT

DISCONNECT — terminate a database connection

Synopsis

DISCONNECT connection_name
+DISCONNECT

DISCONNECT

DISCONNECT — terminate a database connection

Synopsis

DISCONNECT connection_name
 DISCONNECT [ CURRENT ]
 DISCONNECT DEFAULT
 DISCONNECT ALL

Description

DISCONNECT closes a connection (or all diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-execute-immediate.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-execute-immediate.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-execute-immediate.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-execute-immediate.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -EXECUTE IMMEDIATE

EXECUTE IMMEDIATE

EXECUTE IMMEDIATE — dynamically prepare and execute a statement

Synopsis

EXECUTE IMMEDIATE string

Description

EXECUTE IMMEDIATE immediately prepares and +EXECUTE IMMEDIATE

EXECUTE IMMEDIATE

EXECUTE IMMEDIATE — dynamically prepare and execute a statement

Synopsis

EXECUTE IMMEDIATE string

Description

EXECUTE IMMEDIATE immediately prepares and executes a dynamically specified SQL statement, without retrieving result rows.

Parameters

string

A literal C string or a host variable containing the SQL diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-get-descriptor.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-get-descriptor.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-get-descriptor.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-get-descriptor.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -GET DESCRIPTOR

GET DESCRIPTOR

GET DESCRIPTOR — get information from an SQL descriptor area

Synopsis

GET DESCRIPTOR descriptor_name :cvariable = descriptor_header_item [, ... ]
+GET DESCRIPTOR

GET DESCRIPTOR

GET DESCRIPTOR — get information from an SQL descriptor area

Synopsis

GET DESCRIPTOR descriptor_name :cvariable = descriptor_header_item [, ... ]
 GET DESCRIPTOR descriptor_name VALUE column_number :cvariable = descriptor_item [, ... ]

Description

GET DESCRIPTOR retrieves information about a query result set from an SQL descriptor area and stores it into host variables. A descriptor area is typically populated diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-open.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-open.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-open.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-open.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -OPEN

OPEN

OPEN — open a dynamic cursor

Synopsis

OPEN cursor_name
+OPEN

OPEN

OPEN — open a dynamic cursor

Synopsis

OPEN cursor_name
 OPEN cursor_name USING value [, ... ]
 OPEN cursor_name USING SQL DESCRIPTOR descriptor_name

Description

OPEN opens a cursor and optionally binds actual values to the placeholders in the cursor's declaration. diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-prepare.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-prepare.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-prepare.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-prepare.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -PREPARE

PREPARE

PREPARE — prepare a statement for execution

Synopsis

PREPARE name FROM string

Description

PREPARE prepares a statement dynamically +PREPARE

PREPARE

PREPARE — prepare a statement for execution

Synopsis

PREPARE name FROM string

Description

PREPARE prepares a statement dynamically specified as a string for execution. This is different from the direct SQL statement PREPARE, which can also be used in embedded programs. The EXECUTE diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-set-autocommit.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-set-autocommit.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-set-autocommit.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-set-autocommit.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -SET AUTOCOMMIT

SET AUTOCOMMIT

SET AUTOCOMMIT — set the autocommit behavior of the current session

Synopsis

SET AUTOCOMMIT { = | TO } { ON | OFF }

Description

SET AUTOCOMMIT sets the autocommit behavior of +SET AUTOCOMMIT

SET AUTOCOMMIT

SET AUTOCOMMIT — set the autocommit behavior of the current session

Synopsis

SET AUTOCOMMIT { = | TO } { ON | OFF }

Description

SET AUTOCOMMIT sets the autocommit behavior of the current database session. By default, embedded SQL programs are not in autocommit mode, so COMMIT needs to be issued explicitly when diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-set-connection.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-set-connection.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-set-connection.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-set-connection.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -SET CONNECTION

SET CONNECTION

SET CONNECTION — select a database connection

Synopsis

SET CONNECTION [ TO | = ] connection_name

Description

SET CONNECTION sets the current +SET CONNECTION

SET CONNECTION

SET CONNECTION — select a database connection

Synopsis

SET CONNECTION [ TO | = ] connection_name

Description

SET CONNECTION sets the current database connection, which is the one that all commands use unless overridden.

Parameters

connection_name

A database connection name established by diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-set-descriptor.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-set-descriptor.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-set-descriptor.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-set-descriptor.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -SET DESCRIPTOR

SET DESCRIPTOR

SET DESCRIPTOR — set information in an SQL descriptor area

Synopsis

SET DESCRIPTOR descriptor_name descriptor_header_item = value [, ... ]
+SET DESCRIPTOR

SET DESCRIPTOR

SET DESCRIPTOR — set information in an SQL descriptor area

Synopsis

SET DESCRIPTOR descriptor_name descriptor_header_item = value [, ... ]
 SET DESCRIPTOR descriptor_name VALUE number descriptor_item = value [, ...]

Description

SET DESCRIPTOR populates an SQL descriptor area with values. The descriptor area is then typically used to bind parameters in a prepared query execution. diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-type.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-type.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-type.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-type.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -TYPE

TYPE

TYPE — define a new data type

Synopsis

TYPE type_name IS ctype

Description

The TYPE command defines a new C type. It is +TYPE

TYPE

TYPE — define a new data type

Synopsis

TYPE type_name IS ctype

Description

The TYPE command defines a new C type. It is equivalent to putting a typedef into a declare section.

This command is only recognized when ecpg is diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-var.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-var.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-var.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-var.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -VAR

VAR

VAR — define a variable

Synopsis

VAR varname IS ctype

Description

The VAR command assigns a new C data type +VAR

VAR

VAR — define a variable

Synopsis

VAR varname IS ctype

Description

The VAR command assigns a new C data type to a host variable. The host variable must be previously declared in a declare section.

Parameters

varname

A C variable name. diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-whenever.html postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-whenever.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-sql-whenever.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-sql-whenever.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -WHENEVER

WHENEVER

WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

Synopsis

WHENEVER { NOT FOUND | SQLERROR | SQLWARNING } action

Description

Define a behavior which is called on the special cases (Rows not +WHENEVER

WHENEVER

WHENEVER — specify the action to be taken when an SQL statement causes a specific class condition to be raised

Synopsis

WHENEVER { NOT FOUND | SQLERROR | SQLWARNING } action

Description

Define a behavior which is called on the special cases (Rows not found, SQL warnings or errors) in the result of SQL execution.

Parameters

See Section 35.8.1 for a description of the parameters. diff -Nru postgresql-10-10.10/doc/src/sgml/html/ecpg-variables.html postgresql-10-10.12/doc/src/sgml/html/ecpg-variables.html --- postgresql-10-10.10/doc/src/sgml/html/ecpg-variables.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ecpg-variables.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -35.4. Using Host Variables

35.4. Using Host Variables

In Section 35.3 you saw how you can execute SQL +35.4. Using Host Variables

35.4. Using Host Variables

In Section 35.3 you saw how you can execute SQL statements from an embedded SQL program. Some of those statements only used fixed values and did not provide a way to insert user-supplied values into statements or have the program process diff -Nru postgresql-10-10.10/doc/src/sgml/html/encryption-options.html postgresql-10-10.12/doc/src/sgml/html/encryption-options.html --- postgresql-10-10.10/doc/src/sgml/html/encryption-options.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/encryption-options.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.8. Encryption Options

18.8. Encryption Options

PostgreSQL offers encryption at several +18.8. Encryption Options

18.8. Encryption Options

PostgreSQL offers encryption at several levels, and provides flexibility in protecting data from disclosure due to database server theft, unscrupulous administrators, and insecure networks. Encryption might also be required to secure diff -Nru postgresql-10-10.10/doc/src/sgml/html/errcodes-appendix.html postgresql-10-10.12/doc/src/sgml/html/errcodes-appendix.html --- postgresql-10-10.10/doc/src/sgml/html/errcodes-appendix.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/errcodes-appendix.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix A. PostgreSQL Error Codes

Appendix A. PostgreSQL Error Codes

All messages emitted by the PostgreSQL +Appendix A. PostgreSQL Error Codes

Appendix A. PostgreSQL Error Codes

All messages emitted by the PostgreSQL server are assigned five-character error codes that follow the SQL standard's conventions for SQLSTATE codes. Applications that need to know which error condition has occurred should usually @@ -17,7 +17,7 @@ does not recognize the specific error code might still be able to infer what to do from the error class.

Table A.1 lists all the error codes defined in - PostgreSQL 10.10. (Some are not actually + PostgreSQL 10.12. (Some are not actually used at present, but are defined by the SQL standard.) The error classes are also shown. For each error class there is a standard error code having the last three characters diff -Nru postgresql-10-10.10/doc/src/sgml/html/error-message-reporting.html postgresql-10-10.12/doc/src/sgml/html/error-message-reporting.html --- postgresql-10-10.10/doc/src/sgml/html/error-message-reporting.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/error-message-reporting.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -53.2. Reporting Errors Within the Server

53.2. Reporting Errors Within the Server

Error, warning, and log messages generated within the server code +53.2. Reporting Errors Within the Server

53.2. Reporting Errors Within the Server

Error, warning, and log messages generated within the server code should be created using ereport, or its older cousin elog. The use of this function is complex enough to require some explanation. diff -Nru postgresql-10-10.10/doc/src/sgml/html/error-style-guide.html postgresql-10-10.12/doc/src/sgml/html/error-style-guide.html --- postgresql-10-10.10/doc/src/sgml/html/error-style-guide.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/error-style-guide.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -53.3. Error Message Style Guide

53.3. Error Message Style Guide

This style guide is offered in the hope of maintaining a consistent, +53.3. Error Message Style Guide

53.3. Error Message Style Guide

This style guide is offered in the hope of maintaining a consistent, user-friendly style throughout all the messages generated by PostgreSQL.

What Goes Where

The primary message should be short, factual, and avoid reference to diff -Nru postgresql-10-10.10/doc/src/sgml/html/event-log-registration.html postgresql-10-10.12/doc/src/sgml/html/event-log-registration.html --- postgresql-10-10.10/doc/src/sgml/html/event-log-registration.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/event-log-registration.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.11. Registering Event Log on Windows

18.11. Registering Event Log on Windows

To register a Windows +18.11. Registering Event Log on Windows

18.11. Registering Event Log on Windows

To register a Windows event log library with the operating system, issue this command:

regsvr32 pgsql_library_directory/pgevent.dll

diff -Nru postgresql-10-10.10/doc/src/sgml/html/event-trigger-definition.html postgresql-10-10.12/doc/src/sgml/html/event-trigger-definition.html --- postgresql-10-10.10/doc/src/sgml/html/event-trigger-definition.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/event-trigger-definition.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -39.1. Overview of Event Trigger Behavior

39.1. Overview of Event Trigger Behavior

An event trigger fires whenever the event with which it is associated +39.1. Overview of Event Trigger Behavior

39.1. Overview of Event Trigger Behavior

An event trigger fires whenever the event with which it is associated occurs in the database in which it is defined. Currently, the only supported events are ddl_command_start, diff -Nru postgresql-10-10.10/doc/src/sgml/html/event-trigger-example.html postgresql-10-10.12/doc/src/sgml/html/event-trigger-example.html --- postgresql-10-10.10/doc/src/sgml/html/event-trigger-example.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/event-trigger-example.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -39.4. A Complete Event Trigger Example

39.4. A Complete Event Trigger Example

Here is a very simple example of an event trigger function written in C. +39.4. A Complete Event Trigger Example

39.4. A Complete Event Trigger Example

Here is a very simple example of an event trigger function written in C. (Examples of triggers written in procedural languages can be found in the documentation of the procedural languages.)

The function noddl raises an exception each time it is called. diff -Nru postgresql-10-10.10/doc/src/sgml/html/event-trigger-interface.html postgresql-10-10.12/doc/src/sgml/html/event-trigger-interface.html --- postgresql-10-10.10/doc/src/sgml/html/event-trigger-interface.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/event-trigger-interface.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -39.3. Writing Event Trigger Functions in C

39.3. Writing Event Trigger Functions in C

This section describes the low-level details of the interface to an +39.3. Writing Event Trigger Functions in C

39.3. Writing Event Trigger Functions in C

This section describes the low-level details of the interface to an event trigger function. This information is only needed when writing event trigger functions in C. If you are using a higher-level language then these details are handled for you. In most cases you should diff -Nru postgresql-10-10.10/doc/src/sgml/html/event-trigger-matrix.html postgresql-10-10.12/doc/src/sgml/html/event-trigger-matrix.html --- postgresql-10-10.10/doc/src/sgml/html/event-trigger-matrix.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/event-trigger-matrix.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,4 +1,4 @@ -39.2. Event Trigger Firing Matrix

39.2. Event Trigger Firing Matrix

Table 39.1 lists all commands +39.2. Event Trigger Firing Matrix

39.2. Event Trigger Firing Matrix

Table 39.1 lists all commands for which event triggers are supported.

Table 39.1. Event Trigger Support by Command Tag

Command Tagddl_command_startddl_command_endsql_droptable_rewriteNotes
ALTER AGGREGATEXX-- 
ALTER COLLATIONXX-- 
ALTER CONVERSIONXX-- 
ALTER DOMAINXX-- 
ALTER DEFAULT PRIVILEGESXX-- 
ALTER EXTENSIONXX-- 
ALTER FOREIGN DATA WRAPPERXX-- 
ALTER FOREIGN TABLEXXX- 
ALTER FUNCTIONXX-- 
ALTER LANGUAGEXX-- 
ALTER LARGE OBJECTXX-- 
ALTER MATERIALIZED VIEWXX-- 
ALTER OPERATORXX-- 
ALTER OPERATOR CLASSXX-- 
ALTER OPERATOR FAMILYXX-- 
ALTER POLICYXX-- 
ALTER PUBLICATIONXX-- 
ALTER SCHEMAXX-- 
ALTER SEQUENCEXX-- 
ALTER SERVERXX-- 
ALTER STATISTICSXX-- 
ALTER SUBSCRIPTIONXX-- 
ALTER TABLEXXXX 
ALTER TEXT SEARCH CONFIGURATIONXX-- 
ALTER TEXT SEARCH DICTIONARYXX-- 
ALTER TEXT SEARCH PARSERXX-- 
ALTER TEXT SEARCH TEMPLATEXX-- 
ALTER TRIGGERXX-- 
ALTER TYPEXX-X 
ALTER USER MAPPINGXX-- 
ALTER VIEWXX-- 
COMMENTXX--Only for local objects
CREATE ACCESS METHODXX-- 
CREATE AGGREGATEXX-- 
CREATE CASTXX-- 
CREATE COLLATIONXX-- 
CREATE CONVERSIONXX-- 
CREATE DOMAINXX-- 
CREATE EXTENSIONXX-- 
CREATE FOREIGN DATA WRAPPERXX-- 
CREATE FOREIGN TABLEXX-- 
CREATE FUNCTIONXX-- 
CREATE INDEXXX-- 
CREATE LANGUAGEXX-- 
CREATE MATERIALIZED VIEWXX-- 
CREATE OPERATORXX-- 
CREATE OPERATOR CLASSXX-- 
CREATE OPERATOR FAMILYXX-- 
CREATE POLICYXX-- 
CREATE PUBLICATIONXX-- 
CREATE RULEXX-- 
CREATE SCHEMAXX-- 
CREATE SEQUENCEXX-- 
CREATE SERVERXX-- 
CREATE STATISTICSXX-- 
CREATE SUBSCRIPTIONXX-- 
CREATE TABLEXX-- 
CREATE TABLE ASXX-- 
CREATE TEXT SEARCH CONFIGURATIONXX-- 
CREATE TEXT SEARCH DICTIONARYXX-- 
CREATE TEXT SEARCH PARSERXX-- 
CREATE TEXT SEARCH TEMPLATEXX-- 
CREATE TRIGGERXX-- 
CREATE TYPEXX-- 
CREATE USER MAPPINGXX-- 
CREATE VIEWXX-- 
DROP ACCESS METHODXXX- 
DROP AGGREGATEXXX- 
DROP CASTXXX- 
DROP COLLATIONXXX- 
DROP CONVERSIONXXX- 
DROP DOMAINXXX- 
DROP EXTENSIONXXX- 
DROP FOREIGN DATA WRAPPERXXX- 
DROP FOREIGN TABLEXXX- 
DROP FUNCTIONXXX- 
DROP INDEXXXX- 
DROP LANGUAGEXXX- 
DROP MATERIALIZED VIEWXXX- 
DROP OPERATORXXX- 
DROP OPERATOR CLASSXXX- 
DROP OPERATOR FAMILYXXX- 
DROP OWNEDXXX- 
DROP POLICYXXX- 
DROP PUBLICATIONXXX- 
DROP RULEXXX- 
DROP SCHEMAXXX- 
DROP SEQUENCEXXX- 
DROP SERVERXXX- 
DROP STATISTICSXXX- 
DROP SUBSCRIPTIONXXX- 
DROP TABLEXXX- 
DROP TEXT SEARCH CONFIGURATIONXXX- 
DROP TEXT SEARCH DICTIONARYXXX- 
DROP TEXT SEARCH PARSERXXX- 
DROP TEXT SEARCH TEMPLATEXXX- 
DROP TRIGGERXXX- 
DROP TYPEXXX- 
DROP USER MAPPINGXXX- 
DROP VIEWXXX- 
GRANTXX--Only for local objects
IMPORT FOREIGN SCHEMAXX-- 
REFRESH MATERIALIZED VIEWXX-- 
REVOKEXX--Only for local objects
SECURITY LABELXX--Only for local objects
SELECT INTOXX-- 

\ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/event-triggers.html postgresql-10-10.12/doc/src/sgml/html/event-triggers.html --- postgresql-10-10.10/doc/src/sgml/html/event-triggers.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/event-triggers.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 39. Event Triggers

Chapter 39. Event Triggers

To supplement the trigger mechanism discussed in Chapter 38, +Chapter 39. Event Triggers

Chapter 39. Event Triggers

To supplement the trigger mechanism discussed in Chapter 38, PostgreSQL also provides event triggers. Unlike regular triggers, which are attached to a single table and capture only DML events, event triggers are global to a particular database and are capable of diff -Nru postgresql-10-10.10/doc/src/sgml/html/event-trigger-table-rewrite-example.html postgresql-10-10.12/doc/src/sgml/html/event-trigger-table-rewrite-example.html --- postgresql-10-10.10/doc/src/sgml/html/event-trigger-table-rewrite-example.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/event-trigger-table-rewrite-example.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -39.5. A Table Rewrite Event Trigger Example

39.5. A Table Rewrite Event Trigger Example

Thanks to the table_rewrite event, it is possible to implement +39.5. A Table Rewrite Event Trigger Example

39.5. A Table Rewrite Event Trigger Example

Thanks to the table_rewrite event, it is possible to implement a table rewriting policy only allowing the rewrite in maintenance windows.

Here's an example implementing such a policy.

CREATE OR REPLACE FUNCTION no_rewrite()
diff -Nru postgresql-10-10.10/doc/src/sgml/html/executor.html postgresql-10-10.12/doc/src/sgml/html/executor.html
--- postgresql-10-10.10/doc/src/sgml/html/executor.html	2019-08-05 21:30:12.000000000 +0000
+++ postgresql-10-10.12/doc/src/sgml/html/executor.html	2020-02-10 22:31:57.000000000 +0000
@@ -1,5 +1,5 @@
 
-50.6. Executor

50.6. Executor

The executor takes the plan created by the +50.6. Executor

50.6. Executor

The executor takes the plan created by the planner/optimizer and recursively processes it to extract the required set of rows. This is essentially a demand-pull pipeline mechanism. Each time a plan node is called, it must deliver one more row, or diff -Nru postgresql-10-10.10/doc/src/sgml/html/explicit-joins.html postgresql-10-10.12/doc/src/sgml/html/explicit-joins.html --- postgresql-10-10.10/doc/src/sgml/html/explicit-joins.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/explicit-joins.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -14.3. Controlling the Planner with Explicit JOIN Clauses

14.3. Controlling the Planner with Explicit JOIN Clauses

It is possible +14.3. Controlling the Planner with Explicit JOIN Clauses

14.3. Controlling the Planner with Explicit JOIN Clauses

It is possible to control the query planner to some extent by using the explicit JOIN syntax. To see why this matters, we first need some background.

In a simple join query, such as: diff -Nru postgresql-10-10.10/doc/src/sgml/html/explicit-locking.html postgresql-10-10.12/doc/src/sgml/html/explicit-locking.html --- postgresql-10-10.10/doc/src/sgml/html/explicit-locking.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/explicit-locking.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -13.3. Explicit Locking

13.3. Explicit Locking

PostgreSQL provides various lock modes +13.3. Explicit Locking

13.3. Explicit Locking

PostgreSQL provides various lock modes to control concurrent access to data in tables. These modes can be used for application-controlled locking in situations where MVCC does not give the desired behavior. Also, diff -Nru postgresql-10-10.10/doc/src/sgml/html/extend-extensions.html postgresql-10-10.12/doc/src/sgml/html/extend-extensions.html --- postgresql-10-10.10/doc/src/sgml/html/extend-extensions.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/extend-extensions.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -37.15. Packaging Related Objects into an Extension

37.15. Packaging Related Objects into an Extension

A useful extension to PostgreSQL typically includes +37.15. Packaging Related Objects into an Extension

37.15. Packaging Related Objects into an Extension

A useful extension to PostgreSQL typically includes multiple SQL objects; for example, a new data type will require new functions, new operators, and probably new index operator classes. It is helpful to collect all these objects into a single package @@ -308,7 +308,7 @@ dynamically from one version to the next, you should provide update scripts that make the necessary changes to go from one version to the next. Update scripts have names following the pattern - extension--oldversion--newversion.sql + extension--old_version--target_version.sql (for example, foo--1.0--1.1.sql contains the commands to modify version 1.0 of extension foo into version 1.1). diff -Nru postgresql-10-10.10/doc/src/sgml/html/extend-how.html postgresql-10-10.12/doc/src/sgml/html/extend-how.html --- postgresql-10-10.10/doc/src/sgml/html/extend-how.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/extend-how.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -37.1. How Extensibility Works

37.1. How Extensibility Works

PostgreSQL is extensible because its operation is +37.1. How Extensibility Works

37.1. How Extensibility Works

PostgreSQL is extensible because its operation is catalog-driven. If you are familiar with standard relational database systems, you know that they store information about databases, tables, columns, etc., in what are diff -Nru postgresql-10-10.10/doc/src/sgml/html/extend.html postgresql-10-10.12/doc/src/sgml/html/extend.html --- postgresql-10-10.10/doc/src/sgml/html/extend.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/extend.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 37. Extending SQL

Chapter 37. Extending SQL

Table of Contents

37.1. How Extensibility Works
37.2. The PostgreSQL Type System
37.2.1. Base Types
37.2.2. Composite Types
37.2.3. Domains
37.2.4. Pseudo-Types
37.2.5. Polymorphic Types
37.3. User-defined Functions
37.4. Query Language (SQL) Functions
37.4.1. Arguments for SQL Functions
37.4.2. SQL Functions on Base Types
37.4.3. SQL Functions on Composite Types
37.4.4. SQL Functions with Output Parameters
37.4.5. SQL Functions with Variable Numbers of Arguments
37.4.6. SQL Functions with Default Values for Arguments
37.4.7. SQL Functions as Table Sources
37.4.8. SQL Functions Returning Sets
37.4.9. SQL Functions Returning TABLE
37.4.10. Polymorphic SQL Functions
37.4.11. SQL Functions with Collations
37.5. Function Overloading
37.6. Function Volatility Categories
37.7. Procedural Language Functions
37.8. Internal Functions
37.9. C-Language Functions
37.9.1. Dynamic Loading
37.9.2. Base Types in C-Language Functions
37.9.3. Version 1 Calling Conventions
37.9.4. Writing Code
37.9.5. Compiling and Linking Dynamically-loaded Functions
37.9.6. Composite-type Arguments
37.9.7. Returning Rows (Composite Types)
37.9.8. Returning Sets
37.9.9. Polymorphic Arguments and Return Types
37.9.10. Transform Functions
37.9.11. Shared Memory and LWLocks
37.9.12. Using C++ for Extensibility
37.10. User-defined Aggregates
37.10.1. Moving-Aggregate Mode
37.10.2. Polymorphic and Variadic Aggregates
37.10.3. Ordered-Set Aggregates
37.10.4. Partial Aggregation
37.10.5. Support Functions for Aggregates
37.11. User-defined Types
37.11.1. TOAST Considerations
37.12. User-defined Operators
37.13. Operator Optimization Information
37.13.1. COMMUTATOR
37.13.2. NEGATOR
37.13.3. RESTRICT
37.13.4. JOIN
37.13.5. HASHES
37.13.6. MERGES
37.14. Interfacing Extensions To Indexes
37.14.1. Index Methods and Operator Classes
37.14.2. Index Method Strategies
37.14.3. Index Method Support Routines
37.14.4. An Example
37.14.5. Operator Classes and Operator Families
37.14.6. System Dependencies on Operator Classes
37.14.7. Ordering Operators
37.14.8. Special Features of Operator Classes
37.15. Packaging Related Objects into an Extension
37.15.1. Defining Extension Objects
37.15.2. Extension Files
37.15.3. Extension Relocatability
37.15.4. Extension Configuration Tables
37.15.5. Extension Updates
37.15.6. Installing Extensions using Update Scripts
37.15.7. Extension Example
37.16. Extension Building Infrastructure

In the sections that follow, we will discuss how you +Chapter 37. Extending SQL

Chapter 37. Extending SQL

Table of Contents

37.1. How Extensibility Works
37.2. The PostgreSQL Type System
37.2.1. Base Types
37.2.2. Composite Types
37.2.3. Domains
37.2.4. Pseudo-Types
37.2.5. Polymorphic Types
37.3. User-defined Functions
37.4. Query Language (SQL) Functions
37.4.1. Arguments for SQL Functions
37.4.2. SQL Functions on Base Types
37.4.3. SQL Functions on Composite Types
37.4.4. SQL Functions with Output Parameters
37.4.5. SQL Functions with Variable Numbers of Arguments
37.4.6. SQL Functions with Default Values for Arguments
37.4.7. SQL Functions as Table Sources
37.4.8. SQL Functions Returning Sets
37.4.9. SQL Functions Returning TABLE
37.4.10. Polymorphic SQL Functions
37.4.11. SQL Functions with Collations
37.5. Function Overloading
37.6. Function Volatility Categories
37.7. Procedural Language Functions
37.8. Internal Functions
37.9. C-Language Functions
37.9.1. Dynamic Loading
37.9.2. Base Types in C-Language Functions
37.9.3. Version 1 Calling Conventions
37.9.4. Writing Code
37.9.5. Compiling and Linking Dynamically-loaded Functions
37.9.6. Composite-type Arguments
37.9.7. Returning Rows (Composite Types)
37.9.8. Returning Sets
37.9.9. Polymorphic Arguments and Return Types
37.9.10. Transform Functions
37.9.11. Shared Memory and LWLocks
37.9.12. Using C++ for Extensibility
37.10. User-defined Aggregates
37.10.1. Moving-Aggregate Mode
37.10.2. Polymorphic and Variadic Aggregates
37.10.3. Ordered-Set Aggregates
37.10.4. Partial Aggregation
37.10.5. Support Functions for Aggregates
37.11. User-defined Types
37.11.1. TOAST Considerations
37.12. User-defined Operators
37.13. Operator Optimization Information
37.13.1. COMMUTATOR
37.13.2. NEGATOR
37.13.3. RESTRICT
37.13.4. JOIN
37.13.5. HASHES
37.13.6. MERGES
37.14. Interfacing Extensions To Indexes
37.14.1. Index Methods and Operator Classes
37.14.2. Index Method Strategies
37.14.3. Index Method Support Routines
37.14.4. An Example
37.14.5. Operator Classes and Operator Families
37.14.6. System Dependencies on Operator Classes
37.14.7. Ordering Operators
37.14.8. Special Features of Operator Classes
37.15. Packaging Related Objects into an Extension
37.15.1. Defining Extension Objects
37.15.2. Extension Files
37.15.3. Extension Relocatability
37.15.4. Extension Configuration Tables
37.15.5. Extension Updates
37.15.6. Installing Extensions using Update Scripts
37.15.7. Extension Example
37.16. Extension Building Infrastructure

In the sections that follow, we will discuss how you can extend the PostgreSQL SQL query language by adding: diff -Nru postgresql-10-10.10/doc/src/sgml/html/extend-pgxs.html postgresql-10-10.12/doc/src/sgml/html/extend-pgxs.html --- postgresql-10-10.10/doc/src/sgml/html/extend-pgxs.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/extend-pgxs.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -37.16. Extension Building Infrastructure

37.16. Extension Building Infrastructure

If you are thinking about distributing your +37.16. Extension Building Infrastructure

37.16. Extension Building Infrastructure

If you are thinking about distributing your PostgreSQL extension modules, setting up a portable build system for them can be fairly difficult. Therefore the PostgreSQL installation provides a build diff -Nru postgresql-10-10.10/doc/src/sgml/html/extend-type-system.html postgresql-10-10.12/doc/src/sgml/html/extend-type-system.html --- postgresql-10-10.10/doc/src/sgml/html/extend-type-system.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/extend-type-system.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -37.2. The PostgreSQL Type System

37.2. The PostgreSQL Type System

PostgreSQL data types are divided into base +37.2. The PostgreSQL Type System

37.2. The PostgreSQL Type System

PostgreSQL data types are divided into base types, composite types, domains, and pseudo-types.

37.2.1. Base Types

Base types are those, like int4, that are implemented below the level of the SQL language diff -Nru postgresql-10-10.10/doc/src/sgml/html/external-admin-tools.html postgresql-10-10.12/doc/src/sgml/html/external-admin-tools.html --- postgresql-10-10.10/doc/src/sgml/html/external-admin-tools.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/external-admin-tools.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -H.2. Administration Tools

H.2. Administration Tools

There are several administration tools available for +H.2. Administration Tools

H.2. Administration Tools

There are several administration tools available for PostgreSQL. The most popular is pgAdmin, and there are several commercially available ones as well. diff -Nru postgresql-10-10.10/doc/src/sgml/html/external-extensions.html postgresql-10-10.12/doc/src/sgml/html/external-extensions.html --- postgresql-10-10.10/doc/src/sgml/html/external-extensions.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/external-extensions.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -H.4. Extensions

H.4. Extensions

PostgreSQL is designed to be easily extensible. For +H.4. Extensions

H.4. Extensions

PostgreSQL is designed to be easily extensible. For this reason, extensions loaded into the database can function just like features that are built in. The contrib/ directory shipped with the source code diff -Nru postgresql-10-10.10/doc/src/sgml/html/external-interfaces.html postgresql-10-10.12/doc/src/sgml/html/external-interfaces.html --- postgresql-10-10.10/doc/src/sgml/html/external-interfaces.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/external-interfaces.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -H.1. Client Interfaces

H.1. Client Interfaces

There are only two client interfaces included in the base +H.1. Client Interfaces

H.1. Client Interfaces

There are only two client interfaces included in the base PostgreSQL distribution:

  • libpq is included because it is the primary C language interface, and because many other client interfaces diff -Nru postgresql-10-10.10/doc/src/sgml/html/external-pl.html postgresql-10-10.12/doc/src/sgml/html/external-pl.html --- postgresql-10-10.10/doc/src/sgml/html/external-pl.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/external-pl.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -H.3. Procedural Languages

    H.3. Procedural Languages

    PostgreSQL includes several procedural +H.3. Procedural Languages

    H.3. Procedural Languages

    PostgreSQL includes several procedural languages with the base distribution: PL/pgSQL, PL/Tcl, PL/Perl, and PL/Python.

    In addition, there are a number of procedural languages that are developed diff -Nru postgresql-10-10.10/doc/src/sgml/html/external-projects.html postgresql-10-10.12/doc/src/sgml/html/external-projects.html --- postgresql-10-10.10/doc/src/sgml/html/external-projects.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/external-projects.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix H. External Projects

    Appendix H. External Projects

    PostgreSQL is a complex software project, +Appendix H. External Projects

    Appendix H. External Projects

    PostgreSQL is a complex software project, and managing the project is difficult. We have found that many enhancements to PostgreSQL can be more efficiently developed separately from the core project. diff -Nru postgresql-10-10.10/doc/src/sgml/html/fdw-callbacks.html postgresql-10-10.12/doc/src/sgml/html/fdw-callbacks.html --- postgresql-10-10.10/doc/src/sgml/html/fdw-callbacks.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/fdw-callbacks.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -56.2. Foreign Data Wrapper Callback Routines

    56.2. Foreign Data Wrapper Callback Routines

    The FDW handler function returns a palloc'd FdwRoutine +56.2. Foreign Data Wrapper Callback Routines

    56.2. Foreign Data Wrapper Callback Routines

    The FDW handler function returns a palloc'd FdwRoutine struct containing pointers to the callback functions described below. The scan-related functions are required, the rest are optional.

    The FdwRoutine struct type is declared in @@ -421,9 +421,11 @@ row-by-row approach is necessary, but it can be inefficient. If it is possible for the foreign server to determine which rows should be modified without actually retrieving them, and if there are no local - triggers which would affect the operation, then it is possible to - arrange things so that the entire operation is performed on the remote - server. The interfaces described below make this possible. + structures which would affect the operation (row-level local triggers + or WITH CHECK OPTION constraints from parent views), + then it is possible to arrange things so that the entire operation is + performed on the remote server. The interfaces described below make + this possible.

    bool
     PlanDirectModify (PlannerInfo *root,
                       ModifyTable *plan,
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/fdw-functions.html postgresql-10-10.12/doc/src/sgml/html/fdw-functions.html
    --- postgresql-10-10.10/doc/src/sgml/html/fdw-functions.html	2019-08-05 21:30:15.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/fdw-functions.html	2020-02-10 22:31:59.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -56.1. Foreign Data Wrapper Functions

    56.1. Foreign Data Wrapper Functions

    The FDW author needs to implement a handler function, and optionally +56.1. Foreign Data Wrapper Functions

    56.1. Foreign Data Wrapper Functions

    The FDW author needs to implement a handler function, and optionally a validator function. Both functions must be written in a compiled language such as C, using the version-1 interface. For details on C language calling conventions and dynamic loading, diff -Nru postgresql-10-10.10/doc/src/sgml/html/fdwhandler.html postgresql-10-10.12/doc/src/sgml/html/fdwhandler.html --- postgresql-10-10.10/doc/src/sgml/html/fdwhandler.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/fdwhandler.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 56. Writing A Foreign Data Wrapper

    Chapter 56. Writing A Foreign Data Wrapper

    All operations on a foreign table are handled through its foreign data +Chapter 56. Writing A Foreign Data Wrapper

    Chapter 56. Writing A Foreign Data Wrapper

    All operations on a foreign table are handled through its foreign data wrapper, which consists of a set of functions that the core server calls. The foreign data wrapper is responsible for fetching data from the remote data source and returning it to the diff -Nru postgresql-10-10.10/doc/src/sgml/html/fdw-helpers.html postgresql-10-10.12/doc/src/sgml/html/fdw-helpers.html --- postgresql-10-10.10/doc/src/sgml/html/fdw-helpers.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/fdw-helpers.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -56.3. Foreign Data Wrapper Helper Functions

    56.3. Foreign Data Wrapper Helper Functions

    Several helper functions are exported from the core server so that +56.3. Foreign Data Wrapper Helper Functions

    56.3. Foreign Data Wrapper Helper Functions

    Several helper functions are exported from the core server so that authors of foreign data wrappers can get easy access to attributes of FDW-related objects, such as FDW options. To use any of these functions, you need to include the header file diff -Nru postgresql-10-10.10/doc/src/sgml/html/fdw-planning.html postgresql-10-10.12/doc/src/sgml/html/fdw-planning.html --- postgresql-10-10.10/doc/src/sgml/html/fdw-planning.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/fdw-planning.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -56.4. Foreign Data Wrapper Query Planning

    56.4. Foreign Data Wrapper Query Planning

    The FDW callback functions GetForeignRelSize, +56.4. Foreign Data Wrapper Query Planning

    56.4. Foreign Data Wrapper Query Planning

    The FDW callback functions GetForeignRelSize, GetForeignPaths, GetForeignPlan, PlanForeignModify, GetForeignJoinPaths, GetForeignUpperPaths, and PlanDirectModify diff -Nru postgresql-10-10.10/doc/src/sgml/html/fdw-row-locking.html postgresql-10-10.12/doc/src/sgml/html/fdw-row-locking.html --- postgresql-10-10.10/doc/src/sgml/html/fdw-row-locking.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/fdw-row-locking.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -56.5. Row Locking in Foreign Data Wrappers

    56.5. Row Locking in Foreign Data Wrappers

    If an FDW's underlying storage mechanism has a concept of locking +56.5. Row Locking in Foreign Data Wrappers

    56.5. Row Locking in Foreign Data Wrappers

    If an FDW's underlying storage mechanism has a concept of locking individual rows to prevent concurrent updates of those rows, it is usually worthwhile for the FDW to perform row-level locking with as close an approximation as practical to the semantics used in diff -Nru postgresql-10-10.10/doc/src/sgml/html/features.html postgresql-10-10.12/doc/src/sgml/html/features.html --- postgresql-10-10.10/doc/src/sgml/html/features.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/features.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,6 @@ -Appendix D. SQL Conformance

    Appendix D. SQL Conformance

    This section attempts to outline to what extent +Appendix D. SQL Conformance

    Appendix D. SQL Conformance

    This section attempts to outline to what extent PostgreSQL conforms to the current SQL standard. The following information is not a full statement of conformance, but it presents the main topics in as much detail as is @@ -8,7 +9,8 @@ Language SQL”. A revised version of the standard is released from time to time; the most recent update appearing in 2011. The 2011 version is referred to as ISO/IEC 9075:2011, or simply as SQL:2011. - The versions prior to that were SQL:2008, SQL:2003, SQL:1999, and SQL-92. Each version + The versions prior to that were SQL:2008, SQL:2006, SQL:2003, SQL:1999, + and SQL-92. Each version replaces the previous one, so claims of conformance to earlier versions have no official merit. PostgreSQL development aims for diff -Nru postgresql-10-10.10/doc/src/sgml/html/features-sql-standard.html postgresql-10-10.12/doc/src/sgml/html/features-sql-standard.html --- postgresql-10-10.10/doc/src/sgml/html/features-sql-standard.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/features-sql-standard.html 2020-02-10 22:32:01.000000000 +0000 @@ -1,3 +1,3 @@ -D.1. Supported Features

    D.1. Supported Features

    IdentifierPackageDescriptionComment
    B012 Embedded C 
    B021 Direct SQL 
    E011CoreNumeric data types 
    E011-01CoreINTEGER and SMALLINT data types 
    E011-02CoreREAL, DOUBLE PRECISION, and FLOAT data types 
    E011-03CoreDECIMAL and NUMERIC data types 
    E011-04CoreArithmetic operators 
    E011-05CoreNumeric comparison 
    E011-06CoreImplicit casting among the numeric data types 
    E021CoreCharacter data types 
    E021-01CoreCHARACTER data type 
    E021-02CoreCHARACTER VARYING data type 
    E021-03CoreCharacter literals 
    E021-04CoreCHARACTER_LENGTH functiontrims trailing spaces from CHARACTER values before counting
    E021-05CoreOCTET_LENGTH function 
    E021-06CoreSUBSTRING function 
    E021-07CoreCharacter concatenation 
    E021-08CoreUPPER and LOWER functions 
    E021-09CoreTRIM function 
    E021-10CoreImplicit casting among the character string types 
    E021-11CorePOSITION function 
    E021-12CoreCharacter comparison 
    E031CoreIdentifiers 
    E031-01CoreDelimited identifiers 
    E031-02CoreLower case identifiers 
    E031-03CoreTrailing underscore 
    E051CoreBasic query specification 
    E051-01CoreSELECT DISTINCT 
    E051-02CoreGROUP BY clause 
    E051-04CoreGROUP BY can contain columns not in <select list> 
    E051-05CoreSelect list items can be renamed 
    E051-06CoreHAVING clause 
    E051-07CoreQualified * in select list 
    E051-08CoreCorrelation names in the FROM clause 
    E051-09CoreRename columns in the FROM clause 
    E061CoreBasic predicates and search conditions 
    E061-01CoreComparison predicate 
    E061-02CoreBETWEEN predicate 
    E061-03CoreIN predicate with list of values 
    E061-04CoreLIKE predicate 
    E061-05CoreLIKE predicate ESCAPE clause 
    E061-06CoreNULL predicate 
    E061-07CoreQuantified comparison predicate 
    E061-08CoreEXISTS predicate 
    E061-09CoreSubqueries in comparison predicate 
    E061-11CoreSubqueries in IN predicate 
    E061-12CoreSubqueries in quantified comparison predicate 
    E061-13CoreCorrelated subqueries 
    E061-14CoreSearch condition 
    E071CoreBasic query expressions 
    E071-01CoreUNION DISTINCT table operator 
    E071-02CoreUNION ALL table operator 
    E071-03CoreEXCEPT DISTINCT table operator 
    E071-05CoreColumns combined via table operators need not have exactly the same data type 
    E071-06CoreTable operators in subqueries 
    E081CoreBasic Privileges 
    E081-01CoreSELECT privilege 
    E081-02CoreDELETE privilege 
    E081-03CoreINSERT privilege at the table level 
    E081-04CoreUPDATE privilege at the table level 
    E081-05CoreUPDATE privilege at the column level 
    E081-06CoreREFERENCES privilege at the table level 
    E081-07CoreREFERENCES privilege at the column level 
    E081-08CoreWITH GRANT OPTION 
    E081-09CoreUSAGE privilege 
    E081-10CoreEXECUTE privilege 
    E091CoreSet functions 
    E091-01CoreAVG 
    E091-02CoreCOUNT 
    E091-03CoreMAX 
    E091-04CoreMIN 
    E091-05CoreSUM 
    E091-06CoreALL quantifier 
    E091-07CoreDISTINCT quantifier 
    E101CoreBasic data manipulation 
    E101-01CoreINSERT statement 
    E101-03CoreSearched UPDATE statement 
    E101-04CoreSearched DELETE statement 
    E111CoreSingle row SELECT statement 
    E121CoreBasic cursor support 
    E121-01CoreDECLARE CURSOR 
    E121-02CoreORDER BY columns need not be in select list 
    E121-03CoreValue expressions in ORDER BY clause 
    E121-04CoreOPEN statement 
    E121-06CorePositioned UPDATE statement 
    E121-07CorePositioned DELETE statement 
    E121-08CoreCLOSE statement 
    E121-10CoreFETCH statement implicit NEXT 
    E121-17CoreWITH HOLD cursors 
    E131CoreNull value support (nulls in lieu of values) 
    E141CoreBasic integrity constraints 
    E141-01CoreNOT NULL constraints 
    E141-02CoreUNIQUE constraints of NOT NULL columns 
    E141-03CorePRIMARY KEY constraints 
    E141-04CoreBasic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action 
    E141-06CoreCHECK constraints 
    E141-07CoreColumn defaults 
    E141-08CoreNOT NULL inferred on PRIMARY KEY 
    E141-10CoreNames in a foreign key can be specified in any order 
    E151CoreTransaction support 
    E151-01CoreCOMMIT statement 
    E151-02CoreROLLBACK statement 
    E152CoreBasic SET TRANSACTION statement 
    E152-01CoreSET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause 
    E152-02CoreSET TRANSACTION statement: READ ONLY and READ WRITE clauses 
    E153CoreUpdatable queries with subqueries 
    E161CoreSQL comments using leading double minus 
    E171CoreSQLSTATE support 
    F021CoreBasic information schema 
    F021-01CoreCOLUMNS view 
    F021-02CoreTABLES view 
    F021-03CoreVIEWS view 
    F021-04CoreTABLE_CONSTRAINTS view 
    F021-05CoreREFERENTIAL_CONSTRAINTS view 
    F021-06CoreCHECK_CONSTRAINTS view 
    F031CoreBasic schema manipulation 
    F031-01CoreCREATE TABLE statement to create persistent base tables 
    F031-02CoreCREATE VIEW statement 
    F031-03CoreGRANT statement 
    F031-04CoreALTER TABLE statement: ADD COLUMN clause 
    F031-13CoreDROP TABLE statement: RESTRICT clause 
    F031-16CoreDROP VIEW statement: RESTRICT clause 
    F031-19CoreREVOKE statement: RESTRICT clause 
    F032 CASCADE drop behavior 
    F033 ALTER TABLE statement: DROP COLUMN clause 
    F034 Extended REVOKE statement 
    F034-01 REVOKE statement performed by other than the owner of a schema object 
    F034-02 REVOKE statement: GRANT OPTION FOR clause 
    F034-03 REVOKE statement to revoke a privilege that the grantee has WITH GRANT OPTION 
    F041CoreBasic joined table 
    F041-01CoreInner join (but not necessarily the INNER keyword) 
    F041-02CoreINNER keyword 
    F041-03CoreLEFT OUTER JOIN 
    F041-04CoreRIGHT OUTER JOIN 
    F041-05CoreOuter joins can be nested 
    F041-07CoreThe inner table in a left or right outer join can also be used in an inner join 
    F041-08CoreAll comparison operators are supported (rather than just =) 
    F051CoreBasic date and time 
    F051-01CoreDATE data type (including support of DATE literal) 
    F051-02CoreTIME data type (including support of TIME literal) with fractional seconds precision of at least 0 
    F051-03CoreTIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 
    F051-04CoreComparison predicate on DATE, TIME, and TIMESTAMP data types 
    F051-05CoreExplicit CAST between datetime types and character string types 
    F051-06CoreCURRENT_DATE 
    F051-07CoreLOCALTIME 
    F051-08CoreLOCALTIMESTAMP 
    F052Enhanced datetime facilitiesIntervals and datetime arithmetic 
    F053 OVERLAPS predicate 
    F081CoreUNION and EXCEPT in views 
    F111 Isolation levels other than SERIALIZABLE 
    F111-01 READ UNCOMMITTED isolation level 
    F111-02 READ COMMITTED isolation level 
    F111-03 REPEATABLE READ isolation level 
    F131CoreGrouped operations 
    F131-01CoreWHERE, GROUP BY, and HAVING clauses supported in queries with grouped views 
    F131-02CoreMultiple tables supported in queries with grouped views 
    F131-03CoreSet functions supported in queries with grouped views 
    F131-04CoreSubqueries with GROUP BY and HAVING clauses and grouped views 
    F131-05CoreSingle row SELECT with GROUP BY and HAVING clauses and grouped views 
    F171 Multiple schemas per user 
    F191Enhanced integrity managementReferential delete actions 
    F200 TRUNCATE TABLE statement 
    F201CoreCAST function 
    F202 TRUNCATE TABLE: identity column restart option 
    F221CoreExplicit defaults 
    F222 INSERT statement: DEFAULT VALUES clause 
    F231 Privilege tables 
    F231-01 TABLE_PRIVILEGES view 
    F231-02 COLUMN_PRIVILEGES view 
    F231-03 USAGE_PRIVILEGES view 
    F251 Domain support 
    F261CoreCASE expression 
    F261-01CoreSimple CASE 
    F261-02CoreSearched CASE 
    F261-03CoreNULLIF 
    F261-04CoreCOALESCE 
    F262 Extended CASE expression 
    F271 Compound character literals 
    F281 LIKE enhancements 
    F302 INTERSECT table operator 
    F302-01 INTERSECT DISTINCT table operator 
    F302-02 INTERSECT ALL table operator 
    F304 EXCEPT ALL table operator 
    F311-01CoreCREATE SCHEMA 
    F311-02CoreCREATE TABLE for persistent base tables 
    F311-03CoreCREATE VIEW 
    F311-04CoreCREATE VIEW: WITH CHECK OPTION 
    F311-05CoreGRANT statement 
    F321 User authorization 
    F361 Subprogram support 
    F381 Extended schema manipulation 
    F381-01 ALTER TABLE statement: ALTER COLUMN clause 
    F381-02 ALTER TABLE statement: ADD CONSTRAINT clause 
    F381-03 ALTER TABLE statement: DROP CONSTRAINT clause 
    F382 Alter column data type 
    F383 Set column not null clause 
    F384 Drop identity property clause 
    F386 Set identity column generation clause 
    F391 Long identifiers 
    F392 Unicode escapes in identifiers 
    F393 Unicode escapes in literals 
    F401 Extended joined table 
    F401-01 NATURAL JOIN 
    F401-02 FULL OUTER JOIN 
    F401-04 CROSS JOIN 
    F402 Named column joins for LOBs, arrays, and multisets 
    F411Enhanced datetime facilitiesTime zone specificationdifferences regarding literal interpretation
    F421 National character 
    F431 Read-only scrollable cursors 
    F431-01 FETCH with explicit NEXT 
    F431-02 FETCH FIRST 
    F431-03 FETCH LAST 
    F431-04 FETCH PRIOR 
    F431-05 FETCH ABSOLUTE 
    F431-06 FETCH RELATIVE 
    F441 Extended set function support 
    F442 Mixed column references in set functions 
    F471CoreScalar subquery values 
    F481CoreExpanded NULL predicate 
    F491Enhanced integrity managementConstraint management 
    F501CoreFeatures and conformance views 
    F501-01CoreSQL_FEATURES view 
    F501-02CoreSQL_SIZING view 
    F501-03CoreSQL_LANGUAGES view 
    F502 Enhanced documentation tables 
    F502-01 SQL_SIZING_PROFILES view 
    F502-02 SQL_IMPLEMENTATION_INFO view 
    F502-03 SQL_PACKAGES view 
    F531 Temporary tables 
    F555Enhanced datetime facilitiesEnhanced seconds precision 
    F561 Full value expressions 
    F571 Truth value tests 
    F591 Derived tables 
    F611 Indicator data types 
    F641 Row and table constructors 
    F651 Catalog name qualifiers 
    F661 Simple tables 
    F672 Retrospective check constraints 
    F690 Collation supportbut no character set support
    F692 Extended collation support 
    F701Enhanced integrity managementReferential update actions 
    F711 ALTER domain 
    F731 INSERT column privileges 
    F751 View CHECK enhancements 
    F761 Session management 
    F762 CURRENT_CATALOG 
    F763 CURRENT_SCHEMA 
    F771 Connection management 
    F781 Self-referencing operations 
    F791 Insensitive cursors 
    F801 Full set function 
    F850 Top-level <order by clause> in <query expression> 
    F851 <order by clause> in subqueries 
    F852 Top-level <order by clause> in views 
    F855 Nested <order by clause> in <query expression> 
    F856 Nested <fetch first clause> in <query expression> 
    F857 Top-level <fetch first clause> in <query expression> 
    F858 <fetch first clause> in subqueries 
    F859 Top-level <fetch first clause> in views 
    F860 <fetch first row count> in <fetch first clause> 
    F861 Top-level <result offset clause> in <query expression> 
    F862 <result offset clause> in subqueries 
    F863 Nested <result offset clause> in <query expression> 
    F864 Top-level <result offset clause> in views 
    F865 <offset row count> in <result offset clause> 
    S071Enhanced object supportSQL paths in function and type name resolution 
    S092 Arrays of user-defined types 
    S095 Array constructors by query 
    S096 Optional array bounds 
    S098 ARRAY_AGG 
    S111Enhanced object supportONLY in query expressions 
    S201 SQL-invoked routines on arrays 
    S201-01 Array parameters 
    S201-02 Array as result type of functions 
    S211Enhanced object supportUser-defined cast functions 
    S301 Enhanced UNNEST 
    T031 BOOLEAN data type 
    T071 BIGINT data type 
    T121 WITH (excluding RECURSIVE) in query expression 
    T122 WITH (excluding RECURSIVE) in subquery 
    T131 Recursive query 
    T132 Recursive query in subquery 
    T141 SIMILAR predicate 
    T151 DISTINCT predicate 
    T152 DISTINCT predicate with negation 
    T171 LIKE clause in table definition 
    T172 AS subquery clause in table definition 
    T173 Extended LIKE clause in table definition 
    T174 Identity columns 
    T177 Sequence generator support: simple restart option 
    T178 Identity columns: simple restart option 
    T191Enhanced integrity managementReferential action RESTRICT 
    T201Enhanced integrity managementComparable data types for referential constraints 
    T211-01Active database, Enhanced integrity managementTriggers activated on UPDATE, INSERT, or DELETE of one base table 
    T211-02Active database, Enhanced integrity managementBEFORE triggers 
    T211-03Active database, Enhanced integrity managementAFTER triggers 
    T211-04Active database, Enhanced integrity managementFOR EACH ROW triggers 
    T211-05Active database, Enhanced integrity managementAbility to specify a search condition that must be true before the trigger is invoked 
    T211-07Active database, Enhanced integrity managementTRIGGER privilege 
    T212Enhanced integrity managementEnhanced trigger capability 
    T213 INSTEAD OF triggers 
    T231 Sensitive cursors 
    T241 START TRANSACTION statement 
    T271 Savepoints 
    T281 SELECT privilege with column granularity 
    T285 Enhanced derived column names 
    T312 OVERLAY function 
    T321-01CoreUser-defined functions with no overloading 
    T321-03CoreFunction invocation 
    T321-06CoreROUTINES view 
    T321-07CorePARAMETERS view 
    T323 Explicit security for external routines 
    T325 Qualified SQL parameter references 
    T331 Basic roles 
    T341 Overloading of SQL-invoked functions and procedures 
    T351 Bracketed SQL comments (/*...*/ comments) 
    T431OLAPExtended grouping capabilities 
    T432 Nested and concatenated GROUPING SETS 
    T433 Multiargument GROUPING function 
    T441 ABS and MOD functions 
    T461 Symmetric BETWEEN predicate 
    T491 LATERAL derived table 
    T501 Enhanced EXISTS predicate 
    T551 Optional key words for default syntax 
    T581 Regular expression substring function 
    T591 UNIQUE constraints of possibly null columns 
    T611OLAPElementary OLAP operations 
    T613 Sampling 
    T614 NTILE function 
    T615 LEAD and LAG functions 
    T617 FIRST_VALUE and LAST_VALUE function 
    T621 Enhanced numeric functions 
    T631CoreIN predicate with one list element 
    T651 SQL-schema statements in SQL routines 
    T655 Cyclically dependent routines 
    X010 XML type 
    X011 Arrays of XML type 
    X014 Attributes of XML type 
    X016 Persistent XML values 
    X020 XMLConcat 
    X031 XMLElement 
    X032 XMLForest 
    X034 XMLAgg 
    X035 XMLAgg: ORDER BY option 
    X036 XMLComment 
    X037 XMLPI 
    X040 Basic table mapping 
    X041 Basic table mapping: nulls absent 
    X042 Basic table mapping: null as nil 
    X043 Basic table mapping: table as forest 
    X044 Basic table mapping: table as element 
    X045 Basic table mapping: with target namespace 
    X046 Basic table mapping: data mapping 
    X047 Basic table mapping: metadata mapping 
    X048 Basic table mapping: base64 encoding of binary strings 
    X049 Basic table mapping: hex encoding of binary strings 
    X050 Advanced table mapping 
    X051 Advanced table mapping: nulls absent 
    X052 Advanced table mapping: null as nil 
    X053 Advanced table mapping: table as forest 
    X054 Advanced table mapping: table as element 
    X055 Advanced table mapping: with target namespace 
    X056 Advanced table mapping: data mapping 
    X057 Advanced table mapping: metadata mapping 
    X058 Advanced table mapping: base64 encoding of binary strings 
    X059 Advanced table mapping: hex encoding of binary strings 
    X060 XMLParse: character string input and CONTENT option 
    X061 XMLParse: character string input and DOCUMENT option 
    X070 XMLSerialize: character string serialization and CONTENT option 
    X071 XMLSerialize: character string serialization and DOCUMENT option 
    X072 XMLSerialize: character string serialization 
    X090 XML document predicate 
    X120 XML parameters in SQL routines 
    X121 XML parameters in external routines 
    X222 XML passing mechanism BY REF 
    X301 XMLTable: derived column list option 
    X302 XMLTable: ordinality column option 
    X303 XMLTable: column default option 
    X304 XMLTable: passing a context item 
    X400 Name and identifier mapping 
    X410 Alter column data type: XML type 

    +D.1. Supported Features

    D.1. Supported Features

    IdentifierPackageDescriptionComment
    B012 Embedded C 
    B021 Direct SQL 
    E011CoreNumeric data types 
    E011-01CoreINTEGER and SMALLINT data types 
    E011-02CoreREAL, DOUBLE PRECISION, and FLOAT data types 
    E011-03CoreDECIMAL and NUMERIC data types 
    E011-04CoreArithmetic operators 
    E011-05CoreNumeric comparison 
    E011-06CoreImplicit casting among the numeric data types 
    E021CoreCharacter data types 
    E021-01CoreCHARACTER data type 
    E021-02CoreCHARACTER VARYING data type 
    E021-03CoreCharacter literals 
    E021-04CoreCHARACTER_LENGTH functiontrims trailing spaces from CHARACTER values before counting
    E021-05CoreOCTET_LENGTH function 
    E021-06CoreSUBSTRING function 
    E021-07CoreCharacter concatenation 
    E021-08CoreUPPER and LOWER functions 
    E021-09CoreTRIM function 
    E021-10CoreImplicit casting among the character string types 
    E021-11CorePOSITION function 
    E021-12CoreCharacter comparison 
    E031CoreIdentifiers 
    E031-01CoreDelimited identifiers 
    E031-02CoreLower case identifiers 
    E031-03CoreTrailing underscore 
    E051CoreBasic query specification 
    E051-01CoreSELECT DISTINCT 
    E051-02CoreGROUP BY clause 
    E051-04CoreGROUP BY can contain columns not in <select list> 
    E051-05CoreSelect list items can be renamed 
    E051-06CoreHAVING clause 
    E051-07CoreQualified * in select list 
    E051-08CoreCorrelation names in the FROM clause 
    E051-09CoreRename columns in the FROM clause 
    E061CoreBasic predicates and search conditions 
    E061-01CoreComparison predicate 
    E061-02CoreBETWEEN predicate 
    E061-03CoreIN predicate with list of values 
    E061-04CoreLIKE predicate 
    E061-05CoreLIKE predicate ESCAPE clause 
    E061-06CoreNULL predicate 
    E061-07CoreQuantified comparison predicate 
    E061-08CoreEXISTS predicate 
    E061-09CoreSubqueries in comparison predicate 
    E061-11CoreSubqueries in IN predicate 
    E061-12CoreSubqueries in quantified comparison predicate 
    E061-13CoreCorrelated subqueries 
    E061-14CoreSearch condition 
    E071CoreBasic query expressions 
    E071-01CoreUNION DISTINCT table operator 
    E071-02CoreUNION ALL table operator 
    E071-03CoreEXCEPT DISTINCT table operator 
    E071-05CoreColumns combined via table operators need not have exactly the same data type 
    E071-06CoreTable operators in subqueries 
    E081CoreBasic Privileges 
    E081-01CoreSELECT privilege 
    E081-02CoreDELETE privilege 
    E081-03CoreINSERT privilege at the table level 
    E081-04CoreUPDATE privilege at the table level 
    E081-05CoreUPDATE privilege at the column level 
    E081-06CoreREFERENCES privilege at the table level 
    E081-07CoreREFERENCES privilege at the column level 
    E081-08CoreWITH GRANT OPTION 
    E081-09CoreUSAGE privilege 
    E081-10CoreEXECUTE privilege 
    E091CoreSet functions 
    E091-01CoreAVG 
    E091-02CoreCOUNT 
    E091-03CoreMAX 
    E091-04CoreMIN 
    E091-05CoreSUM 
    E091-06CoreALL quantifier 
    E091-07CoreDISTINCT quantifier 
    E101CoreBasic data manipulation 
    E101-01CoreINSERT statement 
    E101-03CoreSearched UPDATE statement 
    E101-04CoreSearched DELETE statement 
    E111CoreSingle row SELECT statement 
    E121CoreBasic cursor support 
    E121-01CoreDECLARE CURSOR 
    E121-02CoreORDER BY columns need not be in select list 
    E121-03CoreValue expressions in ORDER BY clause 
    E121-04CoreOPEN statement 
    E121-06CorePositioned UPDATE statement 
    E121-07CorePositioned DELETE statement 
    E121-08CoreCLOSE statement 
    E121-10CoreFETCH statement implicit NEXT 
    E121-17CoreWITH HOLD cursors 
    E131CoreNull value support (nulls in lieu of values) 
    E141CoreBasic integrity constraints 
    E141-01CoreNOT NULL constraints 
    E141-02CoreUNIQUE constraints of NOT NULL columns 
    E141-03CorePRIMARY KEY constraints 
    E141-04CoreBasic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action 
    E141-06CoreCHECK constraints 
    E141-07CoreColumn defaults 
    E141-08CoreNOT NULL inferred on PRIMARY KEY 
    E141-10CoreNames in a foreign key can be specified in any order 
    E151CoreTransaction support 
    E151-01CoreCOMMIT statement 
    E151-02CoreROLLBACK statement 
    E152CoreBasic SET TRANSACTION statement 
    E152-01CoreSET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause 
    E152-02CoreSET TRANSACTION statement: READ ONLY and READ WRITE clauses 
    E153CoreUpdatable queries with subqueries 
    E161CoreSQL comments using leading double minus 
    E171CoreSQLSTATE support 
    F021CoreBasic information schema 
    F021-01CoreCOLUMNS view 
    F021-02CoreTABLES view 
    F021-03CoreVIEWS view 
    F021-04CoreTABLE_CONSTRAINTS view 
    F021-05CoreREFERENTIAL_CONSTRAINTS view 
    F021-06CoreCHECK_CONSTRAINTS view 
    F031CoreBasic schema manipulation 
    F031-01CoreCREATE TABLE statement to create persistent base tables 
    F031-02CoreCREATE VIEW statement 
    F031-03CoreGRANT statement 
    F031-04CoreALTER TABLE statement: ADD COLUMN clause 
    F031-13CoreDROP TABLE statement: RESTRICT clause 
    F031-16CoreDROP VIEW statement: RESTRICT clause 
    F031-19CoreREVOKE statement: RESTRICT clause 
    F032 CASCADE drop behavior 
    F033 ALTER TABLE statement: DROP COLUMN clause 
    F034 Extended REVOKE statement 
    F034-01 REVOKE statement performed by other than the owner of a schema object 
    F034-02 REVOKE statement: GRANT OPTION FOR clause 
    F034-03 REVOKE statement to revoke a privilege that the grantee has WITH GRANT OPTION 
    F041CoreBasic joined table 
    F041-01CoreInner join (but not necessarily the INNER keyword) 
    F041-02CoreINNER keyword 
    F041-03CoreLEFT OUTER JOIN 
    F041-04CoreRIGHT OUTER JOIN 
    F041-05CoreOuter joins can be nested 
    F041-07CoreThe inner table in a left or right outer join can also be used in an inner join 
    F041-08CoreAll comparison operators are supported (rather than just =) 
    F051CoreBasic date and time 
    F051-01CoreDATE data type (including support of DATE literal) 
    F051-02CoreTIME data type (including support of TIME literal) with fractional seconds precision of at least 0 
    F051-03CoreTIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 
    F051-04CoreComparison predicate on DATE, TIME, and TIMESTAMP data types 
    F051-05CoreExplicit CAST between datetime types and character string types 
    F051-06CoreCURRENT_DATE 
    F051-07CoreLOCALTIME 
    F051-08CoreLOCALTIMESTAMP 
    F052Enhanced datetime facilitiesIntervals and datetime arithmetic 
    F053 OVERLAPS predicate 
    F081CoreUNION and EXCEPT in views 
    F111 Isolation levels other than SERIALIZABLE 
    F111-01 READ UNCOMMITTED isolation level 
    F111-02 READ COMMITTED isolation level 
    F111-03 REPEATABLE READ isolation level 
    F131CoreGrouped operations 
    F131-01CoreWHERE, GROUP BY, and HAVING clauses supported in queries with grouped views 
    F131-02CoreMultiple tables supported in queries with grouped views 
    F131-03CoreSet functions supported in queries with grouped views 
    F131-04CoreSubqueries with GROUP BY and HAVING clauses and grouped views 
    F131-05CoreSingle row SELECT with GROUP BY and HAVING clauses and grouped views 
    F171 Multiple schemas per user 
    F191Enhanced integrity managementReferential delete actions 
    F200 TRUNCATE TABLE statement 
    F201CoreCAST function 
    F202 TRUNCATE TABLE: identity column restart option 
    F221CoreExplicit defaults 
    F222 INSERT statement: DEFAULT VALUES clause 
    F231 Privilege tables 
    F231-01 TABLE_PRIVILEGES view 
    F231-02 COLUMN_PRIVILEGES view 
    F231-03 USAGE_PRIVILEGES view 
    F251 Domain support 
    F261CoreCASE expression 
    F261-01CoreSimple CASE 
    F261-02CoreSearched CASE 
    F261-03CoreNULLIF 
    F261-04CoreCOALESCE 
    F262 Extended CASE expression 
    F271 Compound character literals 
    F281 LIKE enhancements 
    F302 INTERSECT table operator 
    F302-01 INTERSECT DISTINCT table operator 
    F302-02 INTERSECT ALL table operator 
    F304 EXCEPT ALL table operator 
    F311-01CoreCREATE SCHEMA 
    F311-02CoreCREATE TABLE for persistent base tables 
    F311-03CoreCREATE VIEW 
    F311-04CoreCREATE VIEW: WITH CHECK OPTION 
    F311-05CoreGRANT statement 
    F321 User authorization 
    F361 Subprogram support 
    F381 Extended schema manipulation 
    F381-01 ALTER TABLE statement: ALTER COLUMN clause 
    F381-02 ALTER TABLE statement: ADD CONSTRAINT clause 
    F381-03 ALTER TABLE statement: DROP CONSTRAINT clause 
    F382 Alter column data type 
    F383 Set column not null clause 
    F384 Drop identity property clause 
    F386 Set identity column generation clause 
    F391 Long identifiers 
    F392 Unicode escapes in identifiers 
    F393 Unicode escapes in literals 
    F401 Extended joined table 
    F401-01 NATURAL JOIN 
    F401-02 FULL OUTER JOIN 
    F401-04 CROSS JOIN 
    F402 Named column joins for LOBs, arrays, and multisets 
    F411Enhanced datetime facilitiesTime zone specificationdifferences regarding literal interpretation
    F421 National character 
    F431 Read-only scrollable cursors 
    F431-01 FETCH with explicit NEXT 
    F431-02 FETCH FIRST 
    F431-03 FETCH LAST 
    F431-04 FETCH PRIOR 
    F431-05 FETCH ABSOLUTE 
    F431-06 FETCH RELATIVE 
    F441 Extended set function support 
    F442 Mixed column references in set functions 
    F471CoreScalar subquery values 
    F481CoreExpanded NULL predicate 
    F491Enhanced integrity managementConstraint management 
    F501CoreFeatures and conformance views 
    F501-01CoreSQL_FEATURES view 
    F501-02CoreSQL_SIZING view 
    F501-03CoreSQL_LANGUAGES view 
    F502 Enhanced documentation tables 
    F502-01 SQL_SIZING_PROFILES view 
    F502-02 SQL_IMPLEMENTATION_INFO view 
    F502-03 SQL_PACKAGES view 
    F531 Temporary tables 
    F555Enhanced datetime facilitiesEnhanced seconds precision 
    F561 Full value expressions 
    F571 Truth value tests 
    F591 Derived tables 
    F611 Indicator data types 
    F641 Row and table constructors 
    F651 Catalog name qualifiers 
    F661 Simple tables 
    F672 Retrospective check constraints 
    F690 Collation supportbut no character set support
    F692 Extended collation support 
    F701Enhanced integrity managementReferential update actions 
    F711 ALTER domain 
    F731 INSERT column privileges 
    F751 View CHECK enhancements 
    F761 Session management 
    F762 CURRENT_CATALOG 
    F763 CURRENT_SCHEMA 
    F771 Connection management 
    F781 Self-referencing operations 
    F791 Insensitive cursors 
    F801 Full set function 
    F850 Top-level <order by clause> in <query expression> 
    F851 <order by clause> in subqueries 
    F852 Top-level <order by clause> in views 
    F855 Nested <order by clause> in <query expression> 
    F856 Nested <fetch first clause> in <query expression> 
    F857 Top-level <fetch first clause> in <query expression> 
    F858 <fetch first clause> in subqueries 
    F859 Top-level <fetch first clause> in views 
    F860 <fetch first row count> in <fetch first clause> 
    F861 Top-level <result offset clause> in <query expression> 
    F862 <result offset clause> in subqueries 
    F863 Nested <result offset clause> in <query expression> 
    F864 Top-level <result offset clause> in views 
    F865 <offset row count> in <result offset clause> 
    S071Enhanced object supportSQL paths in function and type name resolution 
    S092 Arrays of user-defined types 
    S095 Array constructors by query 
    S096 Optional array bounds 
    S098 ARRAY_AGG 
    S111Enhanced object supportONLY in query expressions 
    S201 SQL-invoked routines on arrays 
    S201-01 Array parameters 
    S201-02 Array as result type of functions 
    S211Enhanced object supportUser-defined cast functions 
    S301 Enhanced UNNEST 
    T031 BOOLEAN data type 
    T071 BIGINT data type 
    T121 WITH (excluding RECURSIVE) in query expression 
    T122 WITH (excluding RECURSIVE) in subquery 
    T131 Recursive query 
    T132 Recursive query in subquery 
    T141 SIMILAR predicate 
    T151 DISTINCT predicate 
    T152 DISTINCT predicate with negation 
    T171 LIKE clause in table definition 
    T172 AS subquery clause in table definition 
    T173 Extended LIKE clause in table definition 
    T174 Identity columns 
    T177 Sequence generator support: simple restart option 
    T178 Identity columns: simple restart option 
    T191Enhanced integrity managementReferential action RESTRICT 
    T201Enhanced integrity managementComparable data types for referential constraints 
    T211-01Active database, Enhanced integrity managementTriggers activated on UPDATE, INSERT, or DELETE of one base table 
    T211-02Active database, Enhanced integrity managementBEFORE triggers 
    T211-03Active database, Enhanced integrity managementAFTER triggers 
    T211-04Active database, Enhanced integrity managementFOR EACH ROW triggers 
    T211-05Active database, Enhanced integrity managementAbility to specify a search condition that must be true before the trigger is invoked 
    T211-07Active database, Enhanced integrity managementTRIGGER privilege 
    T212Enhanced integrity managementEnhanced trigger capability 
    T213 INSTEAD OF triggers 
    T231 Sensitive cursors 
    T241 START TRANSACTION statement 
    T271 Savepoints 
    T281 SELECT privilege with column granularity 
    T285 Enhanced derived column names 
    T312 OVERLAY function 
    T321-01CoreUser-defined functions with no overloading 
    T321-03CoreFunction invocation 
    T321-06CoreROUTINES view 
    T321-07CorePARAMETERS view 
    T323 Explicit security for external routines 
    T325 Qualified SQL parameter references 
    T331 Basic roles 
    T341 Overloading of SQL-invoked functions and procedures 
    T351 Bracketed SQL comments (/*...*/ comments) 
    T431OLAPExtended grouping capabilities 
    T432 Nested and concatenated GROUPING SETS 
    T433 Multiargument GROUPING function 
    T441 ABS and MOD functions 
    T461 Symmetric BETWEEN predicate 
    T491 LATERAL derived table 
    T501 Enhanced EXISTS predicate 
    T551 Optional key words for default syntax 
    T581 Regular expression substring function 
    T591 UNIQUE constraints of possibly null columns 
    T611OLAPElementary OLAP operations 
    T613 Sampling 
    T614 NTILE function 
    T615 LEAD and LAG functions 
    T617 FIRST_VALUE and LAST_VALUE function 
    T621 Enhanced numeric functions 
    T631CoreIN predicate with one list element 
    T651 SQL-schema statements in SQL routines 
    T655 Cyclically dependent routines 
    X010 XML type 
    X011 Arrays of XML type 
    X014 Attributes of XML type 
    X016 Persistent XML values 
    X020 XMLConcat 
    X031 XMLElement 
    X032 XMLForest 
    X034 XMLAgg 
    X035 XMLAgg: ORDER BY option 
    X036 XMLComment 
    X037 XMLPI 
    X040 Basic table mapping 
    X041 Basic table mapping: nulls absent 
    X042 Basic table mapping: null as nil 
    X043 Basic table mapping: table as forest 
    X044 Basic table mapping: table as element 
    X045 Basic table mapping: with target namespace 
    X046 Basic table mapping: data mapping 
    X047 Basic table mapping: metadata mapping 
    X048 Basic table mapping: base64 encoding of binary strings 
    X049 Basic table mapping: hex encoding of binary strings 
    X050 Advanced table mapping 
    X051 Advanced table mapping: nulls absent 
    X052 Advanced table mapping: null as nil 
    X053 Advanced table mapping: table as forest 
    X054 Advanced table mapping: table as element 
    X055 Advanced table mapping: with target namespace 
    X056 Advanced table mapping: data mapping 
    X057 Advanced table mapping: metadata mapping 
    X058 Advanced table mapping: base64 encoding of binary strings 
    X059 Advanced table mapping: hex encoding of binary strings 
    X060 XMLParse: character string input and CONTENT option 
    X061 XMLParse: character string input and DOCUMENT option 
    X070 XMLSerialize: character string serialization and CONTENT option 
    X071 XMLSerialize: character string serialization and DOCUMENT option 
    X072 XMLSerialize: character string serialization 
    X090 XML document predicate 
    X120 XML parameters in SQL routines 
    X121 XML parameters in external routines 
    X222 XML passing mechanism BY REF 
    X301 XMLTable: derived column list option 
    X302 XMLTable: ordinality column option 
    X303 XMLTable: column default option 
    X304 XMLTable: passing a context itemmust be XML DOCUMENT
    X400 Name and identifier mapping 
    X410 Alter column data type: XML type 

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/file-fdw.html postgresql-10-10.12/doc/src/sgml/html/file-fdw.html --- postgresql-10-10.10/doc/src/sgml/html/file-fdw.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/file-fdw.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.15. file_fdw

    F.15. file_fdw

    The file_fdw module provides the foreign-data wrapper +F.15. file_fdw

    F.15. file_fdw

    The file_fdw module provides the foreign-data wrapper file_fdw, which can be used to access data files in the server's file system, or to execute programs on the server and read their output. The data file or program output must be in a format diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-admin.html postgresql-10-10.12/doc/src/sgml/html/functions-admin.html --- postgresql-10-10.10/doc/src/sgml/html/functions-admin.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-admin.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -9.26. System Administration Functions

    9.26. System Administration Functions

    The functions described in this section are used to control and +9.26. System Administration Functions

    9.26. System Administration Functions

    The functions described in this section are used to control and monitor a PostgreSQL installation.

    9.26.1. Configuration Settings Functions

    Table 9.77 shows the functions available to query and alter run-time configuration parameters. diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-aggregate.html postgresql-10-10.12/doc/src/sgml/html/functions-aggregate.html --- postgresql-10-10.10/doc/src/sgml/html/functions-aggregate.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-aggregate.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.20. Aggregate Functions

    9.20. Aggregate Functions

    Aggregate functions compute a single result +9.20. Aggregate Functions

    9.20. Aggregate Functions

    Aggregate functions compute a single result from a set of input values. The built-in general-purpose aggregate functions are listed in Table 9.52 and statistical aggregates in Table 9.53. @@ -21,7 +21,7 @@

same as argument data type Noinput arrays concatenated into array of one higher dimension (inputs must all have same dimensionality, - and cannot be empty or NULL)
+ and cannot be empty or null)
avg(expression) smallint, int, @@ -30,7 +30,7 @@ numeric for any integer-type argument, double precision for a floating-point argument, otherwise the same as the argument data type - Yesthe average (arithmetic mean) of all input values
+ Yesthe average (arithmetic mean) of all non-null input values
bit_and(expression) smallint, int, bigint, or bit @@ -59,27 +59,29 @@ json_agg(expression) any json - Noaggregates values as a JSON array
+ Noaggregates values, including nulls, as a JSON array
jsonb_agg(expression) any jsonb - Noaggregates values as a JSON array
+ Noaggregates values, including nulls, as a JSON array
json_object_agg(name, value) (any, any) json - Noaggregates name/value pairs as a JSON object
+ Noaggregates name/value pairs as a JSON object; values can be + null, but not names
jsonb_object_agg(name, value) (any, any) jsonb - Noaggregates name/value pairs as a JSON object
+ Noaggregates name/value pairs as a JSON object; values can be + null, but not names
max(expression) any numeric, string, date/time, network, or enum type, - or arrays of these typessame as argument typeYes maximum value of expression across all input + or arrays of these typessame as argument typeYes maximum value of expression across all non-null input values
min(expression) any numeric, string, date/time, network, or enum type, - or arrays of these typessame as argument typeYes minimum value of expression across all input + or arrays of these typessame as argument typeYes minimum value of expression across all non-null input values
string_agg(expression, @@ -87,7 +89,7 @@ (text, text) or (bytea, bytea) same as argument types - Noinput values concatenated into a string, separated by delimiter
+ Nonon-null input values concatenated into a string, separated by delimiter
sum(expression) smallint, int, bigint, real, double @@ -97,11 +99,13 @@ int arguments, numeric for bigint arguments, otherwise the same as the argument data type - Yessum of expression across all input values
+ Yessum of expression + across all non-null input values
xmlagg(expression) xml xml - Noconcatenation of XML values (see also Section 9.14.1.7)

It should be noted that except for count, +

Noconcatenation of non-null XML values + (see also Section 9.14.1.7)

It should be noted that except for count, these functions return a null value when no rows are selected. In particular, sum of no rows returns null, not zero as one might expect, and array_agg diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-array.html postgresql-10-10.12/doc/src/sgml/html/functions-array.html --- postgresql-10-10.10/doc/src/sgml/html/functions-array.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-array.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,8 +1,10 @@ -9.18. Array Functions and Operators

9.18. Array Functions and Operators

Table 9.48 shows the operators +9.18. Array Functions and Operators

9.18. Array Functions and Operators

Table 9.48 shows the operators available for array types. -

Table 9.48. Array Operators

OperatorDescriptionExampleResult
= equalARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]t
<> not equalARRAY[1,2,3] <> ARRAY[1,2,4]t
< less thanARRAY[1,2,3] < ARRAY[1,2,4]t
> greater thanARRAY[1,4,3] > ARRAY[1,2,4]t
<= less than or equalARRAY[1,2,3] <= ARRAY[1,2,3]t
>= greater than or equalARRAY[1,4,3] >= ARRAY[1,4,3]t
@> containsARRAY[1,4,3] @> ARRAY[3,1]t
<@ is contained byARRAY[2,7] <@ ARRAY[1,7,4,2,6]t
&& overlap (have elements in common)ARRAY[1,4,3] && ARRAY[2,1]t
|| array-to-array concatenationARRAY[1,2,3] || ARRAY[4,5,6]{1,2,3,4,5,6}
|| array-to-array concatenationARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]{{1,2,3},{4,5,6},{7,8,9}}
|| element-to-array concatenation3 || ARRAY[4,5,6]{3,4,5,6}
|| array-to-element concatenationARRAY[4,5,6] || 7{4,5,6,7}

Array comparisons compare the array contents element-by-element, - using the default B-tree comparison function for the element data type. +

Table 9.48. Array Operators

OperatorDescriptionExampleResult
= equalARRAY[1.1,2.1,3.1]::int[] = ARRAY[1,2,3]t
<> not equalARRAY[1,2,3] <> ARRAY[1,2,4]t
< less thanARRAY[1,2,3] < ARRAY[1,2,4]t
> greater thanARRAY[1,4,3] > ARRAY[1,2,4]t
<= less than or equalARRAY[1,2,3] <= ARRAY[1,2,3]t
>= greater than or equalARRAY[1,4,3] >= ARRAY[1,4,3]t
@> containsARRAY[1,4,3] @> ARRAY[3,1,3]t
<@ is contained byARRAY[2,2,7] <@ ARRAY[1,7,4,2,6]t
&& overlap (have elements in common)ARRAY[1,4,3] && ARRAY[2,1]t
|| array-to-array concatenationARRAY[1,2,3] || ARRAY[4,5,6]{1,2,3,4,5,6}
|| array-to-array concatenationARRAY[1,2,3] || ARRAY[[4,5,6],[7,8,9]]{{1,2,3},{4,5,6},{7,8,9}}
|| element-to-array concatenation3 || ARRAY[4,5,6]{3,4,5,6}
|| array-to-element concatenationARRAY[4,5,6] || 7{4,5,6,7}

The array ordering operators (<, + >=, etc) compare the array contents + element-by-element, using the default B-tree comparison function for + the element data type, and sort based on the first difference. In multidimensional arrays the elements are visited in row-major order (last subscript varies most rapidly). If the contents of two arrays are equal but the dimensionality is @@ -11,13 +13,19 @@ PostgreSQL prior to 8.2: older versions would claim that two arrays with the same contents were equal, even if the number of dimensions or subscript ranges were different.) +

The array containment operators (<@ + and @>) consider one array to be contained in + another one if each of its elements appears in the other one. + Duplicates are not treated specially, thus ARRAY[1] + and ARRAY[1,1] are each considered to contain the + other.

See Section 8.15 for more details about array operator behavior. See Section 11.2 for more details about which operators support indexed operations.

Table 9.49 shows the functions available for use with array types. See Section 8.15 for more information and examples of the use of these functions. -

Table 9.49. Array Functions

FunctionReturn TypeDescriptionExampleResult
array_append(anyarray, anyelement) +

Table 9.49. Array Functions

FunctionReturn TypeDescriptionExampleResult
array_append(anyarray, anyelement) anyarrayappend an element to the end of an arrayarray_append(ARRAY[1,2], 3){1,2,3}
array_cat(anyarray, anyarray) diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-binarystring.html postgresql-10-10.12/doc/src/sgml/html/functions-binarystring.html --- postgresql-10-10.10/doc/src/sgml/html/functions-binarystring.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-binarystring.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -9.5. Binary String Functions and Operators

9.5. Binary String Functions and Operators

This section describes functions and operators for examining and +9.5. Binary String Functions and Operators

9.5. Binary String Functions and Operators

This section describes functions and operators for examining and manipulating values of type bytea.

SQL defines some string functions that use key words, rather than commas, to separate diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-bitstring.html postgresql-10-10.12/doc/src/sgml/html/functions-bitstring.html --- postgresql-10-10.10/doc/src/sgml/html/functions-bitstring.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-bitstring.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -9.6. Bit String Functions and Operators

9.6. Bit String Functions and Operators

This section describes functions and operators for examining and +9.6. Bit String Functions and Operators

9.6. Bit String Functions and Operators

This section describes functions and operators for examining and manipulating bit strings, that is values of the types bit and bit varying. Aside from the usual comparison operators, the operators diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-comparison.html postgresql-10-10.12/doc/src/sgml/html/functions-comparison.html --- postgresql-10-10.10/doc/src/sgml/html/functions-comparison.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-comparison.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -9.2. Comparison Functions and Operators

9.2. Comparison Functions and Operators

The usual comparison operators are available, as shown in Table 9.1. +9.2. Comparison Functions and Operators

9.2. Comparison Functions and Operators

The usual comparison operators are available, as shown in Table 9.1.

Table 9.1. Comparison Operators

OperatorDescription
< less than
> greater than
<= less than or equal to
>= greater than or equal to
= equal
<> or != not equal

Note

The != operator is converted to <> in the parser stage. It is not possible to implement != and diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-comparisons.html postgresql-10-10.12/doc/src/sgml/html/functions-comparisons.html --- postgresql-10-10.10/doc/src/sgml/html/functions-comparisons.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-comparisons.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -9.23. Row and Array Comparisons

9.23. Row and Array Comparisons

This section describes several specialized constructs for making +9.23. Row and Array Comparisons

9.23. Row and Array Comparisons

This section describes several specialized constructs for making multiple comparisons between groups of values. These forms are syntactically related to the subquery forms of the previous section, but do not involve subqueries. diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-conditional.html postgresql-10-10.12/doc/src/sgml/html/functions-conditional.html --- postgresql-10-10.10/doc/src/sgml/html/functions-conditional.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-conditional.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.17. Conditional Expressions

9.17. Conditional Expressions

This section describes the SQL-compliant conditional expressions +9.17. Conditional Expressions

9.17. Conditional Expressions

This section describes the SQL-compliant conditional expressions available in PostgreSQL.

Tip

If your needs go beyond the capabilities of these conditional expressions, you might want to consider writing a stored procedure diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-datetime.html postgresql-10-10.12/doc/src/sgml/html/functions-datetime.html --- postgresql-10-10.10/doc/src/sgml/html/functions-datetime.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-datetime.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.9. Date/Time Functions and Operators

9.9. Date/Time Functions and Operators

Table 9.30 shows the available +9.9. Date/Time Functions and Operators

9.9. Date/Time Functions and Operators

Table 9.30 shows the available functions for date/time value processing, with details appearing in the following subsections. Table 9.29 illustrates the behaviors of the basic arithmetic operators (+, diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-enum.html postgresql-10-10.12/doc/src/sgml/html/functions-enum.html --- postgresql-10-10.10/doc/src/sgml/html/functions-enum.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-enum.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.10. Enum Support Functions

9.10. Enum Support Functions

For enum types (described in Section 8.7), +9.10. Enum Support Functions

9.10. Enum Support Functions

For enum types (described in Section 8.7), there are several functions that allow cleaner programming without hard-coding particular values of an enum type. These are listed in Table 9.32. The examples diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-event-triggers.html postgresql-10-10.12/doc/src/sgml/html/functions-event-triggers.html --- postgresql-10-10.10/doc/src/sgml/html/functions-event-triggers.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-event-triggers.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -9.28. Event Trigger Functions

9.28. Event Trigger Functions

PostgreSQL provides these helper functions +9.28. Event Trigger Functions

9.28. Event Trigger Functions

PostgreSQL provides these helper functions to retrieve information from event triggers.

For more information about event triggers, see Chapter 39. diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-formatting.html postgresql-10-10.12/doc/src/sgml/html/functions-formatting.html --- postgresql-10-10.10/doc/src/sgml/html/functions-formatting.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-formatting.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.8. Data Type Formatting Functions

9.8. Data Type Formatting Functions

The PostgreSQL formatting functions +9.8. Data Type Formatting Functions

9.8. Data Type Formatting Functions

The PostgreSQL formatting functions provide a powerful set of tools for converting various data types (date/time, integer, floating point, numeric) to formatted strings and for converting from formatted strings to specific data types. diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-geometry.html postgresql-10-10.12/doc/src/sgml/html/functions-geometry.html --- postgresql-10-10.10/doc/src/sgml/html/functions-geometry.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-geometry.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.11. Geometric Functions and Operators

9.11. Geometric Functions and Operators

The geometric types point, box, +9.11. Geometric Functions and Operators

9.11. Geometric Functions and Operators

The geometric types point, box, lseg, line, path, polygon, and circle have a large set of native support functions and operators, shown in Table 9.33, Table 9.34, and Table 9.35. diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions.html postgresql-10-10.12/doc/src/sgml/html/functions.html --- postgresql-10-10.10/doc/src/sgml/html/functions.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 9. Functions and Operators

Chapter 9. Functions and Operators

Table of Contents

9.1. Logical Operators
9.2. Comparison Functions and Operators
9.3. Mathematical Functions and Operators
9.4. String Functions and Operators
9.4.1. format
9.5. Binary String Functions and Operators
9.6. Bit String Functions and Operators
9.7. Pattern Matching
9.7.1. LIKE
9.7.2. SIMILAR TO Regular Expressions
9.7.3. POSIX Regular Expressions
9.8. Data Type Formatting Functions
9.9. Date/Time Functions and Operators
9.9.1. EXTRACT, date_part
9.9.2. date_trunc
9.9.3. AT TIME ZONE
9.9.4. Current Date/Time
9.9.5. Delaying Execution
9.10. Enum Support Functions
9.11. Geometric Functions and Operators
9.12. Network Address Functions and Operators
9.13. Text Search Functions and Operators
9.14. XML Functions
9.14.1. Producing XML Content
9.14.2. XML Predicates
9.14.3. Processing XML
9.14.4. Mapping Tables to XML
9.15. JSON Functions and Operators
9.16. Sequence Manipulation Functions
9.17. Conditional Expressions
9.17.1. CASE
9.17.2. COALESCE
9.17.3. NULLIF
9.17.4. GREATEST and LEAST
9.18. Array Functions and Operators
9.19. Range Functions and Operators
9.20. Aggregate Functions
9.21. Window Functions
9.22. Subquery Expressions
9.22.1. EXISTS
9.22.2. IN
9.22.3. NOT IN
9.22.4. ANY/SOME
9.22.5. ALL
9.22.6. Single-row Comparison
9.23. Row and Array Comparisons
9.23.1. IN
9.23.2. NOT IN
9.23.3. ANY/SOME (array)
9.23.4. ALL (array)
9.23.5. Row Constructor Comparison
9.23.6. Composite Type Comparison
9.24. Set Returning Functions
9.25. System Information Functions
9.26. System Administration Functions
9.26.1. Configuration Settings Functions
9.26.2. Server Signaling Functions
9.26.3. Backup Control Functions
9.26.4. Recovery Control Functions
9.26.5. Snapshot Synchronization Functions
9.26.6. Replication Functions
9.26.7. Database Object Management Functions
9.26.8. Index Maintenance Functions
9.26.9. Generic File Access Functions
9.26.10. Advisory Lock Functions
9.27. Trigger Functions
9.28. Event Trigger Functions
9.28.1. Capturing Changes at Command End
9.28.2. Processing Objects Dropped by a DDL Command
9.28.3. Handling a Table Rewrite Event

PostgreSQL provides a large number of +Chapter 9. Functions and Operators

Chapter 9. Functions and Operators

Table of Contents

9.1. Logical Operators
9.2. Comparison Functions and Operators
9.3. Mathematical Functions and Operators
9.4. String Functions and Operators
9.4.1. format
9.5. Binary String Functions and Operators
9.6. Bit String Functions and Operators
9.7. Pattern Matching
9.7.1. LIKE
9.7.2. SIMILAR TO Regular Expressions
9.7.3. POSIX Regular Expressions
9.8. Data Type Formatting Functions
9.9. Date/Time Functions and Operators
9.9.1. EXTRACT, date_part
9.9.2. date_trunc
9.9.3. AT TIME ZONE
9.9.4. Current Date/Time
9.9.5. Delaying Execution
9.10. Enum Support Functions
9.11. Geometric Functions and Operators
9.12. Network Address Functions and Operators
9.13. Text Search Functions and Operators
9.14. XML Functions
9.14.1. Producing XML Content
9.14.2. XML Predicates
9.14.3. Processing XML
9.14.4. Mapping Tables to XML
9.15. JSON Functions and Operators
9.16. Sequence Manipulation Functions
9.17. Conditional Expressions
9.17.1. CASE
9.17.2. COALESCE
9.17.3. NULLIF
9.17.4. GREATEST and LEAST
9.18. Array Functions and Operators
9.19. Range Functions and Operators
9.20. Aggregate Functions
9.21. Window Functions
9.22. Subquery Expressions
9.22.1. EXISTS
9.22.2. IN
9.22.3. NOT IN
9.22.4. ANY/SOME
9.22.5. ALL
9.22.6. Single-row Comparison
9.23. Row and Array Comparisons
9.23.1. IN
9.23.2. NOT IN
9.23.3. ANY/SOME (array)
9.23.4. ALL (array)
9.23.5. Row Constructor Comparison
9.23.6. Composite Type Comparison
9.24. Set Returning Functions
9.25. System Information Functions
9.26. System Administration Functions
9.26.1. Configuration Settings Functions
9.26.2. Server Signaling Functions
9.26.3. Backup Control Functions
9.26.4. Recovery Control Functions
9.26.5. Snapshot Synchronization Functions
9.26.6. Replication Functions
9.26.7. Database Object Management Functions
9.26.8. Index Maintenance Functions
9.26.9. Generic File Access Functions
9.26.10. Advisory Lock Functions
9.27. Trigger Functions
9.28. Event Trigger Functions
9.28.1. Capturing Changes at Command End
9.28.2. Processing Objects Dropped by a DDL Command
9.28.3. Handling a Table Rewrite Event

PostgreSQL provides a large number of functions and operators for the built-in data types. Users can also define their own functions and operators, as described in Part V. The diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-info.html postgresql-10-10.12/doc/src/sgml/html/functions-info.html --- postgresql-10-10.10/doc/src/sgml/html/functions-info.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-info.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -9.25. System Information Functions

9.25. System Information Functions

Table 9.60 shows several +9.25. System Information Functions

9.25. System Information Functions

Table 9.60 shows several functions that extract session and system information.

In addition to the functions listed in this section, there are a number of functions related to the statistics system that also provide system diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-json.html postgresql-10-10.12/doc/src/sgml/html/functions-json.html --- postgresql-10-10.10/doc/src/sgml/html/functions-json.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-json.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.15. JSON Functions and Operators

9.15. JSON Functions and Operators

Table 9.43 shows the operators that +9.15. JSON Functions and Operators

9.15. JSON Functions and Operators

Table 9.43 shows the operators that are available for use with the two JSON data types (see Section 8.14).

Table 9.43. json and jsonb Operators

OperatorRight Operand TypeDescriptionExampleExample Result
->intGet JSON array element (indexed from zero, negative integers count from the end)'[{"a":"foo"},{"b":"bar"},{"c":"baz"}]'::json->2{"c":"baz"}
->textGet JSON object field by key'{"a": {"b":"foo"}}'::json->'a'{"b":"foo"}
->>intGet JSON array element as text'[1,2,3]'::json->>23
->>textGet JSON object field as text'{"a":1,"b":2}'::json->>'b'2
#>text[]Get JSON object at specified path'{"a": {"b":{"c": "foo"}}}'::json#>'{a,b}'{"c": "foo"}
#>>text[]Get JSON object at specified path as text'{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}'3

Note

There are parallel variants of these operators for both the @@ -195,22 +195,22 @@

json

jsonb

Returns from_json with all object fields that have null values omitted. Other null values are untouched. - json_strip_nulls('[{"f1":1,"f2":null},2,null,3]')[{"f1":1},2,null,3]

jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean]) +

json_strip_nulls('[{"f1":1,"f2":null},2,null,3]')[{"f1":1},2,null,3]

jsonb_set(target jsonb, path text[], new_value jsonb [, create_missing boolean])

jsonb

Returns target with the section designated by path replaced by new_value, or with new_value added if - create_missing is true ( default is + create_missing is true (default is true) and the item designated by path does not exist. - As with the path orientated operators, negative integers that + As with the path oriented operators, negative integers that appear in path count from the end of JSON arrays.

jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', false)

jsonb_set('[{"f1":1,"f2":null},2]', '{0,f3}','[2,3,4]')

[{"f1":[2,3,4],"f2":null},2,null,3]

[{"f1": 1, "f2": null, "f3": [2, 3, 4]}, 2] -

jsonb_insert(target jsonb, path text[], new_value jsonb, [insert_after boolean]) +

jsonb_insert(target jsonb, path text[], new_value jsonb [, insert_after boolean])

jsonb

Returns target with new_value inserted. If @@ -222,7 +222,7 @@ designated by path is in JSONB object, new_value will be inserted only if target does not exist. As with the path - orientated operators, negative integers that appear in + oriented operators, negative integers that appear in path count from the end of JSON arrays.

jsonb_insert('{"a": [0,1,2]}', '{a, 1}', '"new_value"')

diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-logical.html postgresql-10-10.12/doc/src/sgml/html/functions-logical.html --- postgresql-10-10.10/doc/src/sgml/html/functions-logical.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-logical.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -9.1. Logical Operators

9.1. Logical Operators

The usual logical operators are available: +9.1. Logical Operators

9.1. Logical Operators

The usual logical operators are available: diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-matching.html postgresql-10-10.12/doc/src/sgml/html/functions-matching.html --- postgresql-10-10.10/doc/src/sgml/html/functions-matching.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-matching.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.7. Pattern Matching

9.7. Pattern Matching

There are three separate approaches to pattern matching provided +9.7. Pattern Matching

9.7. Pattern Matching

There are three separate approaches to pattern matching provided by PostgreSQL: the traditional SQL LIKE operator, the more recent SIMILAR TO operator (added in diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-math.html postgresql-10-10.12/doc/src/sgml/html/functions-math.html --- postgresql-10-10.10/doc/src/sgml/html/functions-math.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-math.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -9.3. Mathematical Functions and Operators

9.3. Mathematical Functions and Operators

Mathematical operators are provided for many +9.3. Mathematical Functions and Operators

9.3. Mathematical Functions and Operators

Mathematical operators are provided for many PostgreSQL types. For types without standard mathematical conventions (e.g., date/time types) we diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-net.html postgresql-10-10.12/doc/src/sgml/html/functions-net.html --- postgresql-10-10.10/doc/src/sgml/html/functions-net.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-net.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.12. Network Address Functions and Operators

9.12. Network Address Functions and Operators

Table 9.36 shows the operators +9.12. Network Address Functions and Operators

9.12. Network Address Functions and Operators

Table 9.36 shows the operators available for the cidr and inet types. The operators <<, <<=, >>, diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-range.html postgresql-10-10.12/doc/src/sgml/html/functions-range.html --- postgresql-10-10.10/doc/src/sgml/html/functions-range.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-range.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.19. Range Functions and Operators

9.19. Range Functions and Operators

See Section 8.17 for an overview of range types. +9.19. Range Functions and Operators

9.19. Range Functions and Operators

See Section 8.17 for an overview of range types.

Table 9.50 shows the operators available for range types.

Table 9.50. Range Operators

OperatorDescriptionExampleResult
= equalint4range(1,5) = '[1,4]'::int4ranget
<> not equalnumrange(1.1,2.2) <> numrange(1.1,2.3)t
< less thanint4range(1,10) < int4range(2,3)t
> greater thanint4range(1,10) > int4range(1,5)t
<= less than or equalnumrange(1.1,2.2) <= numrange(1.1,2.2)t
>= greater than or equalnumrange(1.1,2.2) >= numrange(1.1,2.0)t
@> contains rangeint4range(2,4) @> int4range(2,3)t
@> contains element'[2011-01-01,2011-03-01)'::tsrange @> '2011-01-10'::timestampt
<@ range is contained byint4range(2,4) <@ int4range(1,7)t
<@ element is contained by42 <@ int4range(1,7)f
&& overlap (have points in common)int8range(3,7) && int8range(4,12)t
<< strictly left ofint8range(1,10) << int8range(100,110)t
>> strictly right ofint8range(50,60) >> int8range(20,30)t
&< does not extend to the right ofint8range(1,20) &< int8range(18,20)t
&> does not extend to the left ofint8range(7,20) &> int8range(5,10)t
-|- is adjacent tonumrange(1.1,2.2) -|- numrange(2.2,3.3)t
+ unionnumrange(5,15) + numrange(10,20)[5,20)
* intersectionint8range(5,15) * int8range(10,20)[10,15)
- differenceint8range(5,15) - int8range(10,20)[5,10)

The simple comparison operators <, diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-sequence.html postgresql-10-10.12/doc/src/sgml/html/functions-sequence.html --- postgresql-10-10.10/doc/src/sgml/html/functions-sequence.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-sequence.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.16. Sequence Manipulation Functions

9.16. Sequence Manipulation Functions

This section describes functions for operating on sequence +9.16. Sequence Manipulation Functions

9.16. Sequence Manipulation Functions

This section describes functions for operating on sequence objects, also called sequence generators or just sequences. Sequence objects are special single-row tables created with CREATE SEQUENCE. Sequence objects are commonly used to generate unique identifiers diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-srf.html postgresql-10-10.12/doc/src/sgml/html/functions-srf.html --- postgresql-10-10.10/doc/src/sgml/html/functions-srf.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-srf.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -9.24. Set Returning Functions

9.24. Set Returning Functions

This section describes functions that possibly return more than one row. +9.24. Set Returning Functions

9.24. Set Returning Functions

This section describes functions that possibly return more than one row. The most widely used functions in this class are series generating functions, as detailed in Table 9.58 and Table 9.59. Other, more specialized diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-string.html postgresql-10-10.12/doc/src/sgml/html/functions-string.html --- postgresql-10-10.10/doc/src/sgml/html/functions-string.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-string.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -9.4. String Functions and Operators

9.4. String Functions and Operators

This section describes functions and operators for examining and +9.4. String Functions and Operators

9.4. String Functions and Operators

This section describes functions and operators for examining and manipulating string values. Strings in this context include values of the types character, character varying, and text. Unless otherwise noted, all @@ -330,7 +330,7 @@ Section 9.20.

Table 9.10. Built-in Conversions

Conversion Name [a] - Source EncodingDestination Encoding
ascii_to_micSQL_ASCIIMULE_INTERNAL
ascii_to_utf8SQL_ASCIIUTF8
big5_to_euc_twBIG5EUC_TW
big5_to_micBIG5MULE_INTERNAL
big5_to_utf8BIG5UTF8
euc_cn_to_micEUC_CNMULE_INTERNAL
euc_cn_to_utf8EUC_CNUTF8
euc_jp_to_micEUC_JPMULE_INTERNAL
euc_jp_to_sjisEUC_JPSJIS
euc_jp_to_utf8EUC_JPUTF8
euc_kr_to_micEUC_KRMULE_INTERNAL
euc_kr_to_utf8EUC_KRUTF8
euc_tw_to_big5EUC_TWBIG5
euc_tw_to_micEUC_TWMULE_INTERNAL
euc_tw_to_utf8EUC_TWUTF8
gb18030_to_utf8GB18030UTF8
gbk_to_utf8GBKUTF8
iso_8859_10_to_utf8LATIN6UTF8
iso_8859_13_to_utf8LATIN7UTF8
iso_8859_14_to_utf8LATIN8UTF8
iso_8859_15_to_utf8LATIN9UTF8
iso_8859_16_to_utf8LATIN10UTF8
iso_8859_1_to_micLATIN1MULE_INTERNAL
iso_8859_1_to_utf8LATIN1UTF8
iso_8859_2_to_micLATIN2MULE_INTERNAL
iso_8859_2_to_utf8LATIN2UTF8
iso_8859_2_to_windows_1250LATIN2WIN1250
iso_8859_3_to_micLATIN3MULE_INTERNAL
iso_8859_3_to_utf8LATIN3UTF8
iso_8859_4_to_micLATIN4MULE_INTERNAL
iso_8859_4_to_utf8LATIN4UTF8
iso_8859_5_to_koi8_rISO_8859_5KOI8R
iso_8859_5_to_micISO_8859_5MULE_INTERNAL
iso_8859_5_to_utf8ISO_8859_5UTF8
iso_8859_5_to_windows_1251ISO_8859_5WIN1251
iso_8859_5_to_windows_866ISO_8859_5WIN866
iso_8859_6_to_utf8ISO_8859_6UTF8
iso_8859_7_to_utf8ISO_8859_7UTF8
iso_8859_8_to_utf8ISO_8859_8UTF8
iso_8859_9_to_utf8LATIN5UTF8
johab_to_utf8JOHABUTF8
koi8_r_to_iso_8859_5KOI8RISO_8859_5
koi8_r_to_micKOI8RMULE_INTERNAL
koi8_r_to_utf8KOI8RUTF8
koi8_r_to_windows_1251KOI8RWIN1251
koi8_r_to_windows_866KOI8RWIN866
koi8_u_to_utf8KOI8UUTF8
mic_to_asciiMULE_INTERNALSQL_ASCII
mic_to_big5MULE_INTERNALBIG5
mic_to_euc_cnMULE_INTERNALEUC_CN
mic_to_euc_jpMULE_INTERNALEUC_JP
mic_to_euc_krMULE_INTERNALEUC_KR
mic_to_euc_twMULE_INTERNALEUC_TW
mic_to_iso_8859_1MULE_INTERNALLATIN1
mic_to_iso_8859_2MULE_INTERNALLATIN2
mic_to_iso_8859_3MULE_INTERNALLATIN3
mic_to_iso_8859_4MULE_INTERNALLATIN4
mic_to_iso_8859_5MULE_INTERNALISO_8859_5
mic_to_koi8_rMULE_INTERNALKOI8R
mic_to_sjisMULE_INTERNALSJIS
mic_to_windows_1250MULE_INTERNALWIN1250
mic_to_windows_1251MULE_INTERNALWIN1251
mic_to_windows_866MULE_INTERNALWIN866
sjis_to_euc_jpSJISEUC_JP
sjis_to_micSJISMULE_INTERNAL
sjis_to_utf8SJISUTF8
tcvn_to_utf8WIN1258UTF8
uhc_to_utf8UHCUTF8
utf8_to_asciiUTF8SQL_ASCII
utf8_to_big5UTF8BIG5
utf8_to_euc_cnUTF8EUC_CN
utf8_to_euc_jpUTF8EUC_JP
utf8_to_euc_krUTF8EUC_KR
utf8_to_euc_twUTF8EUC_TW
utf8_to_gb18030UTF8GB18030
utf8_to_gbkUTF8GBK
utf8_to_iso_8859_1UTF8LATIN1
utf8_to_iso_8859_10UTF8LATIN6
utf8_to_iso_8859_13UTF8LATIN7
utf8_to_iso_8859_14UTF8LATIN8
utf8_to_iso_8859_15UTF8LATIN9
utf8_to_iso_8859_16UTF8LATIN10
utf8_to_iso_8859_2UTF8LATIN2
utf8_to_iso_8859_3UTF8LATIN3
utf8_to_iso_8859_4UTF8LATIN4
utf8_to_iso_8859_5UTF8ISO_8859_5
utf8_to_iso_8859_6UTF8ISO_8859_6
utf8_to_iso_8859_7UTF8ISO_8859_7
utf8_to_iso_8859_8UTF8ISO_8859_8
utf8_to_iso_8859_9UTF8LATIN5
utf8_to_johabUTF8JOHAB
utf8_to_koi8_rUTF8KOI8R
utf8_to_koi8_uUTF8KOI8U
utf8_to_sjisUTF8SJIS
utf8_to_tcvnUTF8WIN1258
utf8_to_uhcUTF8UHC
utf8_to_windows_1250UTF8WIN1250
utf8_to_windows_1251UTF8WIN1251
utf8_to_windows_1252UTF8WIN1252
utf8_to_windows_1253UTF8WIN1253
utf8_to_windows_1254UTF8WIN1254
utf8_to_windows_1255UTF8WIN1255
utf8_to_windows_1256UTF8WIN1256
utf8_to_windows_1257UTF8WIN1257
utf8_to_windows_866UTF8WIN866
utf8_to_windows_874UTF8WIN874
windows_1250_to_iso_8859_2WIN1250LATIN2
windows_1250_to_micWIN1250MULE_INTERNAL
windows_1250_to_utf8WIN1250UTF8
windows_1251_to_iso_8859_5WIN1251ISO_8859_5
windows_1251_to_koi8_rWIN1251KOI8R
windows_1251_to_micWIN1251MULE_INTERNAL
windows_1251_to_utf8WIN1251UTF8
windows_1251_to_windows_866WIN1251WIN866
windows_1252_to_utf8WIN1252UTF8
windows_1256_to_utf8WIN1256UTF8
windows_866_to_iso_8859_5WIN866ISO_8859_5
windows_866_to_koi8_rWIN866KOI8R
windows_866_to_micWIN866MULE_INTERNAL
windows_866_to_utf8WIN866UTF8
windows_866_to_windows_1251WIN866WIN
windows_874_to_utf8WIN874UTF8
euc_jis_2004_to_utf8EUC_JIS_2004UTF8
utf8_to_euc_jis_2004UTF8EUC_JIS_2004
shift_jis_2004_to_utf8SHIFT_JIS_2004UTF8
utf8_to_shift_jis_2004UTF8SHIFT_JIS_2004
euc_jis_2004_to_shift_jis_2004EUC_JIS_2004SHIFT_JIS_2004
shift_jis_2004_to_euc_jis_2004SHIFT_JIS_2004EUC_JIS_2004

[a] The conversion names follow a standard naming scheme: The +

Source EncodingDestination Encoding
ascii_to_micSQL_ASCIIMULE_INTERNAL
ascii_to_utf8SQL_ASCIIUTF8
big5_to_euc_twBIG5EUC_TW
big5_to_micBIG5MULE_INTERNAL
big5_to_utf8BIG5UTF8
euc_cn_to_micEUC_CNMULE_INTERNAL
euc_cn_to_utf8EUC_CNUTF8
euc_jp_to_micEUC_JPMULE_INTERNAL
euc_jp_to_sjisEUC_JPSJIS
euc_jp_to_utf8EUC_JPUTF8
euc_kr_to_micEUC_KRMULE_INTERNAL
euc_kr_to_utf8EUC_KRUTF8
euc_tw_to_big5EUC_TWBIG5
euc_tw_to_micEUC_TWMULE_INTERNAL
euc_tw_to_utf8EUC_TWUTF8
gb18030_to_utf8GB18030UTF8
gbk_to_utf8GBKUTF8
iso_8859_10_to_utf8LATIN6UTF8
iso_8859_13_to_utf8LATIN7UTF8
iso_8859_14_to_utf8LATIN8UTF8
iso_8859_15_to_utf8LATIN9UTF8
iso_8859_16_to_utf8LATIN10UTF8
iso_8859_1_to_micLATIN1MULE_INTERNAL
iso_8859_1_to_utf8LATIN1UTF8
iso_8859_2_to_micLATIN2MULE_INTERNAL
iso_8859_2_to_utf8LATIN2UTF8
iso_8859_2_to_windows_1250LATIN2WIN1250
iso_8859_3_to_micLATIN3MULE_INTERNAL
iso_8859_3_to_utf8LATIN3UTF8
iso_8859_4_to_micLATIN4MULE_INTERNAL
iso_8859_4_to_utf8LATIN4UTF8
iso_8859_5_to_koi8_rISO_8859_5KOI8R
iso_8859_5_to_micISO_8859_5MULE_INTERNAL
iso_8859_5_to_utf8ISO_8859_5UTF8
iso_8859_5_to_windows_1251ISO_8859_5WIN1251
iso_8859_5_to_windows_866ISO_8859_5WIN866
iso_8859_6_to_utf8ISO_8859_6UTF8
iso_8859_7_to_utf8ISO_8859_7UTF8
iso_8859_8_to_utf8ISO_8859_8UTF8
iso_8859_9_to_utf8LATIN5UTF8
johab_to_utf8JOHABUTF8
koi8_r_to_iso_8859_5KOI8RISO_8859_5
koi8_r_to_micKOI8RMULE_INTERNAL
koi8_r_to_utf8KOI8RUTF8
koi8_r_to_windows_1251KOI8RWIN1251
koi8_r_to_windows_866KOI8RWIN866
koi8_u_to_utf8KOI8UUTF8
mic_to_asciiMULE_INTERNALSQL_ASCII
mic_to_big5MULE_INTERNALBIG5
mic_to_euc_cnMULE_INTERNALEUC_CN
mic_to_euc_jpMULE_INTERNALEUC_JP
mic_to_euc_krMULE_INTERNALEUC_KR
mic_to_euc_twMULE_INTERNALEUC_TW
mic_to_iso_8859_1MULE_INTERNALLATIN1
mic_to_iso_8859_2MULE_INTERNALLATIN2
mic_to_iso_8859_3MULE_INTERNALLATIN3
mic_to_iso_8859_4MULE_INTERNALLATIN4
mic_to_iso_8859_5MULE_INTERNALISO_8859_5
mic_to_koi8_rMULE_INTERNALKOI8R
mic_to_sjisMULE_INTERNALSJIS
mic_to_windows_1250MULE_INTERNALWIN1250
mic_to_windows_1251MULE_INTERNALWIN1251
mic_to_windows_866MULE_INTERNALWIN866
sjis_to_euc_jpSJISEUC_JP
sjis_to_micSJISMULE_INTERNAL
sjis_to_utf8SJISUTF8
windows_1258_to_utf8WIN1258UTF8
uhc_to_utf8UHCUTF8
utf8_to_asciiUTF8SQL_ASCII
utf8_to_big5UTF8BIG5
utf8_to_euc_cnUTF8EUC_CN
utf8_to_euc_jpUTF8EUC_JP
utf8_to_euc_krUTF8EUC_KR
utf8_to_euc_twUTF8EUC_TW
utf8_to_gb18030UTF8GB18030
utf8_to_gbkUTF8GBK
utf8_to_iso_8859_1UTF8LATIN1
utf8_to_iso_8859_10UTF8LATIN6
utf8_to_iso_8859_13UTF8LATIN7
utf8_to_iso_8859_14UTF8LATIN8
utf8_to_iso_8859_15UTF8LATIN9
utf8_to_iso_8859_16UTF8LATIN10
utf8_to_iso_8859_2UTF8LATIN2
utf8_to_iso_8859_3UTF8LATIN3
utf8_to_iso_8859_4UTF8LATIN4
utf8_to_iso_8859_5UTF8ISO_8859_5
utf8_to_iso_8859_6UTF8ISO_8859_6
utf8_to_iso_8859_7UTF8ISO_8859_7
utf8_to_iso_8859_8UTF8ISO_8859_8
utf8_to_iso_8859_9UTF8LATIN5
utf8_to_johabUTF8JOHAB
utf8_to_koi8_rUTF8KOI8R
utf8_to_koi8_uUTF8KOI8U
utf8_to_sjisUTF8SJIS
utf8_to_windows_1258UTF8WIN1258
utf8_to_uhcUTF8UHC
utf8_to_windows_1250UTF8WIN1250
utf8_to_windows_1251UTF8WIN1251
utf8_to_windows_1252UTF8WIN1252
utf8_to_windows_1253UTF8WIN1253
utf8_to_windows_1254UTF8WIN1254
utf8_to_windows_1255UTF8WIN1255
utf8_to_windows_1256UTF8WIN1256
utf8_to_windows_1257UTF8WIN1257
utf8_to_windows_866UTF8WIN866
utf8_to_windows_874UTF8WIN874
windows_1250_to_iso_8859_2WIN1250LATIN2
windows_1250_to_micWIN1250MULE_INTERNAL
windows_1250_to_utf8WIN1250UTF8
windows_1251_to_iso_8859_5WIN1251ISO_8859_5
windows_1251_to_koi8_rWIN1251KOI8R
windows_1251_to_micWIN1251MULE_INTERNAL
windows_1251_to_utf8WIN1251UTF8
windows_1251_to_windows_866WIN1251WIN866
windows_1252_to_utf8WIN1252UTF8
windows_1256_to_utf8WIN1256UTF8
windows_866_to_iso_8859_5WIN866ISO_8859_5
windows_866_to_koi8_rWIN866KOI8R
windows_866_to_micWIN866MULE_INTERNAL
windows_866_to_utf8WIN866UTF8
windows_866_to_windows_1251WIN866WIN
windows_874_to_utf8WIN874UTF8
euc_jis_2004_to_utf8EUC_JIS_2004UTF8
utf8_to_euc_jis_2004UTF8EUC_JIS_2004
shift_jis_2004_to_utf8SHIFT_JIS_2004UTF8
utf8_to_shift_jis_2004UTF8SHIFT_JIS_2004
euc_jis_2004_to_shift_jis_2004EUC_JIS_2004SHIFT_JIS_2004
shift_jis_2004_to_euc_jis_2004SHIFT_JIS_2004EUC_JIS_2004

[a] The conversion names follow a standard naming scheme: The official name of the source encoding with all non-alphanumeric characters replaced by underscores, followed by _to_, followed by the similarly processed diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-subquery.html postgresql-10-10.12/doc/src/sgml/html/functions-subquery.html --- postgresql-10-10.10/doc/src/sgml/html/functions-subquery.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-subquery.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -9.22. Subquery Expressions

9.22. Subquery Expressions

This section describes the SQL-compliant subquery +9.22. Subquery Expressions

9.22. Subquery Expressions

This section describes the SQL-compliant subquery expressions available in PostgreSQL. All of the expression forms documented in this section return Boolean (true/false) results. diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-textsearch.html postgresql-10-10.12/doc/src/sgml/html/functions-textsearch.html --- postgresql-10-10.10/doc/src/sgml/html/functions-textsearch.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-textsearch.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.13. Text Search Functions and Operators

9.13. Text Search Functions and Operators

Table 9.40, +9.13. Text Search Functions and Operators

9.13. Text Search Functions and Operators

Table 9.40, Table 9.41 and Table 9.42 summarize the functions and operators that are provided diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-trigger.html postgresql-10-10.12/doc/src/sgml/html/functions-trigger.html --- postgresql-10-10.10/doc/src/sgml/html/functions-trigger.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-trigger.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -9.27. Trigger Functions

9.27. Trigger Functions

Currently PostgreSQL provides one built in trigger +9.27. Trigger Functions

9.27. Trigger Functions

Currently PostgreSQL provides one built in trigger function, suppress_redundant_updates_trigger, which will prevent any update that does not actually change the data in the row from taking place, in diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-window.html postgresql-10-10.12/doc/src/sgml/html/functions-window.html --- postgresql-10-10.10/doc/src/sgml/html/functions-window.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-window.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,5 +1,5 @@ -9.21. Window Functions

9.21. Window Functions

Window functions provide the ability to perform +9.21. Window Functions

9.21. Window Functions

Window functions provide the ability to perform calculations across sets of rows that are related to the current query row. See Section 3.5 for an introduction to this feature, and Section 4.2.8 for syntax diff -Nru postgresql-10-10.10/doc/src/sgml/html/functions-xml.html postgresql-10-10.12/doc/src/sgml/html/functions-xml.html --- postgresql-10-10.10/doc/src/sgml/html/functions-xml.html 2019-08-05 21:29:58.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/functions-xml.html 2020-02-10 22:31:43.000000000 +0000 @@ -1,16 +1,17 @@ -9.14. XML Functions

9.14. XML Functions

The functions and function-like expressions described in this - section operate on values of type xml. Check Section 8.13 for information about the xml +9.14. XML Functions

9.14. XML Functions

The functions and function-like expressions described in this + section operate on values of type xml. See Section 8.13 for information about the xml type. The function-like expressions xmlparse and xmlserialize for converting to and from - type xml are not repeated here. Use of most of these - functions requires the installation to have been built + type xml are documented there, not in this section. +

Use of most of these functions + requires PostgreSQL to have been built with configure --with-libxml.

9.14.1. Producing XML Content

A set of functions and function-like expressions are available for producing XML content from SQL data. As such, they are particularly suitable for formatting query results into XML documents for processing in client applications. -

9.14.1.1. xmlcomment

xmlcomment(text)

The function xmlcomment creates an XML value +

9.14.1.1. xmlcomment

xmlcomment(text)

The function xmlcomment creates an XML value containing an XML comment with the specified text as content. The text cannot contain -- or end with a - so that the resulting construct is a valid @@ -21,7 +22,7 @@ xmlcomment -------------- <!--hello-->

-

9.14.1.2. xmlconcat

xmlconcat(xml[, ...])

The function xmlconcat concatenates a list +

9.14.1.2. xmlconcat

xmlconcat(xml[, ...])

The function xmlconcat concatenates a list of individual XML values to create a single value containing an XML content fragment. Null values are omitted; the result is only null if there are no nonnull arguments. @@ -50,7 +51,7 @@ xmlconcat ----------------------------------- <?xml version="1.1"?><foo/><bar/>

-

9.14.1.3. xmlelement

xmlelement(name name [, xmlattributes(value [AS attname] [, ... ])] [, content, ...])

The xmlelement expression produces an XML +

9.14.1.3. xmlelement

xmlelement(name name [, xmlattributes(value [AS attname] [, ... ])] [, content, ...])

The xmlelement expression produces an XML element with the given name, attributes, and content.

Examples:

SELECT xmlelement(name foo);
@@ -109,9 +110,9 @@
      encoding, depending on the setting of the configuration parameter
      xmlbinary.  The particular behavior for
      individual data types is expected to evolve in order to align the
-     SQL and PostgreSQL data types with the XML Schema specification,
-     at which point a more precise description will appear.
-    

9.14.1.4. xmlforest

xmlforest(content [AS name] [, ...])

The xmlforest expression produces an XML + PostgreSQL mappings with those specified in SQL:2006 and later, + as discussed in Section D.3.1.3. +

9.14.1.4. xmlforest

xmlforest(content [AS name] [, ...])

The xmlforest expression produces an XML forest (sequence) of elements using the given names and content.

Examples:

SELECT xmlforest('abc' AS foo, 123 AS bar);
@@ -142,7 +143,7 @@
      of more than one element, so it might be useful to wrap
      xmlforest expressions in
      xmlelement.
-    

9.14.1.5. xmlpi

xmlpi(name target [, content])

The xmlpi expression creates an XML +

9.14.1.5. xmlpi

xmlpi(name target [, content])

The xmlpi expression creates an XML processing instruction. The content, if present, must not contain the character sequence ?>.

Example: @@ -151,7 +152,7 @@ xmlpi ----------------------------- <?php echo "hello world";?>

-

9.14.1.6. xmlroot

xmlroot(xml, version text | no value [, standalone yes|no|no value])

The xmlroot expression alters the properties +

9.14.1.6. xmlroot

xmlroot(xml, version text | no value [, standalone yes|no|no value])

The xmlroot expression alters the properties of the root node of an XML value. If a version is specified, it replaces the value in the root node's version declaration; if a standalone setting is specified, it replaces the value in the @@ -163,7 +164,7 @@ ---------------------------------------- <?xml version="1.0" standalone="yes"?> <content>abc</content>

-

9.14.1.7. xmlagg

xmlagg(xml)

The function xmlagg is, unlike the other +

9.14.1.7. xmlagg

xmlagg(xml)

The function xmlagg is, unlike the other functions described here, an aggregate function. It concatenates the input values to the aggregate function call, much like xmlconcat does, except that concatenation @@ -196,18 +197,21 @@ <bar/><foo>abc</foo>

9.14.2. XML Predicates

The expressions described in this section check properties of xml values. -

9.14.2.1. IS DOCUMENT

xml IS DOCUMENT

The expression IS DOCUMENT returns true if the +

9.14.2.1. IS DOCUMENT

xml IS DOCUMENT

The expression IS DOCUMENT returns true if the argument XML value is a proper XML document, false if it is not (that is, it is a content fragment), or null if the argument is null. See Section 8.13 about the difference between documents and content fragments. -

9.14.2.2. IS NOT DOCUMENT

xml IS NOT DOCUMENT

The expression IS NOT DOCUMENT returns false if the +

9.14.2.2. IS NOT DOCUMENT

xml IS NOT DOCUMENT

The expression IS NOT DOCUMENT returns false if the argument XML value is a proper XML document, true if it is not (that is, it is a content fragment), or null if the argument is null. -

9.14.2.3. XMLEXISTS

XMLEXISTS(text PASSING [BY REF] xml [BY REF])

The function xmlexists returns true if the - XPath expression in the first argument returns any nodes, and - false otherwise. (If either argument is null, the result is - null.) +

9.14.2.3. XMLEXISTS

XMLEXISTS(text PASSING [BY REF] xml [BY REF])

The function xmlexists evaluates an XPath 1.0 + expression (the first argument), with the passed XML value as its context + item. The function returns false if the result of that evaluation + yields an empty node-set, true if it yields any other value. The + function returns null if any argument is null. A nonnull value + passed as the context item must be an XML document, not a content + fragment or any non-XML value.

Example:

SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY REF '<towns><town>Toronto</town><town>Ottawa</town></towns>');
 
@@ -215,15 +219,15 @@
 ------------
  t
 (1 row)

-

The BY REF clauses have no effect in - PostgreSQL, but are allowed for SQL conformance and compatibility - with other implementations. Per SQL standard, the - first BY REF is required, the second is - optional. Also note that the SQL standard specifies - the xmlexists construct to take an XQuery - expression as first argument, but PostgreSQL currently only - supports XPath, which is a subset of XQuery. -

9.14.2.4. xml_is_well_formed

xml_is_well_formed(text)
+    

The BY REF clauses + are accepted in PostgreSQL, but are ignored, + as discussed in Section D.3.2. + In the SQL standard, the xmlexists function + evaluates an expression in the XML Query language, + but PostgreSQL allows only an XPath 1.0 + expression, as discussed in + Section D.3.1. +

9.14.2.4. xml_is_well_formed

xml_is_well_formed(text)
 xml_is_well_formed_document(text)
 xml_is_well_formed_content(text)

These functions check whether a text string is well-formed XML, returning a Boolean result. @@ -278,12 +282,12 @@ xpath_exists, which evaluate XPath 1.0 expressions, and the XMLTABLE table function. -

9.14.3.1. xpath

xpath(xpath, xml [, nsarray])

The function xpath evaluates the XPath +

9.14.3.1. xpath

xpath(xpath, xml [, nsarray])

The function xpath evaluates the XPath 1.0 expression xpath (a text value) against the XML value xml. It returns an array of XML values - corresponding to the node set produced by the XPath expression. - If the XPath expression returns a scalar value rather than a node set, + corresponding to the node-set produced by the XPath expression. + If the XPath expression returns a scalar value rather than a node-set, a single-element array is returned.

The second argument must be a well formed XML document. In particular, it must have a single root node element. @@ -312,11 +316,12 @@ -------- {test} (1 row)

-

9.14.3.2. xpath_exists

xpath_exists(xpath, xml [, nsarray])

The function xpath_exists is a specialized form +

9.14.3.2. xpath_exists

xpath_exists(xpath, xml [, nsarray])

The function xpath_exists is a specialized form of the xpath function. Instead of returning the - individual XML values that satisfy the XPath, this function returns a - Boolean indicating whether the query was satisfied or not. This - function is equivalent to the standard XMLEXISTS predicate, + individual XML values that satisfy the XPath 1.0 expression, this function + returns a Boolean indicating whether the query was satisfied or not + (specifically, whether it produced any value other than an empty node-set). + This function is equivalent to the XMLEXISTS predicate, except that it also offers support for a namespace mapping argument.

Example:

SELECT xpath_exists('/my:a/text()', '<my:a xmlns:my="http://example.com">test</my:a>',
@@ -326,89 +331,91 @@
 --------------
  t
 (1 row)

-

9.14.3.3. xmltable

xmltable( [XMLNAMESPACES(namespace uri AS namespace name[, ...]), ]
+    

9.14.3.3. xmltable

xmltable( [XMLNAMESPACES(namespace uri AS namespace name[, ...]), ]
           row_expression PASSING [BY REF] document_expression [BY REF]
           COLUMNS name { type [PATH column_expression] [DEFAULT default_expression] [NOT NULL | NULL]
                         | FOR ORDINALITY }
                    [, ...]
 )

The xmltable function produces a table based - on the given XML value, an XPath filter to extract rows, and an - optional set of column definitions. + on the given XML value, an XPath filter to extract rows, and a + set of column definitions.

The optional XMLNAMESPACES clause is a comma-separated list of namespaces. It specifies the XML namespaces used in the document and their aliases. A default namespace specification is not currently supported. -

The required row_expression argument is an XPath - expression that is evaluated against the supplied XML document to - obtain an ordered sequence of XML nodes. This sequence is what - xmltable transforms into output rows. -

document_expression provides the XML document to - operate on. - The BY REF clauses have no effect in PostgreSQL, - but are allowed for SQL conformance and compatibility with other - implementations. - The argument must be a well-formed XML document; fragments/forests - are not accepted. +

The required row_expression argument is + an XPath 1.0 expression that is evaluated, passing the + document_expression as its context item, to + obtain a set of XML nodes. These nodes are what + xmltable transforms into output rows. No rows + will be produced if the document_expression + is null, nor if the row_expression produces + an empty node-set or any value other than a node-set. +

document_expression provides the context + item for the row_expression. It must be a + well-formed XML document; fragments/forests are not accepted. + The BY REF clause + is accepted but ignored, as discussed in + Section D.3.2. + In the SQL standard, the xmltable function + evaluates expressions in the XML Query language, + but PostgreSQL allows only XPath 1.0 + expressions, as discussed in + Section D.3.1.

The mandatory COLUMNS clause specifies the list of columns in the output table. - If the COLUMNS clause is omitted, the rows in the result - set contain a single column of type xml containing the - data matched by row_expression. - If COLUMNS is specified, each entry describes a - single column. + Each entry describes a single column. See the syntax summary above for the format. The column name and type are required; the path, default and nullability clauses are optional.

A column marked FOR ORDINALITY will be populated - with row numbers matching the order in which the - output rows appeared in the original input XML document. + with row numbers, starting with 1, in the order of nodes retrieved from + the row_expression's result node-set. At most one column may be marked FOR ORDINALITY. -

The column_expression for a column is an XPath expression - that is evaluated for each row, relative to the result of the - row_expression, to find the value of the column. - If no column_expression is given, then the column name - is used as an implicit path. -

If a column's XPath expression returns multiple elements, an error - is raised. - If the expression matches an empty tag, the result is an - empty string (not NULL). - Any xsi:nil attributes are ignored. -

The text body of the XML matched by the column_expression - is used as the column value. Multiple text() nodes - within an element are concatenated in order. Any child elements, - processing instructions, and comments are ignored, but the text contents - of child elements are concatenated to the result. - Note that the whitespace-only text() node between two non-text - elements is preserved, and that leading whitespace on a text() - node is not flattened. -

If the path expression does not match for a given row but - default_expression is specified, the value resulting - from evaluating that expression is used. - If no DEFAULT clause is given for the column, - the field will be set to NULL. - It is possible for a default_expression to reference - the value of output columns that appear prior to it in the column list, - so the default of one column may be based on the value of another - column. +

Note

XPath 1.0 does not specify an order for nodes in a node-set, so code + that relies on a particular order of the results will be + implementation-dependent. Details can be found in + Section D.3.1.2. +

The column_expression for a column is an + XPath 1.0 expression that is evaluated for each row, with the current + node from the row_expression result as its + context item, to find the value of the column. If + no column_expression is given, then the + column name is used as an implicit path. +

If a column's XPath expression returns a non-XML value (limited to + string, boolean, or double in XPath 1.0) and the column has a + PostgreSQL type other than xml, the column will be set + as if by assigning the value's string representation to the PostgreSQL + type. In this release, an XPath boolean or double result must be explicitly + cast to string (that is, the XPath 1.0 string function + wrapped around the original column expression); + PostgreSQL can then successfully assign the + string to an SQL result column of boolean or double type. + These conversion rules differ from those of the SQL + standard, as discussed in Section D.3.1.3. +

In this release, SQL result columns of xml type, or + column XPath expressions evaluating to an XML type, regardless of the + output column SQL type, are handled as described in + Section D.3.2; the behavior + changes significantly in PostgreSQL 12. +

If the path expression returns an empty node-set + (typically, when it does not match) + for a given row, the column will be set to NULL, unless + a default_expression is specified; then the + value resulting from evaluating that expression is used.

Columns may be marked NOT NULL. If the column_expression for a NOT NULL column does not match anything and there is no DEFAULT or the default_expression also evaluates to null, an error is reported. -

Unlike regular PostgreSQL functions, column_expression - and default_expression are not evaluated to a simple - value before calling the function. - column_expression is normally evaluated - exactly once per input row, and default_expression - is evaluated each time a default is needed for a field. - If the expression qualifies as stable or immutable the repeat +

A default_expression, rather than being + evaluated immediately when xmltable is called, + is evaluated each time a default is needed for the column. + If the expression qualifies as stable or immutable, the repeat evaluation may be skipped. - Effectively xmltable behaves more like a subquery than a - function call. This means that you can usefully use volatile functions like - nextval in default_expression, and - column_expression may depend on other parts of the - XML document. + nextval in + default_expression.

Examples:

CREATE TABLE xmldata AS SELECT
 xml $$
@@ -491,7 +498,7 @@
    3 |   4
    4 |   5
 (3 rows)

-

9.14.4. Mapping Tables to XML

The following functions map the contents of relational tables to +

9.14.4. Mapping Tables to XML

The following functions map the contents of relational tables to XML values. They can be thought of as XML export functionality:

table_to_xml(tbl regclass, nulls boolean, tableforest boolean, targetns text)
 query_to_xml(query text, nulls boolean, tableforest boolean, targetns text)
diff -Nru postgresql-10-10.10/doc/src/sgml/html/fuzzystrmatch.html postgresql-10-10.12/doc/src/sgml/html/fuzzystrmatch.html
--- postgresql-10-10.10/doc/src/sgml/html/fuzzystrmatch.html	2019-08-05 21:30:18.000000000 +0000
+++ postgresql-10-10.12/doc/src/sgml/html/fuzzystrmatch.html	2020-02-10 22:32:03.000000000 +0000
@@ -1,5 +1,5 @@
 
-F.16. fuzzystrmatch

F.16. fuzzystrmatch

The fuzzystrmatch module provides several +F.16. fuzzystrmatch

F.16. fuzzystrmatch

The fuzzystrmatch module provides several functions to determine similarities and distance between strings.

Caution

At present, the soundex, metaphone, dmetaphone, and dmetaphone_alt functions do diff -Nru postgresql-10-10.10/doc/src/sgml/html/generic-wal.html postgresql-10-10.12/doc/src/sgml/html/generic-wal.html --- postgresql-10-10.10/doc/src/sgml/html/generic-wal.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/generic-wal.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 61. Generic WAL Records

Chapter 61. Generic WAL Records

Although all built-in WAL-logged modules have their own types of WAL +Chapter 61. Generic WAL Records

Chapter 61. Generic WAL Records

Although all built-in WAL-logged modules have their own types of WAL records, there is also a generic WAL record type, which describes changes to pages in a generic way. This is useful for extensions that provide custom access methods, because they cannot register their own WAL redo diff -Nru postgresql-10-10.10/doc/src/sgml/html/geqo-biblio.html postgresql-10-10.12/doc/src/sgml/html/geqo-biblio.html --- postgresql-10-10.10/doc/src/sgml/html/geqo-biblio.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/geqo-biblio.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -59.4. Further Reading

59.4. Further Reading

The following resources contain additional information about +59.4. Further Reading

59.4. Further Reading

The following resources contain additional information about genetic algorithms:

  • The Hitch-Hiker's Guide to Evolutionary Computation, (FAQ for news://comp.ai.genetic) diff -Nru postgresql-10-10.10/doc/src/sgml/html/geqo.html postgresql-10-10.12/doc/src/sgml/html/geqo.html --- postgresql-10-10.10/doc/src/sgml/html/geqo.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/geqo.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 59. Genetic Query Optimizer

    Chapter 59. Genetic Query Optimizer

    Table of Contents

    59.1. Query Handling as a Complex Optimization Problem
    59.2. Genetic Algorithms
    59.3. Genetic Query Optimization (GEQO) in PostgreSQL
    59.3.1. Generating Possible Plans with GEQO
    59.3.2. Future Implementation Tasks for +Chapter 59. Genetic Query Optimizer

    Chapter 59. Genetic Query Optimizer

    Author

    Written by Martin Utesch () for the Institute of Automatic Control at the University of Mining and Technology in Freiberg, Germany.

    diff -Nru postgresql-10-10.10/doc/src/sgml/html/geqo-intro2.html postgresql-10-10.12/doc/src/sgml/html/geqo-intro2.html --- postgresql-10-10.10/doc/src/sgml/html/geqo-intro2.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/geqo-intro2.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -59.2. Genetic Algorithms

    59.2. Genetic Algorithms

    The genetic algorithm (GA) is a heuristic optimization method which +59.2. Genetic Algorithms

    59.2. Genetic Algorithms

    The genetic algorithm (GA) is a heuristic optimization method which operates through randomized search. The set of possible solutions for the optimization problem is considered as a population of individuals. diff -Nru postgresql-10-10.10/doc/src/sgml/html/geqo-intro.html postgresql-10-10.12/doc/src/sgml/html/geqo-intro.html --- postgresql-10-10.10/doc/src/sgml/html/geqo-intro.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/geqo-intro.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -59.1. Query Handling as a Complex Optimization Problem

    59.1. Query Handling as a Complex Optimization Problem

    Among all relational operators the most difficult one to process +59.1. Query Handling as a Complex Optimization Problem

    59.1. Query Handling as a Complex Optimization Problem

    Among all relational operators the most difficult one to process and optimize is the join. The number of possible query plans grows exponentially with the number of joins in the query. Further optimization effort is diff -Nru postgresql-10-10.10/doc/src/sgml/html/geqo-pg-intro.html postgresql-10-10.12/doc/src/sgml/html/geqo-pg-intro.html --- postgresql-10-10.10/doc/src/sgml/html/geqo-pg-intro.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/geqo-pg-intro.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -59.3. Genetic Query Optimization (GEQO) in PostgreSQL

    59.3. Genetic Query Optimization (GEQO) in PostgreSQL

    59.3.1. Generating Possible Plans with GEQO
    59.3.2. Future Implementation Tasks for +59.3. Genetic Query Optimization (GEQO) in PostgreSQL

    59.3. Genetic Query Optimization (GEQO) in PostgreSQL

    The GEQO module approaches the query optimization problem as though it were the well-known traveling salesman problem (TSP). diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin-builtin-opclasses.html postgresql-10-10.12/doc/src/sgml/html/gin-builtin-opclasses.html --- postgresql-10-10.10/doc/src/sgml/html/gin-builtin-opclasses.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin-builtin-opclasses.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -64.2. Built-in Operator Classes

    64.2. Built-in Operator Classes

    The core PostgreSQL distribution +64.2. Built-in Operator Classes

    64.2. Built-in Operator Classes

    The core PostgreSQL distribution includes the GIN operator classes shown in Table 64.1. (Some of the optional modules described in Appendix F diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin-examples.html postgresql-10-10.12/doc/src/sgml/html/gin-examples.html --- postgresql-10-10.10/doc/src/sgml/html/gin-examples.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin-examples.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -64.7. Examples

    64.7. Examples

    The core PostgreSQL distribution +64.7. Examples

    64.7. Examples

    The core PostgreSQL distribution includes the GIN operator classes previously shown in Table 64.1. The following contrib modules also contain diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin-extensibility.html postgresql-10-10.12/doc/src/sgml/html/gin-extensibility.html --- postgresql-10-10.10/doc/src/sgml/html/gin-extensibility.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin-extensibility.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -64.3. Extensibility

    64.3. Extensibility

    The GIN interface has a high level of abstraction, +64.3. Extensibility

    64.3. Extensibility

    The GIN interface has a high level of abstraction, requiring the access method implementer only to implement the semantics of the data type being accessed. The GIN layer itself takes care of concurrency, logging and searching the tree structure. diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin.html postgresql-10-10.12/doc/src/sgml/html/gin.html --- postgresql-10-10.10/doc/src/sgml/html/gin.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 64. GIN Indexes

    \ No newline at end of file +Chapter 64. GIN Indexes \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin-implementation.html postgresql-10-10.12/doc/src/sgml/html/gin-implementation.html --- postgresql-10-10.10/doc/src/sgml/html/gin-implementation.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin-implementation.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -64.4. Implementation

    64.4. Implementation

    Internally, a GIN index contains a B-tree index +64.4. Implementation

    64.4. Implementation

    Internally, a GIN index contains a B-tree index constructed over keys, where each key is an element of one or more indexed items (a member of an array, for example) and where each tuple in a leaf page contains either a pointer to a B-tree of heap pointers (a diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin-intro.html postgresql-10-10.12/doc/src/sgml/html/gin-intro.html --- postgresql-10-10.10/doc/src/sgml/html/gin-intro.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin-intro.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -64.1. Introduction

    64.1. Introduction

    GIN stands for Generalized Inverted Index. +64.1. Introduction

    64.1. Introduction

    GIN stands for Generalized Inverted Index. GIN is designed for handling cases where the items to be indexed are composite values, and the queries to be handled by the index need to search for element values that appear within diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin-limit.html postgresql-10-10.12/doc/src/sgml/html/gin-limit.html --- postgresql-10-10.10/doc/src/sgml/html/gin-limit.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin-limit.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -64.6. Limitations

    64.6. Limitations

    GIN assumes that indexable operators are strict. This +64.6. Limitations

    64.6. Limitations

    GIN assumes that indexable operators are strict. This means that extractValue will not be called at all on a null item value (instead, a placeholder index entry is created automatically), and extractQuery will not be called on a null query diff -Nru postgresql-10-10.10/doc/src/sgml/html/gin-tips.html postgresql-10-10.12/doc/src/sgml/html/gin-tips.html --- postgresql-10-10.10/doc/src/sgml/html/gin-tips.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gin-tips.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -64.5. GIN Tips and Tricks

    64.5. GIN Tips and Tricks

    Create vs. insert

    Insertion into a GIN index can be slow +64.5. GIN Tips and Tricks

    64.5. GIN Tips and Tricks

    Create vs. insert

    Insertion into a GIN index can be slow due to the likelihood of many keys being inserted for each item. So, for bulk insertions into a table it is advisable to drop the GIN index and recreate it after finishing bulk insertion. diff -Nru postgresql-10-10.10/doc/src/sgml/html/gist-builtin-opclasses.html postgresql-10-10.12/doc/src/sgml/html/gist-builtin-opclasses.html --- postgresql-10-10.10/doc/src/sgml/html/gist-builtin-opclasses.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gist-builtin-opclasses.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -62.2. Built-in Operator Classes

    62.2. Built-in Operator Classes

    The core PostgreSQL distribution +62.2. Built-in Operator Classes

    62.2. Built-in Operator Classes

    The core PostgreSQL distribution includes the GiST operator classes shown in Table 62.1. (Some of the optional modules described in Appendix F diff -Nru postgresql-10-10.10/doc/src/sgml/html/gist-examples.html postgresql-10-10.12/doc/src/sgml/html/gist-examples.html --- postgresql-10-10.10/doc/src/sgml/html/gist-examples.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gist-examples.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -62.5. Examples

    62.5. Examples

    The PostgreSQL source distribution includes +62.5. Examples

    62.5. Examples

    The PostgreSQL source distribution includes several examples of index methods implemented using GiST. The core system currently provides text search support (indexing for tsvector and tsquery) as well as diff -Nru postgresql-10-10.10/doc/src/sgml/html/gist-extensibility.html postgresql-10-10.12/doc/src/sgml/html/gist-extensibility.html --- postgresql-10-10.10/doc/src/sgml/html/gist-extensibility.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gist-extensibility.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -62.3. Extensibility

    62.3. Extensibility

    Traditionally, implementing a new index access method meant a lot of +62.3. Extensibility

    62.3. Extensibility

    Traditionally, implementing a new index access method meant a lot of difficult work. It was necessary to understand the inner workings of the database, such as the lock manager and Write-Ahead Log. The GiST interface has a high level of abstraction, @@ -340,8 +340,8 @@ /* * Choose where to put the index entries and update unionL and unionR - * accordingly. Append the entries to either v_spl_left or - * v_spl_right, and care about the counters. + * accordingly. Append the entries to either v->spl_left or + * v->spl_right, and care about the counters. */ if (my_choice_is_left(unionL, curl, unionR, curr)) @@ -494,7 +494,7 @@ my_fetch(PG_FUNCTION_ARGS) { GISTENTRY *entry = (GISTENTRY *) PG_GETARG_POINTER(0); - input_data_type *in = DatumGetP(entry->key); + input_data_type *in = DatumGetPointer(entry->key); fetched_data_type *fetched_data; GISTENTRY *retval; @@ -505,7 +505,7 @@ * Convert 'fetched_data' into the a Datum of the original datatype. */ - /* fill *retval from fetch_data. */ + /* fill *retval from fetched_data. */ gistentryinit(*retval, PointerGetDatum(converted_datum), entry->rel, entry->page, entry->offset, FALSE); diff -Nru postgresql-10-10.10/doc/src/sgml/html/gist.html postgresql-10-10.12/doc/src/sgml/html/gist.html --- postgresql-10-10.10/doc/src/sgml/html/gist.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gist.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 62. GiST Indexes

    \ No newline at end of file +Chapter 62. GiST Indexes \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/gist-implementation.html postgresql-10-10.12/doc/src/sgml/html/gist-implementation.html --- postgresql-10-10.10/doc/src/sgml/html/gist-implementation.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gist-implementation.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -62.4. Implementation

    62.4. Implementation

    62.4.1. GiST buffering build

    Building large GiST indexes by simply inserting all the tuples tends to be +62.4. Implementation

    62.4. Implementation

    62.4.1. GiST buffering build

    Building large GiST indexes by simply inserting all the tuples tends to be slow, because if the index tuples are scattered across the index and the index is large enough to not fit in cache, the insertions need to perform a lot of random I/O. Beginning in version 9.2, PostgreSQL supports a more diff -Nru postgresql-10-10.10/doc/src/sgml/html/gist-intro.html postgresql-10-10.12/doc/src/sgml/html/gist-intro.html --- postgresql-10-10.10/doc/src/sgml/html/gist-intro.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/gist-intro.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -62.1. Introduction

    62.1. Introduction

    GiST stands for Generalized Search Tree. It is a +62.1. Introduction

    62.1. Introduction

    GiST stands for Generalized Search Tree. It is a balanced, tree-structured access method, that acts as a base template in which to implement arbitrary indexing schemes. B-trees, R-trees and many other indexing schemes can be implemented in GiST. diff -Nru postgresql-10-10.10/doc/src/sgml/html/git.html postgresql-10-10.12/doc/src/sgml/html/git.html --- postgresql-10-10.10/doc/src/sgml/html/git.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/git.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -I.1. Getting The Source via Git

    I.1. Getting The Source via Git

    With Git you will make a copy of the entire code repository +I.1. Getting The Source via Git

    I.1. Getting The Source via Git

    With Git you will make a copy of the entire code repository on your local machine, so you will have access to all history and branches offline. This is the fastest and most flexible way to develop or test patches. diff -Nru postgresql-10-10.10/doc/src/sgml/html/high-availability.html postgresql-10-10.12/doc/src/sgml/html/high-availability.html --- postgresql-10-10.10/doc/src/sgml/html/high-availability.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/high-availability.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 26. High Availability, Load Balancing, and Replication

    Chapter 26. High Availability, Load Balancing, and Replication

    Database servers can work together to allow a second server to +Chapter 26. High Availability, Load Balancing, and Replication

    Chapter 26. High Availability, Load Balancing, and Replication

    Database servers can work together to allow a second server to take over quickly if the primary server fails (high availability), or to allow several computers to serve the same data (load balancing). Ideally, database servers could work diff -Nru postgresql-10-10.10/doc/src/sgml/html/history.html postgresql-10-10.12/doc/src/sgml/html/history.html --- postgresql-10-10.10/doc/src/sgml/html/history.html 2019-08-05 21:29:55.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/history.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -2. A Brief History of PostgreSQL

    2. A Brief History of PostgreSQL

    The object-relational database management system now known as +2. A Brief History of PostgreSQL

    2. A Brief History of PostgreSQL

    The object-relational database management system now known as PostgreSQL is derived from the POSTGRES package written at the University of California at Berkeley. With over two decades of diff -Nru postgresql-10-10.10/doc/src/sgml/html/hot-standby.html postgresql-10-10.12/doc/src/sgml/html/hot-standby.html --- postgresql-10-10.10/doc/src/sgml/html/hot-standby.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/hot-standby.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -26.5. Hot Standby

    26.5. Hot Standby

    Hot Standby is the term used to describe the ability to connect to +26.5. Hot Standby

    26.5. Hot Standby

    Hot Standby is the term used to describe the ability to connect to the server and run read-only queries while the server is in archive recovery or standby mode. This is useful both for replication purposes and for restoring a backup diff -Nru postgresql-10-10.10/doc/src/sgml/html/how-parallel-query-works.html postgresql-10-10.12/doc/src/sgml/html/how-parallel-query-works.html --- postgresql-10-10.10/doc/src/sgml/html/how-parallel-query-works.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/how-parallel-query-works.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -15.1. How Parallel Query Works

    15.1. How Parallel Query Works

    When the optimizer determines that parallel query is the fastest execution +15.1. How Parallel Query Works

    15.1. How Parallel Query Works

    When the optimizer determines that parallel query is the fastest execution strategy for a particular query, it will create a query plan which includes a Gather or Gather Merge node. Here is a simple example: diff -Nru postgresql-10-10.10/doc/src/sgml/html/hstore.html postgresql-10-10.12/doc/src/sgml/html/hstore.html --- postgresql-10-10.10/doc/src/sgml/html/hstore.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/hstore.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.17. hstore

    F.17. hstore

    This module implements the hstore data type for storing sets of +F.17. hstore

    F.17. hstore

    This module implements the hstore data type for storing sets of key/value pairs within a single PostgreSQL value. This can be useful in various scenarios, such as rows with many attributes that are rarely examined, or semi-structured data. Keys and values are diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexam.html postgresql-10-10.12/doc/src/sgml/html/indexam.html --- postgresql-10-10.10/doc/src/sgml/html/indexam.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexam.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 60. Index Access Method Interface Definition

    Chapter 60. Index Access Method Interface Definition

    This chapter defines the interface between the core +Chapter 60. Index Access Method Interface Definition

    Chapter 60. Index Access Method Interface Definition

    This chapter defines the interface between the core PostgreSQL system and index access methods, which manage individual index types. The core system knows nothing about indexes beyond what is specified here, so it is diff -Nru postgresql-10-10.10/doc/src/sgml/html/index-api.html postgresql-10-10.12/doc/src/sgml/html/index-api.html --- postgresql-10-10.10/doc/src/sgml/html/index-api.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/index-api.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -60.1. Basic API Structure for Indexes

    60.1. Basic API Structure for Indexes

    Each index access method is described by a row in the +60.1. Basic API Structure for Indexes

    60.1. Basic API Structure for Indexes

    Each index access method is described by a row in the pg_am system catalog. The pg_am entry specifies a name and a handler function for the access diff -Nru postgresql-10-10.10/doc/src/sgml/html/index-cost-estimation.html postgresql-10-10.12/doc/src/sgml/html/index-cost-estimation.html --- postgresql-10-10.10/doc/src/sgml/html/index-cost-estimation.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/index-cost-estimation.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -60.6. Index Cost Estimation Functions

    60.6. Index Cost Estimation Functions

    The amcostestimate function is given information describing +60.6. Index Cost Estimation Functions

    60.6. Index Cost Estimation Functions

    The amcostestimate function is given information describing a possible index scan, including lists of WHERE and ORDER BY clauses that have been determined to be usable with the index. It must return estimates of the cost of accessing the index and the selectivity of the WHERE diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-bitmap-scans.html postgresql-10-10.12/doc/src/sgml/html/indexes-bitmap-scans.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-bitmap-scans.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-bitmap-scans.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.5. Combining Multiple Indexes

    11.5. Combining Multiple Indexes

    A single index scan can only use query clauses that use the index's +11.5. Combining Multiple Indexes

    11.5. Combining Multiple Indexes

    A single index scan can only use query clauses that use the index's columns with operators of its operator class and are joined with AND. For example, given an index on (a, b) a query condition like WHERE a = 5 AND b = 6 could diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-collations.html postgresql-10-10.12/doc/src/sgml/html/indexes-collations.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-collations.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-collations.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.10. Indexes and Collations

    11.10. Indexes and Collations

    An index can support only one collation per index column. +11.10. Indexes and Collations

    11.10. Indexes and Collations

    An index can support only one collation per index column. If multiple collations are of interest, multiple indexes may be needed.

    Consider these statements:

    CREATE TABLE test1c (
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-examine.html postgresql-10-10.12/doc/src/sgml/html/indexes-examine.html
    --- postgresql-10-10.10/doc/src/sgml/html/indexes-examine.html	2019-08-05 21:29:59.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/indexes-examine.html	2020-02-10 22:31:44.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -11.12. Examining Index Usage

    11.12. Examining Index Usage

    Although indexes in PostgreSQL do not need +11.12. Examining Index Usage

    11.12. Examining Index Usage

    Although indexes in PostgreSQL do not need maintenance or tuning, it is still important to check which indexes are actually used by the real-life query workload. Examining index usage for an individual query is done with the diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-expressional.html postgresql-10-10.12/doc/src/sgml/html/indexes-expressional.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-expressional.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-expressional.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.7. Indexes on Expressions

    11.7. Indexes on Expressions

    An index column need not be just a column of the underlying table, +11.7. Indexes on Expressions

    11.7. Indexes on Expressions

    An index column need not be just a column of the underlying table, but can be a function or scalar expression computed from one or more columns of the table. This feature is useful to obtain fast access to tables based on the results of computations. @@ -10,6 +10,10 @@ defined on the result of the lower(col1) function:

    CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));

    +

    Expression indexes also allow control over the scope of unique indexes. + For example, this unique index prevents duplicate integer values from + being stored in a double precision-typed column: +

    CREATE UNIQUE INDEX test1_uniq_int ON tests ((floor(double_col)))

    If we were to declare this index UNIQUE, it would prevent creation of rows whose col1 values differ only in case, as well as rows whose col1 values are actually identical. diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes.html postgresql-10-10.12/doc/src/sgml/html/indexes.html --- postgresql-10-10.10/doc/src/sgml/html/indexes.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 11. Indexes

    Chapter 11. Indexes

    Indexes are a common way to enhance database performance. An index +Chapter 11. Indexes

    Chapter 11. Indexes

    Indexes are a common way to enhance database performance. An index allows the database server to find and retrieve specific rows much faster than it could do without an index. But indexes also add overhead to the database system as a whole, so they should be used diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-index-only-scans.html postgresql-10-10.12/doc/src/sgml/html/indexes-index-only-scans.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-index-only-scans.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-index-only-scans.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.11. Index-Only Scans

    11.11. Index-Only Scans

    All indexes in PostgreSQL are secondary +11.11. Index-Only Scans

    11.11. Index-Only Scans

    All indexes in PostgreSQL are secondary indexes, meaning that each index is stored separately from the table's main data area (which is called the table's heap in PostgreSQL terminology). This means that in an diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-intro.html postgresql-10-10.12/doc/src/sgml/html/indexes-intro.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-intro.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-intro.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.1. Introduction

    11.1. Introduction

    Suppose we have a table similar to this: +11.1. Introduction

    11.1. Introduction

    Suppose we have a table similar to this:

    CREATE TABLE test1 (
         id integer,
         content varchar
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-multicolumn.html postgresql-10-10.12/doc/src/sgml/html/indexes-multicolumn.html
    --- postgresql-10-10.10/doc/src/sgml/html/indexes-multicolumn.html	2019-08-05 21:29:59.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/indexes-multicolumn.html	2020-02-10 22:31:44.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -11.3. Multicolumn Indexes

    11.3. Multicolumn Indexes

    An index can be defined on more than one column of a table. For example, if +11.3. Multicolumn Indexes

    11.3. Multicolumn Indexes

    An index can be defined on more than one column of a table. For example, if you have a table of this form:

    CREATE TABLE test2 (
       major int,
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-opclass.html postgresql-10-10.12/doc/src/sgml/html/indexes-opclass.html
    --- postgresql-10-10.10/doc/src/sgml/html/indexes-opclass.html	2019-08-05 21:29:59.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/indexes-opclass.html	2020-02-10 22:31:44.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -11.9. Operator Classes and Operator Families

    11.9. Operator Classes and Operator Families

    An index definition can specify an operator +11.9. Operator Classes and Operator Families

    11.9. Operator Classes and Operator Families

    An index definition can specify an operator class for each column of an index.

    CREATE INDEX name ON table (column opclass [sort options] [, ...]);

    The operator class identifies the operators to be used by the index diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-ordering.html postgresql-10-10.12/doc/src/sgml/html/indexes-ordering.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-ordering.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-ordering.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.4. Indexes and ORDER BY

    11.4. Indexes and ORDER BY

    In addition to simply finding the rows to be returned by a query, +11.4. Indexes and ORDER BY

    11.4. Indexes and ORDER BY

    In addition to simply finding the rows to be returned by a query, an index may be able to deliver them in a specific sorted order. This allows a query's ORDER BY specification to be honored without a separate sorting step. Of the index types currently diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-partial.html postgresql-10-10.12/doc/src/sgml/html/indexes-partial.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-partial.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-partial.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.8. Partial Indexes

    11.8. Partial Indexes

    A partial index is an index built over a +11.8. Partial Indexes

    11.8. Partial Indexes

    A partial index is an index built over a subset of a table; the subset is defined by a conditional expression (called the predicate of the partial index). The index contains entries only for those table @@ -118,6 +118,11 @@ WHERE success;

    This is a particularly efficient approach when there are few successful tests and many unsuccessful ones. +

    This index allows only one null in the indexed column by using a + partial index clause to process only null column values, and using + an expression index clause to index true instead + of null: +

    CREATE UNIQUE INDEX tests_target_one_null ON tests ((target IS NULL)) WHERE target IS NULL;


    Finally, a partial index can also be used to override the system's query plan choices. Also, data sets with peculiar distributions might cause the system to use an index when it really diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-types.html postgresql-10-10.12/doc/src/sgml/html/indexes-types.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-types.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-types.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.2. Index Types

    11.2. Index Types

    PostgreSQL provides several index types: +11.2. Index Types

    11.2. Index Types

    PostgreSQL provides several index types: B-tree, Hash, GiST, SP-GiST, GIN and BRIN. Each index type uses a different algorithm that is best suited to different types of queries. diff -Nru postgresql-10-10.10/doc/src/sgml/html/indexes-unique.html postgresql-10-10.12/doc/src/sgml/html/indexes-unique.html --- postgresql-10-10.10/doc/src/sgml/html/indexes-unique.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/indexes-unique.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -11.6. Unique Indexes

    11.6. Unique Indexes

    Indexes can also be used to enforce uniqueness of a column's value, +11.6. Unique Indexes

    11.6. Unique Indexes

    Indexes can also be used to enforce uniqueness of a column's value, or the uniqueness of the combined values of more than one column.

    CREATE UNIQUE INDEX name ON table (column [, ...]);

    Currently, only B-tree indexes can be declared unique. diff -Nru postgresql-10-10.10/doc/src/sgml/html/index-functions.html postgresql-10-10.12/doc/src/sgml/html/index-functions.html --- postgresql-10-10.10/doc/src/sgml/html/index-functions.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/index-functions.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -60.2. Index Access Method Functions

    60.2. Index Access Method Functions

    The index construction and maintenance functions that an index access +60.2. Index Access Method Functions

    60.2. Index Access Method Functions

    The index construction and maintenance functions that an index access method must provide in IndexAmRoutine are:

    IndexBuildResult *
     ambuild (Relation heapRelation,
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/index.html postgresql-10-10.12/doc/src/sgml/html/index.html
    --- postgresql-10-10.10/doc/src/sgml/html/index.html	2019-08-05 21:30:21.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/index.html	2020-02-10 22:32:05.000000000 +0000
    @@ -1,2 +1,2 @@
     
    -PostgreSQL 10.10 Documentation

    PostgreSQL 10.10 Documentation

    The PostgreSQL Global Development Group


    Table of Contents

    Preface
    1. What is PostgreSQL?
    2. A Brief History of PostgreSQL
    3. Conventions
    4. Further Information
    5. Bug Reporting Guidelines
    I. Tutorial
    1. Getting Started
    2. The SQL Language
    3. Advanced Features
    II. The SQL Language
    4. SQL Syntax
    5. Data Definition
    6. Data Manipulation
    7. Queries
    8. Data Types
    9. Functions and Operators
    10. Type Conversion
    11. Indexes
    12. Full Text Search
    13. Concurrency Control
    14. Performance Tips
    15. Parallel Query
    III. Server Administration
    16. Installation from Source Code
    17. Installation from Source Code on Windows
    18. Server Setup and Operation
    19. Server Configuration
    20. Client Authentication
    21. Database Roles
    22. Managing Databases
    23. Localization
    24. Routine Database Maintenance Tasks
    25. Backup and Restore
    26. High Availability, Load Balancing, and Replication
    27. Recovery Configuration
    28. Monitoring Database Activity
    29. Monitoring Disk Usage
    30. Reliability and the Write-Ahead Log
    31. Logical Replication
    32. Regression Tests
    IV. Client Interfaces
    33. libpq - C Library
    34. Large Objects
    35. ECPG - Embedded SQL in C
    36. The Information Schema
    V. Server Programming
    37. Extending SQL
    38. Triggers
    39. Event Triggers
    40. The Rule System
    41. Procedural Languages
    42. PL/pgSQL - SQL Procedural Language
    43. PL/Tcl - Tcl Procedural Language
    44. PL/Perl - Perl Procedural Language
    45. PL/Python - Python Procedural Language
    46. Server Programming Interface
    47. Background Worker Processes
    48. Logical Decoding
    49. Replication Progress Tracking
    VI. Reference
    I. SQL Commands
    II. PostgreSQL Client Applications
    III. PostgreSQL Server Applications
    VII. Internals
    50. Overview of PostgreSQL Internals
    51. System Catalogs
    52. Frontend/Backend Protocol
    53. PostgreSQL Coding Conventions
    54. Native Language Support
    55. Writing A Procedural Language Handler
    56. Writing A Foreign Data Wrapper
    57. Writing A Table Sampling Method
    58. Writing A Custom Scan Provider
    59. Genetic Query Optimizer
    60. Index Access Method Interface Definition
    61. Generic WAL Records
    62. GiST Indexes
    63. SP-GiST Indexes
    64. GIN Indexes
    65. BRIN Indexes
    66. Database Physical Storage
    67. BKI Backend Interface
    68. How the Planner Uses Statistics
    VIII. Appendixes
    A. PostgreSQL Error Codes
    B. Date/Time Support
    C. SQL Key Words
    D. SQL Conformance
    E. Release Notes
    F. Additional Supplied Modules
    G. Additional Supplied Programs
    H. External Projects
    I. The Source Code Repository
    J. Documentation
    K. Acronyms
    Bibliography
    Index
    \ No newline at end of file +PostgreSQL 10.12 Documentation

    PostgreSQL 10.12 Documentation

    The PostgreSQL Global Development Group


    Table of Contents

    Preface
    1. What is PostgreSQL?
    2. A Brief History of PostgreSQL
    3. Conventions
    4. Further Information
    5. Bug Reporting Guidelines
    I. Tutorial
    1. Getting Started
    2. The SQL Language
    3. Advanced Features
    II. The SQL Language
    4. SQL Syntax
    5. Data Definition
    6. Data Manipulation
    7. Queries
    8. Data Types
    9. Functions and Operators
    10. Type Conversion
    11. Indexes
    12. Full Text Search
    13. Concurrency Control
    14. Performance Tips
    15. Parallel Query
    III. Server Administration
    16. Installation from Source Code
    17. Installation from Source Code on Windows
    18. Server Setup and Operation
    19. Server Configuration
    20. Client Authentication
    21. Database Roles
    22. Managing Databases
    23. Localization
    24. Routine Database Maintenance Tasks
    25. Backup and Restore
    26. High Availability, Load Balancing, and Replication
    27. Recovery Configuration
    28. Monitoring Database Activity
    29. Monitoring Disk Usage
    30. Reliability and the Write-Ahead Log
    31. Logical Replication
    32. Regression Tests
    IV. Client Interfaces
    33. libpq - C Library
    34. Large Objects
    35. ECPG - Embedded SQL in C
    36. The Information Schema
    V. Server Programming
    37. Extending SQL
    38. Triggers
    39. Event Triggers
    40. The Rule System
    41. Procedural Languages
    42. PL/pgSQL - SQL Procedural Language
    43. PL/Tcl - Tcl Procedural Language
    44. PL/Perl - Perl Procedural Language
    45. PL/Python - Python Procedural Language
    46. Server Programming Interface
    47. Background Worker Processes
    48. Logical Decoding
    49. Replication Progress Tracking
    VI. Reference
    I. SQL Commands
    II. PostgreSQL Client Applications
    III. PostgreSQL Server Applications
    VII. Internals
    50. Overview of PostgreSQL Internals
    51. System Catalogs
    52. Frontend/Backend Protocol
    53. PostgreSQL Coding Conventions
    54. Native Language Support
    55. Writing A Procedural Language Handler
    56. Writing A Foreign Data Wrapper
    57. Writing A Table Sampling Method
    58. Writing A Custom Scan Provider
    59. Genetic Query Optimizer
    60. Index Access Method Interface Definition
    61. Generic WAL Records
    62. GiST Indexes
    63. SP-GiST Indexes
    64. GIN Indexes
    65. BRIN Indexes
    66. Database Physical Storage
    67. BKI Backend Interface
    68. How the Planner Uses Statistics
    VIII. Appendixes
    A. PostgreSQL Error Codes
    B. Date/Time Support
    C. SQL Key Words
    D. SQL Conformance
    E. Release Notes
    F. Additional Supplied Modules
    G. Additional Supplied Programs
    H. External Projects
    I. The Source Code Repository
    J. Documentation
    K. Acronyms
    Bibliography
    Index
    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/index-locking.html postgresql-10-10.12/doc/src/sgml/html/index-locking.html --- postgresql-10-10.10/doc/src/sgml/html/index-locking.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/index-locking.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -60.4. Index Locking Considerations

    60.4. Index Locking Considerations

    Index access methods must handle concurrent updates +60.4. Index Locking Considerations

    60.4. Index Locking Considerations

    Index access methods must handle concurrent updates of the index by multiple processes. The core PostgreSQL system obtains AccessShareLock on the index during an index scan, and diff -Nru postgresql-10-10.10/doc/src/sgml/html/index-scanning.html postgresql-10-10.12/doc/src/sgml/html/index-scanning.html --- postgresql-10-10.10/doc/src/sgml/html/index-scanning.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/index-scanning.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -60.3. Index Scanning

    60.3. Index Scanning

    In an index scan, the index access method is responsible for regurgitating +60.3. Index Scanning

    60.3. Index Scanning

    In an index scan, the index access method is responsible for regurgitating the TIDs of all the tuples it has been told about that match the scan keys. The access method is not involved in actually fetching those tuples from the index's parent table, nor in diff -Nru postgresql-10-10.10/doc/src/sgml/html/index-unique-checks.html postgresql-10-10.12/doc/src/sgml/html/index-unique-checks.html --- postgresql-10-10.10/doc/src/sgml/html/index-unique-checks.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/index-unique-checks.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -60.5. Index Uniqueness Checks

    60.5. Index Uniqueness Checks

    PostgreSQL enforces SQL uniqueness constraints +60.5. Index Uniqueness Checks

    60.5. Index Uniqueness Checks

    PostgreSQL enforces SQL uniqueness constraints using unique indexes, which are indexes that disallow multiple entries with identical keys. An access method that supports this feature sets amcanunique true. diff -Nru postgresql-10-10.10/doc/src/sgml/html/information-schema.html postgresql-10-10.12/doc/src/sgml/html/information-schema.html --- postgresql-10-10.10/doc/src/sgml/html/information-schema.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/information-schema.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 36. The Information Schema

    Chapter 36. The Information Schema

    The information schema consists of a set of views that contain +Chapter 36. The Information Schema

    Chapter 36. The Information Schema

    The information schema consists of a set of views that contain information about the objects defined in the current database. The information schema is defined in the SQL standard and can therefore be expected to be portable and remain stable — unlike the system diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-administrable-role-authorizations.html postgresql-10-10.12/doc/src/sgml/html/infoschema-administrable-role-authorizations.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-administrable-role-authorizations.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-administrable-role-authorizations.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -36.4. administrable_role_authorizations

    36.4. administrable_role_authorizations

    The view administrable_role_authorizations +36.4. administrable_role_authorizations

    36.4. administrable_role_authorizations

    The view administrable_role_authorizations identifies all roles that the current user has the admin option for.

    Table 36.2. administrable_role_authorizations Columns

    NameData TypeDescription
    granteesql_identifier Name of the role to which this role membership was granted (can diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-applicable-roles.html postgresql-10-10.12/doc/src/sgml/html/infoschema-applicable-roles.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-applicable-roles.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-applicable-roles.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -36.5. applicable_roles

    36.5. applicable_roles

    The view applicable_roles identifies all roles +36.5. applicable_roles

    36.5. applicable_roles

    The view applicable_roles identifies all roles whose privileges the current user can use. This means there is some chain of role grants from the current user to the role in question. The current user itself is also an applicable role. The diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-attributes.html postgresql-10-10.12/doc/src/sgml/html/infoschema-attributes.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-attributes.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-attributes.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -36.6. attributes

    36.6. attributes

    The view attributes contains information about +36.6. attributes

    36.6. attributes

    The view attributes contains information about the attributes of composite data types defined in the database. (Note that the view does not give information about table columns, which are sometimes called attributes in PostgreSQL contexts.) diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-character-sets.html postgresql-10-10.12/doc/src/sgml/html/infoschema-character-sets.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-character-sets.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-character-sets.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -36.7. character_sets

    36.7. character_sets

    The view character_sets identifies the character +36.7. character_sets

    36.7. character_sets

    The view character_sets identifies the character sets available in the current database. Since PostgreSQL does not support multiple character sets within one database, this view only shows one, which is the database encoding. diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-check-constraint-routine-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.8. check_constraint_routine_usage

    36.8. check_constraint_routine_usage

    The view check_constraint_routine_usage +36.8. check_constraint_routine_usage

    36.8. check_constraint_routine_usage

    The view check_constraint_routine_usage identifies routines (functions and procedures) that are used by a check constraint. Only those routines are shown that are owned by a currently enabled role. diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-check-constraints.html postgresql-10-10.12/doc/src/sgml/html/infoschema-check-constraints.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-check-constraints.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-check-constraints.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.9. check_constraints

    36.9. check_constraints

    The view check_constraints contains all check +36.9. check_constraints

    36.9. check_constraints

    The view check_constraints contains all check constraints, either defined on a table or on a domain, that are owned by a currently enabled role. (The owner of the table or domain is the owner of the constraint.) diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-collation-character-set-applicab.html postgresql-10-10.12/doc/src/sgml/html/infoschema-collation-character-set-applicab.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-collation-character-set-applicab.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-collation-character-set-applicab.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.11. collation_character_set_applicability

    36.11. collation_character_set_applicability

    The view collation_character_set_applicability +36.11. collation_character_set_applicability

    36.11. collation_character_set_applicability

    The view collation_character_set_applicability identifies which character set the available collations are applicable to. In PostgreSQL, there is only one character set per database (see explanation diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-collations.html postgresql-10-10.12/doc/src/sgml/html/infoschema-collations.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-collations.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-collations.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.10. collations

    36.10. collations

    The view collations contains the collations +36.10. collations

    36.10. collations

    The view collations contains the collations available in the current database.

    Table 36.8. collations Columns

    NameData TypeDescription
    collation_catalogsql_identifierName of the database containing the collation (always the current database)
    collation_schemasql_identifierName of the schema containing the collation
    collation_namesql_identifierName of the default collation
    pad_attributecharacter_data Always NO PAD (The alternative PAD SPACE is not supported by PostgreSQL.) diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-column-domain-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-column-domain-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-column-domain-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-column-domain-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.12. column_domain_usage

    36.12. column_domain_usage

    The view column_domain_usage identifies all +36.12. column_domain_usage

    36.12. column_domain_usage

    The view column_domain_usage identifies all columns (of a table or a view) that make use of some domain defined in the current database and owned by a currently enabled role.

    Table 36.10. column_domain_usage Columns

    NameData TypeDescription
    domain_catalogsql_identifierName of the database containing the domain (always the current database)
    domain_schemasql_identifierName of the schema containing the domain
    domain_namesql_identifierName of the domain
    table_catalogsql_identifierName of the database containing the table (always the current database)
    table_schemasql_identifierName of the schema containing the table
    table_namesql_identifierName of the table
    column_namesql_identifierName of the column

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-column-options.html postgresql-10-10.12/doc/src/sgml/html/infoschema-column-options.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-column-options.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-column-options.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.13. column_options

    36.13. column_options

    The view column_options contains all the +36.13. column_options

    36.13. column_options

    The view column_options contains all the options defined for foreign table columns in the current database. Only those foreign table columns are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-column-privileges.html postgresql-10-10.12/doc/src/sgml/html/infoschema-column-privileges.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-column-privileges.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-column-privileges.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.14. column_privileges

    36.14. column_privileges

    The view column_privileges identifies all +36.14. column_privileges

    36.14. column_privileges

    The view column_privileges identifies all privileges granted on columns to a currently enabled role or by a currently enabled role. There is one row for each combination of column, grantor, and grantee. diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-columns.html postgresql-10-10.12/doc/src/sgml/html/infoschema-columns.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-columns.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-columns.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.16. columns

    36.16. columns

    The view columns contains information about all +36.16. columns

    36.16. columns

    The view columns contains information about all table columns (or view columns) in the database. System columns (oid, etc.) are not included. Only those columns are shown that the current user has access to (by way of being the diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-column-udt-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-column-udt-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-column-udt-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-column-udt-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.15. column_udt_usage

    36.15. column_udt_usage

    The view column_udt_usage identifies all columns +36.15. column_udt_usage

    36.15. column_udt_usage

    The view column_udt_usage identifies all columns that use data types owned by a currently enabled role. Note that in PostgreSQL, built-in data types behave like user-defined types, so they are included here as well. See diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-constraint-column-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-constraint-column-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-constraint-column-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-constraint-column-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.17. constraint_column_usage

    36.17. constraint_column_usage

    The view constraint_column_usage identifies all +36.17. constraint_column_usage

    36.17. constraint_column_usage

    The view constraint_column_usage identifies all columns in the current database that are used by some constraint. Only those columns are shown that are contained in a table owned by a currently enabled role. For a check constraint, this view diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-constraint-table-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-constraint-table-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-constraint-table-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-constraint-table-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.18. constraint_table_usage

    36.18. constraint_table_usage

    The view constraint_table_usage identifies all +36.18. constraint_table_usage

    36.18. constraint_table_usage

    The view constraint_table_usage identifies all tables in the current database that are used by some constraint and are owned by a currently enabled role. (This is different from the view table_constraints, which identifies all diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-data-type-privileges.html postgresql-10-10.12/doc/src/sgml/html/infoschema-data-type-privileges.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-data-type-privileges.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-data-type-privileges.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.19. data_type_privileges

    36.19. data_type_privileges

    The view data_type_privileges identifies all +36.19. data_type_privileges

    36.19. data_type_privileges

    The view data_type_privileges identifies all data type descriptors that the current user has access to, by way of being the owner of the described object or having some privilege for it. A data type descriptor is generated whenever a data type diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-datatypes.html postgresql-10-10.12/doc/src/sgml/html/infoschema-datatypes.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-datatypes.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-datatypes.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -36.2. Data Types

    36.2. Data Types

    The columns of the information schema views use special data types +36.2. Data Types

    36.2. Data Types

    The columns of the information schema views use special data types that are defined in the information schema. These are defined as simple domains over ordinary built-in types. You should not use these types for work outside the information schema, but your diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-domain-constraints.html postgresql-10-10.12/doc/src/sgml/html/infoschema-domain-constraints.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-domain-constraints.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-domain-constraints.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.20. domain_constraints

    36.20. domain_constraints

    The view domain_constraints contains all constraints +36.20. domain_constraints

    36.20. domain_constraints

    The view domain_constraints contains all constraints belonging to domains defined in the current database. Only those domains are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-domains.html postgresql-10-10.12/doc/src/sgml/html/infoschema-domains.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-domains.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-domains.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.22. domains

    36.22. domains

    The view domains contains all domains defined in the +36.22. domains

    36.22. domains

    The view domains contains all domains defined in the current database. Only those domains are shown that the current user has access to (by way of being the owner or having some privilege).

    Table 36.20. domains Columns

    NameData TypeDescription
    domain_catalogsql_identifierName of the database that contains the domain (always the current database)
    domain_schemasql_identifierName of the schema that contains the domain
    domain_namesql_identifierName of the domain
    data_typecharacter_data Data type of the domain, if it is a built-in type, or diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-domain-udt-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-domain-udt-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-domain-udt-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-domain-udt-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.21. domain_udt_usage

    36.21. domain_udt_usage

    The view domain_udt_usage identifies all domains +36.21. domain_udt_usage

    36.21. domain_udt_usage

    The view domain_udt_usage identifies all domains that are based on data types owned by a currently enabled role. Note that in PostgreSQL, built-in data types behave like user-defined types, so they are included here as diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-element-types.html postgresql-10-10.12/doc/src/sgml/html/infoschema-element-types.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-element-types.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-element-types.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.23. element_types

    36.23. element_types

    The view element_types contains the data type +36.23. element_types

    36.23. element_types

    The view element_types contains the data type descriptors of the elements of arrays. When a table column, composite-type attribute, domain, function parameter, or function return value is defined to be of an array type, the respective information schema view only diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-enabled-roles.html postgresql-10-10.12/doc/src/sgml/html/infoschema-enabled-roles.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-enabled-roles.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-enabled-roles.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.24. enabled_roles

    36.24. enabled_roles

    The view enabled_roles identifies the currently +36.24. enabled_roles

    36.24. enabled_roles

    The view enabled_roles identifies the currently enabled roles. The enabled roles are recursively defined as the current user together with all roles that have been granted to the enabled roles with automatic inheritance. In other diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-data-wrapper-options.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.25. foreign_data_wrapper_options

    36.25. foreign_data_wrapper_options

    The view foreign_data_wrapper_options contains +36.25. foreign_data_wrapper_options

    36.25. foreign_data_wrapper_options

    The view foreign_data_wrapper_options contains all the options defined for foreign-data wrappers in the current database. Only those foreign-data wrappers are shown that the current user has access to (by way of being the owner or having diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-data-wrappers.html postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-data-wrappers.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-data-wrappers.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-data-wrappers.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.26. foreign_data_wrappers

    36.26. foreign_data_wrappers

    The view foreign_data_wrappers contains all +36.26. foreign_data_wrappers

    36.26. foreign_data_wrappers

    The view foreign_data_wrappers contains all foreign-data wrappers defined in the current database. Only those foreign-data wrappers are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-server-options.html postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-server-options.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-server-options.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-server-options.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.27. foreign_server_options

    36.27. foreign_server_options

    The view foreign_server_options contains all the +36.27. foreign_server_options

    36.27. foreign_server_options

    The view foreign_server_options contains all the options defined for foreign servers in the current database. Only those foreign servers are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-servers.html postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-servers.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-servers.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-servers.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.28. foreign_servers

    36.28. foreign_servers

    The view foreign_servers contains all foreign +36.28. foreign_servers

    36.28. foreign_servers

    The view foreign_servers contains all foreign servers defined in the current database. Only those foreign servers are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-table-options.html postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-table-options.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-table-options.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-table-options.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.29. foreign_table_options

    36.29. foreign_table_options

    The view foreign_table_options contains all the +36.29. foreign_table_options

    36.29. foreign_table_options

    The view foreign_table_options contains all the options defined for foreign tables in the current database. Only those foreign tables are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-tables.html postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-tables.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-foreign-tables.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-foreign-tables.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.30. foreign_tables

    36.30. foreign_tables

    The view foreign_tables contains all foreign +36.30. foreign_tables

    36.30. foreign_tables

    The view foreign_tables contains all foreign tables defined in the current database. Only those foreign tables are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-information-schema-catalog-name.html postgresql-10-10.12/doc/src/sgml/html/infoschema-information-schema-catalog-name.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-information-schema-catalog-name.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-information-schema-catalog-name.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -36.3. information_schema_catalog_name

    36.3. information_schema_catalog_name

    information_schema_catalog_name is a table that +36.3. information_schema_catalog_name

    36.3. information_schema_catalog_name

    information_schema_catalog_name is a table that always contains one row and one column containing the name of the current database (current catalog, in SQL terminology).

    Table 36.1. information_schema_catalog_name Columns

    NameData TypeDescription
    catalog_namesql_identifierName of the database that contains this information schema

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-key-column-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-key-column-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-key-column-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-key-column-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.31. key_column_usage

    36.31. key_column_usage

    The view key_column_usage identifies all columns +36.31. key_column_usage

    36.31. key_column_usage

    The view key_column_usage identifies all columns in the current database that are restricted by some unique, primary key, or foreign key constraint. Check constraints are not included in this view. Only those columns are shown that the current user diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-parameters.html postgresql-10-10.12/doc/src/sgml/html/infoschema-parameters.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-parameters.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-parameters.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.32. parameters

    36.32. parameters

    The view parameters contains information about +36.32. parameters

    36.32. parameters

    The view parameters contains information about the parameters (arguments) of all functions in the current database. Only those functions are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-referential-constraints.html postgresql-10-10.12/doc/src/sgml/html/infoschema-referential-constraints.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-referential-constraints.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-referential-constraints.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.33. referential_constraints

    36.33. referential_constraints

    The view referential_constraints contains all +36.33. referential_constraints

    36.33. referential_constraints

    The view referential_constraints contains all referential (foreign key) constraints in the current database. Only those constraints are shown for which the current user has write access to the referencing table (by way of being the diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-role-column-grants.html postgresql-10-10.12/doc/src/sgml/html/infoschema-role-column-grants.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-role-column-grants.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-role-column-grants.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.34. role_column_grants

    36.34. role_column_grants

    The view role_column_grants identifies all +36.34. role_column_grants

    36.34. role_column_grants

    The view role_column_grants identifies all privileges granted on columns where the grantor or grantee is a currently enabled role. Further information can be found under column_privileges. The only effective diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-role-routine-grants.html postgresql-10-10.12/doc/src/sgml/html/infoschema-role-routine-grants.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-role-routine-grants.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-role-routine-grants.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.35. role_routine_grants

    36.35. role_routine_grants

    The view role_routine_grants identifies all +36.35. role_routine_grants

    36.35. role_routine_grants

    The view role_routine_grants identifies all privileges granted on functions where the grantor or grantee is a currently enabled role. Further information can be found under routine_privileges. The only effective diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-role-table-grants.html postgresql-10-10.12/doc/src/sgml/html/infoschema-role-table-grants.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-role-table-grants.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-role-table-grants.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.36. role_table_grants

    36.36. role_table_grants

    The view role_table_grants identifies all +36.36. role_table_grants

    36.36. role_table_grants

    The view role_table_grants identifies all privileges granted on tables or views where the grantor or grantee is a currently enabled role. Further information can be found under table_privileges. The only effective diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-role-udt-grants.html postgresql-10-10.12/doc/src/sgml/html/infoschema-role-udt-grants.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-role-udt-grants.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-role-udt-grants.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.37. role_udt_grants

    36.37. role_udt_grants

    The view role_udt_grants is intended to identify +36.37. role_udt_grants

    36.37. role_udt_grants

    The view role_udt_grants is intended to identify USAGE privileges granted on user-defined types where the grantor or grantee is a currently enabled role. Further information can be found under diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-role-usage-grants.html postgresql-10-10.12/doc/src/sgml/html/infoschema-role-usage-grants.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-role-usage-grants.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-role-usage-grants.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.38. role_usage_grants

    36.38. role_usage_grants

    The view role_usage_grants identifies +36.38. role_usage_grants

    36.38. role_usage_grants

    The view role_usage_grants identifies USAGE privileges granted on various kinds of objects where the grantor or grantee is a currently enabled role. Further information can be found under diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-routine-privileges.html postgresql-10-10.12/doc/src/sgml/html/infoschema-routine-privileges.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-routine-privileges.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-routine-privileges.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.39. routine_privileges

    36.39. routine_privileges

    The view routine_privileges identifies all +36.39. routine_privileges

    36.39. routine_privileges

    The view routine_privileges identifies all privileges granted on functions to a currently enabled role or by a currently enabled role. There is one row for each combination of function, grantor, and grantee. diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-routines.html postgresql-10-10.12/doc/src/sgml/html/infoschema-routines.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-routines.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-routines.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.40. routines

    36.40. routines

    The view routines contains all functions in the +36.40. routines

    36.40. routines

    The view routines contains all functions in the current database. Only those functions are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-schema.html postgresql-10-10.12/doc/src/sgml/html/infoschema-schema.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-schema.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-schema.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -36.1. The Schema

    36.1. The Schema

    The information schema itself is a schema named +36.1. The Schema

    36.1. The Schema

    The information schema itself is a schema named information_schema. This schema automatically exists in all databases. The owner of this schema is the initial database user in the cluster, and that user naturally has all the diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-schemata.html postgresql-10-10.12/doc/src/sgml/html/infoschema-schemata.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-schemata.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-schemata.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.41. schemata

    36.41. schemata

    The view schemata contains all schemas in the current +36.41. schemata

    36.41. schemata

    The view schemata contains all schemas in the current database that the current user has access to (by way of being the owner or having some privilege).

    Table 36.39. schemata Columns

    NameData TypeDescription
    catalog_namesql_identifierName of the database that the schema is contained in (always the current database)
    schema_namesql_identifierName of the schema
    schema_ownersql_identifierName of the owner of the schema
    default_character_set_catalogsql_identifierApplies to a feature not available in PostgreSQL
    default_character_set_schemasql_identifierApplies to a feature not available in PostgreSQL
    default_character_set_namesql_identifierApplies to a feature not available in PostgreSQL
    sql_pathcharacter_dataApplies to a feature not available in PostgreSQL

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sequences.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sequences.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sequences.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sequences.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.42. sequences

    36.42. sequences

    The view sequences contains all sequences +36.42. sequences

    36.42. sequences

    The view sequences contains all sequences defined in the current database. Only those sequences are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-features.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-features.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-features.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-features.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.43. sql_features

    36.43. sql_features

    The table sql_features contains information +36.43. sql_features

    36.43. sql_features

    The table sql_features contains information about which formal features defined in the SQL standard are supported by PostgreSQL. This is the same information that is presented in Appendix D. diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-implementation-info.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-implementation-info.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-implementation-info.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-implementation-info.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.44. sql_implementation_info

    36.44. sql_implementation_info

    The table sql_implementation_info contains +36.44. sql_implementation_info

    36.44. sql_implementation_info

    The table sql_implementation_info contains information about various aspects that are left implementation-defined by the SQL standard. This information is primarily intended for use in the context of the ODBC interface; diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-languages.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-languages.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-languages.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-languages.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.45. sql_languages

    36.45. sql_languages

    The table sql_languages contains one row for +36.45. sql_languages

    36.45. sql_languages

    The table sql_languages contains one row for each SQL language binding that is supported by PostgreSQL. PostgreSQL supports direct SQL and diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-packages.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-packages.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-packages.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-packages.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.46. sql_packages

    36.46. sql_packages

    The table sql_packages contains information +36.46. sql_packages

    36.46. sql_packages

    The table sql_packages contains information about which feature packages defined in the SQL standard are supported by PostgreSQL. Refer to Appendix D for background information on feature packages.

    Table 36.44. sql_packages Columns

    NameData TypeDescription
    feature_idcharacter_dataIdentifier string of the package
    feature_namecharacter_dataDescriptive name of the package
    is_supportedyes_or_no YES if the package is fully supported by the diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-parts.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-parts.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-parts.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-parts.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.47. sql_parts

    36.47. sql_parts

    The table sql_parts contains information about +36.47. sql_parts

    36.47. sql_parts

    The table sql_parts contains information about which of the several parts of the SQL standard are supported by PostgreSQL.

    Table 36.45. sql_parts Columns

    NameData TypeDescription
    feature_idcharacter_dataAn identifier string containing the number of the part
    feature_namecharacter_dataDescriptive name of the part
    is_supportedyes_or_no YES if the part is fully supported by the diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-sizing.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-sizing.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-sizing.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-sizing.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.48. sql_sizing

    36.48. sql_sizing

    The table sql_sizing contains information about +36.48. sql_sizing

    36.48. sql_sizing

    The table sql_sizing contains information about various size limits and maximum values in PostgreSQL. This information is primarily intended for use in the context of the ODBC interface; diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-sizing-profiles.html postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-sizing-profiles.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-sql-sizing-profiles.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-sql-sizing-profiles.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.49. sql_sizing_profiles

    36.49. sql_sizing_profiles

    The table sql_sizing_profiles contains +36.49. sql_sizing_profiles

    36.49. sql_sizing_profiles

    The table sql_sizing_profiles contains information about the sql_sizing values that are required by various profiles of the SQL standard. PostgreSQL does not track any SQL profiles, so this table is empty. diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-table-constraints.html postgresql-10-10.12/doc/src/sgml/html/infoschema-table-constraints.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-table-constraints.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-table-constraints.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.50. table_constraints

    36.50. table_constraints

    The view table_constraints contains all +36.50. table_constraints

    36.50. table_constraints

    The view table_constraints contains all constraints belonging to tables that the current user owns or has some privilege other than SELECT on.

    Table 36.48. table_constraints Columns

    NameData TypeDescription
    constraint_catalogsql_identifierName of the database that contains the constraint (always the current database)
    constraint_schemasql_identifierName of the schema that contains the constraint
    constraint_namesql_identifierName of the constraint
    table_catalogsql_identifierName of the database that contains the table (always the current database)
    table_schemasql_identifierName of the schema that contains the table
    table_namesql_identifierName of the table
    constraint_typecharacter_data Type of the constraint: CHECK, diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-table-privileges.html postgresql-10-10.12/doc/src/sgml/html/infoschema-table-privileges.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-table-privileges.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-table-privileges.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.51. table_privileges

    36.51. table_privileges

    The view table_privileges identifies all +36.51. table_privileges

    36.51. table_privileges

    The view table_privileges identifies all privileges granted on tables or views to a currently enabled role or by a currently enabled role. There is one row for each combination of table, grantor, and grantee. diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-tables.html postgresql-10-10.12/doc/src/sgml/html/infoschema-tables.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-tables.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-tables.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.52. tables

    36.52. tables

    The view tables contains all tables and views +36.52. tables

    36.52. tables

    The view tables contains all tables and views defined in the current database. Only those tables and views are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-transforms.html postgresql-10-10.12/doc/src/sgml/html/infoschema-transforms.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-transforms.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-transforms.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.53. transforms

    36.53. transforms

    The view transforms contains information about the +36.53. transforms

    36.53. transforms

    The view transforms contains information about the transforms defined in the current database. More precisely, it contains a row for each function contained in a transform (the from SQL or to SQL function). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-triggered-update-columns.html postgresql-10-10.12/doc/src/sgml/html/infoschema-triggered-update-columns.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-triggered-update-columns.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-triggered-update-columns.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.54. triggered_update_columns

    36.54. triggered_update_columns

    For triggers in the current database that specify a column list +36.54. triggered_update_columns

    36.54. triggered_update_columns

    For triggers in the current database that specify a column list (like UPDATE OF column1, column2), the view triggered_update_columns identifies these columns. Triggers that do not specify a column list are not diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-triggers.html postgresql-10-10.12/doc/src/sgml/html/infoschema-triggers.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-triggers.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-triggers.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.55. triggers

    36.55. triggers

    The view triggers contains all triggers defined +36.55. triggers

    36.55. triggers

    The view triggers contains all triggers defined in the current database on tables and views that the current user owns or has some privilege other than SELECT on.

    Table 36.53. triggers Columns

    NameData TypeDescription
    trigger_catalogsql_identifierName of the database that contains the trigger (always the current database)
    trigger_schemasql_identifierName of the schema that contains the trigger
    trigger_namesql_identifierName of the trigger
    event_manipulationcharacter_data Event that fires the trigger (INSERT, diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-udt-privileges.html postgresql-10-10.12/doc/src/sgml/html/infoschema-udt-privileges.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-udt-privileges.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-udt-privileges.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.56. udt_privileges

    36.56. udt_privileges

    The view udt_privileges identifies +36.56. udt_privileges

    36.56. udt_privileges

    The view udt_privileges identifies USAGE privileges granted on user-defined types to a currently enabled role or by a currently enabled role. There is one row for each combination of type, grantor, and grantee. This view shows only diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-usage-privileges.html postgresql-10-10.12/doc/src/sgml/html/infoschema-usage-privileges.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-usage-privileges.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-usage-privileges.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.57. usage_privileges

    36.57. usage_privileges

    The view usage_privileges identifies +36.57. usage_privileges

    36.57. usage_privileges

    The view usage_privileges identifies USAGE privileges granted on various kinds of objects to a currently enabled role or by a currently enabled role. In PostgreSQL, this currently applies to diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-user-defined-types.html postgresql-10-10.12/doc/src/sgml/html/infoschema-user-defined-types.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-user-defined-types.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-user-defined-types.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.58. user_defined_types

    36.58. user_defined_types

    The view user_defined_types currently contains +36.58. user_defined_types

    36.58. user_defined_types

    The view user_defined_types currently contains all composite types defined in the current database. Only those types are shown that the current user has access to (by way of being the owner or having some privilege). diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-user-mapping-options.html postgresql-10-10.12/doc/src/sgml/html/infoschema-user-mapping-options.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-user-mapping-options.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-user-mapping-options.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.59. user_mapping_options

    36.59. user_mapping_options

    The view user_mapping_options contains all the +36.59. user_mapping_options

    36.59. user_mapping_options

    The view user_mapping_options contains all the options defined for user mappings in the current database. Only those user mappings are shown where the current user has access to the corresponding foreign server (by way of being the owner or diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-user-mappings.html postgresql-10-10.12/doc/src/sgml/html/infoschema-user-mappings.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-user-mappings.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-user-mappings.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.60. user_mappings

    36.60. user_mappings

    The view user_mappings contains all user +36.60. user_mappings

    36.60. user_mappings

    The view user_mappings contains all user mappings defined in the current database. Only those user mappings are shown where the current user has access to the corresponding foreign server (by way of being the owner or having some diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-view-column-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-view-column-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-view-column-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-view-column-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.61. view_column_usage

    36.61. view_column_usage

    The view view_column_usage identifies all +36.61. view_column_usage

    36.61. view_column_usage

    The view view_column_usage identifies all columns that are used in the query expression of a view (the SELECT statement that defines the view). A column is only included if the table that contains the column is diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-view-routine-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-view-routine-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-view-routine-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-view-routine-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.62. view_routine_usage

    36.62. view_routine_usage

    The view view_routine_usage identifies all +36.62. view_routine_usage

    36.62. view_routine_usage

    The view view_routine_usage identifies all routines (functions and procedures) that are used in the query expression of a view (the SELECT statement that defines the view). A routine is only included if that routine is diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-views.html postgresql-10-10.12/doc/src/sgml/html/infoschema-views.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-views.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-views.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.64. views

    36.64. views

    The view views contains all views defined in the +36.64. views

    36.64. views

    The view views contains all views defined in the current database. Only those views are shown that the current user has access to (by way of being the owner or having some privilege).

    Table 36.62. views Columns

    NameData TypeDescription
    table_catalogsql_identifierName of the database that contains the view (always the current database)
    table_schemasql_identifierName of the schema that contains the view
    table_namesql_identifierName of the view
    view_definitioncharacter_data Query expression defining the view (null if the view is not diff -Nru postgresql-10-10.10/doc/src/sgml/html/infoschema-view-table-usage.html postgresql-10-10.12/doc/src/sgml/html/infoschema-view-table-usage.html --- postgresql-10-10.10/doc/src/sgml/html/infoschema-view-table-usage.html 2019-08-05 21:30:04.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/infoschema-view-table-usage.html 2020-02-10 22:31:49.000000000 +0000 @@ -1,5 +1,5 @@ -36.63. view_table_usage

    36.63. view_table_usage

    The view view_table_usage identifies all tables +36.63. view_table_usage

    36.63. view_table_usage

    The view view_table_usage identifies all tables that are used in the query expression of a view (the SELECT statement that defines the view). A table is only included if that table is owned by a currently diff -Nru postgresql-10-10.10/doc/src/sgml/html/installation.html postgresql-10-10.12/doc/src/sgml/html/installation.html --- postgresql-10-10.10/doc/src/sgml/html/installation.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/installation.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 16.  Installation from Source Code

    Chapter 16.  Installation from Source Code

    This +Chapter 16.  Installation from Source Code

    Chapter 16.  Installation from Source Code

    This chapter describes the installation of PostgreSQL using the source code distribution. (If you are installing a pre-packaged distribution, diff -Nru postgresql-10-10.10/doc/src/sgml/html/installation-platform-notes.html postgresql-10-10.12/doc/src/sgml/html/installation-platform-notes.html --- postgresql-10-10.10/doc/src/sgml/html/installation-platform-notes.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/installation-platform-notes.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -16.7. Platform-specific Notes

    16.7. Platform-specific Notes

    This section documents additional platform-specific issues +16.7. Platform-specific Notes

    16.7. 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 Section 16.2 as well. Also, diff -Nru postgresql-10-10.10/doc/src/sgml/html/install-getsource.html postgresql-10-10.12/doc/src/sgml/html/install-getsource.html --- postgresql-10-10.10/doc/src/sgml/html/install-getsource.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/install-getsource.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,16 +1,16 @@ -16.3. Getting The Source

    16.3. Getting The Source

    The PostgreSQL 10.10 sources can be obtained from the +16.3. Getting The Source

    16.3. Getting The Source

    The PostgreSQL 10.12 sources can be obtained from the download section of our website: https://www.postgresql.org/download/. You - should get a file named postgresql-10.10.tar.gz - or postgresql-10.10.tar.bz2. After + should get a file named postgresql-10.12.tar.gz + or postgresql-10.12.tar.bz2. After you have obtained the file, unpack it: -

    gunzip postgresql-10.10.tar.gz
    -tar xf postgresql-10.10.tar

    +

    gunzip postgresql-10.12.tar.gz
    +tar xf postgresql-10.12.tar

    (Use bunzip2 instead of gunzip if you have the .bz2 file.) This will create a directory - postgresql-10.10 under the current directory + postgresql-10.12 under the current directory with the PostgreSQL sources. Change into that directory for the rest of the installation procedure. diff -Nru postgresql-10-10.10/doc/src/sgml/html/install-post.html postgresql-10-10.12/doc/src/sgml/html/install-post.html --- postgresql-10-10.10/doc/src/sgml/html/install-post.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/install-post.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -16.5. Post-Installation Setup

    16.5. Post-Installation Setup

    16.5.1. Shared Libraries

    On some systems with shared libraries +16.5. Post-Installation Setup

    16.5. Post-Installation Setup

    16.5.1. 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 diff -Nru postgresql-10-10.10/doc/src/sgml/html/install-procedure.html postgresql-10-10.12/doc/src/sgml/html/install-procedure.html --- postgresql-10-10.10/doc/src/sgml/html/install-procedure.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/install-procedure.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -16.4. Installation Procedure

    16.4. Installation Procedure

    1. Configuration

      The first step of the installation procedure is to configure the +16.4. Installation Procedure

      16.4. 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: diff -Nru postgresql-10-10.10/doc/src/sgml/html/install-requirements.html postgresql-10-10.12/doc/src/sgml/html/install-requirements.html --- postgresql-10-10.10/doc/src/sgml/html/install-requirements.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/install-requirements.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -16.2. Requirements

        16.2. Requirements

        In general, a modern Unix-compatible platform should be able to run +16.2. Requirements

        16.2. 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 Section 16.6 diff -Nru postgresql-10-10.10/doc/src/sgml/html/install-short.html postgresql-10-10.12/doc/src/sgml/html/install-short.html --- postgresql-10-10.10/doc/src/sgml/html/install-short.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/install-short.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -16.1. Short Version

        16.1. Short Version

        ./configure
        +16.1. Short Version

        16.1. Short Version

        ./configure
         make
         su
         make install
        diff -Nru postgresql-10-10.10/doc/src/sgml/html/install-windows-full.html postgresql-10-10.12/doc/src/sgml/html/install-windows-full.html
        --- postgresql-10-10.10/doc/src/sgml/html/install-windows-full.html	2019-08-05 21:30:00.000000000 +0000
        +++ postgresql-10-10.12/doc/src/sgml/html/install-windows-full.html	2020-02-10 22:31:45.000000000 +0000
        @@ -1,18 +1,19 @@
         
         17.1. Building with Visual C++ or the Microsoft Windows SDK

        17.1. Building with Visual C++ or the + Microsoft Windows SDK

    Prev UpChapter 17. Installation from Source Code on WindowsHome Next

    17.1. Building with Visual C++ or the Microsoft Windows SDK

    PostgreSQL can be built using the Visual C++ compiler suite from Microsoft. These compilers can be either from Visual Studio, Visual Studio Express or some versions of the Microsoft Windows SDK. If you do not already have a Visual Studio environment set up, the easiest - ways are to use the compilers from Visual Studio Express 2019 - for Windows Desktop or those in the Windows SDK - 10, which are both free downloads from Microsoft. + ways are to use the compilers from + Visual Studio 2019 or those in the + Windows SDK 10, which are both free downloads + from Microsoft.

    Both 32-bit and 64-bit builds are possible with the Microsoft Compiler suite. 32-bit PostgreSQL builds are possible with Visual Studio 2005 to - Visual Studio 2019 (including Express editions), + Visual Studio 2019, as well as standalone Windows SDK releases 6.0 to 10. 64-bit PostgreSQL builds are supported with Microsoft Windows SDK version 6.0a to 10 or diff -Nru postgresql-10-10.10/doc/src/sgml/html/install-windows.html postgresql-10-10.12/doc/src/sgml/html/install-windows.html --- postgresql-10-10.10/doc/src/sgml/html/install-windows.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/install-windows.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 17. Installation from Source Code on Windows

    Chapter 17. Installation from Source Code on Windows

    Table of Contents

    17.1. Building with Visual C++ or the +Chapter 17. Installation from Source Code on Windows

    Chapter 17. Installation from Source Code on Windows

    It is recommended that most users download the binary distribution for Windows, available as a graphical installer package from the PostgreSQL website. Building from source @@ -7,9 +7,8 @@ or extensions.

    There are several different ways of building PostgreSQL on Windows. The simplest way to build with - Microsoft tools is to install Visual Studio Express 2019 - for Windows Desktop and use the included - compiler. It is also possible to build with the full + Microsoft tools is to install Visual Studio 2019 + and use the included compiler. It is also possible to build with the full Microsoft Visual C++ 2005 to 2019. In some cases that requires the installation of the Windows SDK in addition to the compiler. diff -Nru postgresql-10-10.10/doc/src/sgml/html/intagg.html postgresql-10-10.12/doc/src/sgml/html/intagg.html --- postgresql-10-10.10/doc/src/sgml/html/intagg.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/intagg.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.18. intagg

    F.18. intagg

    The intagg module provides an integer aggregator and an +F.18. intagg

    F.18. intagg

    The intagg module provides an integer aggregator and an enumerator. intagg is now obsolete, because there are built-in functions that provide a superset of its capabilities. However, the module is still provided as a compatibility wrapper around diff -Nru postgresql-10-10.10/doc/src/sgml/html/intarray.html postgresql-10-10.12/doc/src/sgml/html/intarray.html --- postgresql-10-10.10/doc/src/sgml/html/intarray.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/intarray.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.19. intarray

    F.19. intarray

    The intarray module provides a number of useful functions +F.19. intarray

    F.19. intarray

    The intarray module provides a number of useful functions and operators for manipulating null-free arrays of integers. There is also support for indexed searches using some of the operators.

    All of these operations will throw an error if a supplied array contains any diff -Nru postgresql-10-10.10/doc/src/sgml/html/internals.html postgresql-10-10.12/doc/src/sgml/html/internals.html --- postgresql-10-10.10/doc/src/sgml/html/internals.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/internals.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,4 +1,4 @@ -Part VII. Internals

    Part VII. Internals

    This part contains assorted information that might be of use to +Part VII. Internals

    Part VII. Internals

    This part contains assorted information that might be of use to PostgreSQL developers.

    Table of Contents

    50. Overview of PostgreSQL Internals
    50.1. The Path of a Query
    50.2. How Connections are Established
    50.3. The Parser Stage
    50.4. The PostgreSQL Rule System
    50.5. Planner/Optimizer
    50.6. Executor
    51. System Catalogs
    51.1. Overview
    51.2. pg_aggregate
    51.3. pg_am
    51.4. pg_amop
    51.5. pg_amproc
    51.6. pg_attrdef
    51.7. pg_attribute
    51.8. pg_authid
    51.9. pg_auth_members
    51.10. pg_cast
    51.11. pg_class
    51.12. pg_collation
    51.13. pg_constraint
    51.14. pg_conversion
    51.15. pg_database
    51.16. pg_db_role_setting
    51.17. pg_default_acl
    51.18. pg_depend
    51.19. pg_description
    51.20. pg_enum
    51.21. pg_event_trigger
    51.22. pg_extension
    51.23. pg_foreign_data_wrapper
    51.24. pg_foreign_server
    51.25. pg_foreign_table
    51.26. pg_index
    51.27. pg_inherits
    51.28. pg_init_privs
    51.29. pg_language
    51.30. pg_largeobject
    51.31. pg_largeobject_metadata
    51.32. pg_namespace
    51.33. pg_opclass
    51.34. pg_operator
    51.35. pg_opfamily
    51.36. pg_partitioned_table
    51.37. pg_pltemplate
    51.38. pg_policy
    51.39. pg_proc
    51.40. pg_publication
    51.41. pg_publication_rel
    51.42. pg_range
    51.43. pg_replication_origin
    51.44. pg_rewrite
    51.45. pg_seclabel
    51.46. pg_sequence
    51.47. pg_shdepend
    51.48. pg_shdescription
    51.49. pg_shseclabel
    51.50. pg_statistic
    51.51. pg_statistic_ext
    51.52. pg_subscription
    51.53. pg_subscription_rel
    51.54. pg_tablespace
    51.55. pg_transform
    51.56. pg_trigger
    51.57. pg_ts_config
    51.58. pg_ts_config_map
    51.59. pg_ts_dict
    51.60. pg_ts_parser
    51.61. pg_ts_template
    51.62. pg_type
    51.63. pg_user_mapping
    51.64. System Views
    51.65. pg_available_extensions
    51.66. pg_available_extension_versions
    51.67. pg_config
    51.68. pg_cursors
    51.69. pg_file_settings
    51.70. pg_group
    51.71. pg_hba_file_rules
    51.72. pg_indexes
    51.73. pg_locks
    51.74. pg_matviews
    51.75. pg_policies
    51.76. pg_prepared_statements
    51.77. pg_prepared_xacts
    51.78. pg_publication_tables
    51.79. pg_replication_origin_status
    51.80. pg_replication_slots
    51.81. pg_roles
    51.82. pg_rules
    51.83. pg_seclabels
    51.84. pg_sequences
    51.85. pg_settings
    51.86. pg_shadow
    51.87. pg_stats
    51.88. pg_tables
    51.89. pg_timezone_abbrevs
    51.90. pg_timezone_names
    51.91. pg_user
    51.92. pg_user_mappings
    51.93. pg_views
    52. Frontend/Backend Protocol
    52.1. Overview
    52.2. Message Flow
    52.3. SASL Authentication
    52.4. Streaming Replication Protocol
    52.5. Logical Streaming Replication Protocol
    52.6. Message Data Types
    52.7. Message Formats
    52.8. Error and Notice Message Fields
    52.9. Logical Replication Message Formats
    52.10. Summary of Changes since Protocol 2.0
    53. PostgreSQL Coding Conventions
    53.1. Formatting
    53.2. Reporting Errors Within the Server
    53.3. Error Message Style Guide
    53.4. Miscellaneous Coding Conventions
    54. Native Language Support
    54.1. For the Translator
    54.2. For the Programmer
    55. Writing A Procedural Language Handler
    56. Writing A Foreign Data Wrapper
    56.1. Foreign Data Wrapper Functions
    56.2. Foreign Data Wrapper Callback Routines
    56.3. Foreign Data Wrapper Helper Functions
    56.4. Foreign Data Wrapper Query Planning
    56.5. Row Locking in Foreign Data Wrappers
    57. Writing A Table Sampling Method
    57.1. Sampling Method Support Functions
    58. Writing A Custom Scan Provider
    58.1. Creating Custom Scan Paths
    58.2. Creating Custom Scan Plans
    58.3. Executing Custom Scans
    59. Genetic Query Optimizer
    59.1. Query Handling as a Complex Optimization Problem
    59.2. Genetic Algorithms
    59.3. Genetic Query Optimization (GEQO) in PostgreSQL
    59.4. Further Reading
    60. Index Access Method Interface Definition
    60.1. Basic API Structure for Indexes
    60.2. Index Access Method Functions
    60.3. Index Scanning
    60.4. Index Locking Considerations
    60.5. Index Uniqueness Checks
    60.6. Index Cost Estimation Functions
    61. Generic WAL Records
    62. GiST Indexes
    62.1. Introduction
    62.2. Built-in Operator Classes
    62.3. Extensibility
    62.4. Implementation
    62.5. Examples
    63. SP-GiST Indexes
    63.1. Introduction
    63.2. Built-in Operator Classes
    63.3. Extensibility
    63.4. Implementation
    63.5. Examples
    64. GIN Indexes
    64.1. Introduction
    64.2. Built-in Operator Classes
    64.3. Extensibility
    64.4. Implementation
    64.5. GIN Tips and Tricks
    64.6. Limitations
    64.7. Examples
    65. BRIN Indexes
    65.1. Introduction
    65.2. Built-in Operator Classes
    65.3. Extensibility
    66. Database Physical Storage
    66.1. Database File Layout
    66.2. TOAST
    66.3. Free Space Map
    66.4. Visibility Map
    66.5. The Initialization Fork
    66.6. Database Page Layout
    67. BKI Backend Interface
    67.1. BKI File Format
    67.2. BKI Commands
    67.3. Structure of the Bootstrap BKI File
    67.4. Example
    68. How the Planner Uses Statistics
    68.1. Row Estimation Examples
    68.2. Multivariate Statistics Examples
    68.3. Planner Statistics and Security
    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/intro-whatis.html postgresql-10-10.12/doc/src/sgml/html/intro-whatis.html --- postgresql-10-10.10/doc/src/sgml/html/intro-whatis.html 2019-08-05 21:29:55.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/intro-whatis.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -1.  What is PostgreSQL?

    1.  What is PostgreSQL?

    PostgreSQL is an object-relational +1.  What is PostgreSQL?

    1.  What is PostgreSQL?

    PostgreSQL is an object-relational database management system (ORDBMS) based on POSTGRES, Version 4.2, developed at the University of California at Berkeley Computer Science diff -Nru postgresql-10-10.10/doc/src/sgml/html/isn.html postgresql-10-10.12/doc/src/sgml/html/isn.html --- postgresql-10-10.10/doc/src/sgml/html/isn.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/isn.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.20. isn

    F.20. isn

    The isn module provides data types for the following +F.20. isn

    F.20. isn

    The isn module provides data types for the following international product numbering standards: EAN13, UPC, ISBN (books), ISMN (music), and ISSN (serials). Numbers are validated on input according to a hard-coded list of prefixes; this list of prefixes is also used to hyphenate diff -Nru postgresql-10-10.10/doc/src/sgml/html/kernel-resources.html postgresql-10-10.12/doc/src/sgml/html/kernel-resources.html --- postgresql-10-10.10/doc/src/sgml/html/kernel-resources.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/kernel-resources.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.4. Managing Kernel Resources

    18.4. Managing Kernel Resources

    PostgreSQL can sometimes exhaust various operating system +18.4. Managing Kernel Resources

    18.4. Managing Kernel Resources

    PostgreSQL can sometimes exhaust various operating system resource limits, especially when multiple copies of the server are running on the same system, or in very large installations. This section explains the kernel resources used by PostgreSQL and the steps you diff -Nru postgresql-10-10.10/doc/src/sgml/html/largeobjects.html postgresql-10-10.12/doc/src/sgml/html/largeobjects.html --- postgresql-10-10.10/doc/src/sgml/html/largeobjects.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/largeobjects.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 34. Large Objects

    Chapter 34. Large Objects

    PostgreSQL has a large object +Chapter 34. Large Objects

    Chapter 34. Large Objects

    PostgreSQL has a large object facility, which provides stream-style access to user data that is stored in a special large-object structure. Streaming access is useful when working with data values that are too large to manipulate diff -Nru postgresql-10-10.10/doc/src/sgml/html/legalnotice.html postgresql-10-10.12/doc/src/sgml/html/legalnotice.html --- postgresql-10-10.10/doc/src/sgml/html/legalnotice.html 2019-08-05 21:29:53.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/legalnotice.html 2020-02-10 22:31:39.000000000 +0000 @@ -1,5 +1,5 @@ -Legal Notice

    Legal Notice

    PostgreSQL is Copyright © 1996-2019 +Legal Notice

    Legal Notice

    PostgreSQL is Copyright © 1996-2020 by the PostgreSQL Global Development Group.

    Postgres95 is Copyright © 1994-5 by the Regents of the University of California. diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-async.html postgresql-10-10.12/doc/src/sgml/html/libpq-async.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-async.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-async.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.4. Asynchronous Command Processing

    33.4. Asynchronous Command Processing

    The PQexec function is adequate for submitting +33.4. Asynchronous Command Processing

    33.4. Asynchronous Command Processing

    The PQexec function is adequate for submitting commands in normal, synchronous applications. It has a few deficiencies, however, that can be of importance to some users: diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-build.html postgresql-10-10.12/doc/src/sgml/html/libpq-build.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-build.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-build.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.20. Building libpq Programs

    33.20. Building libpq Programs

    To build (i.e., compile and link) a program using +33.20. Building libpq Programs

    33.20. Building libpq Programs

    To build (i.e., compile and link) a program using libpq you need to do all of the following things: diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-cancel.html postgresql-10-10.12/doc/src/sgml/html/libpq-cancel.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-cancel.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-cancel.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.6. Canceling Queries in Progress

    33.6. Canceling Queries in Progress

    A client application can request cancellation of a command that is +33.6. Canceling Queries in Progress

    33.6. Canceling Queries in Progress

    A client application can request cancellation of a command that is still being processed by the server, using the functions described in this section. diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-connect.html postgresql-10-10.12/doc/src/sgml/html/libpq-connect.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-connect.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-connect.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -33.1. Database Connection Control Functions

    33.1. Database Connection Control Functions

    The following functions deal with making a connection to a +33.1. Database Connection Control Functions

    33.1. Database Connection Control Functions

    The following functions deal with making a connection to a PostgreSQL backend server. An application program can have several backend connections open at one time. (One reason to do that is to access more than one @@ -685,8 +685,10 @@ This must match the service name specified in the server configuration for Kerberos authentication to succeed. (See also Section 20.3.3.) -

    gsslib

    GSS library to use for GSSAPI authentication. Only used on Windows. - Set to gssapi to force libpq to use the GSSAPI +

    gsslib

    GSS library to use for GSSAPI authentication. + Currently this is disregarded except on Windows builds that include + both GSSAPI and SSPI support. In that case, set + this to gssapi to cause libpq to use the GSSAPI library for authentication instead of the default SSPI.

    service

    Service name to use for additional parameters. It specifies a service name in pg_service.conf that holds additional connection parameters. diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-control.html postgresql-10-10.12/doc/src/sgml/html/libpq-control.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-control.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-control.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.10. Control Functions

    33.10. Control Functions

    These functions control miscellaneous details of libpq's +33.10. Control Functions

    33.10. Control Functions

    These functions control miscellaneous details of libpq's behavior.

    PQclientEncoding diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-copy.html postgresql-10-10.12/doc/src/sgml/html/libpq-copy.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-copy.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-copy.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.9. Functions Associated with the COPY Command

    33.9. Functions Associated with the COPY Command

    The COPY command in +33.9. Functions Associated with the COPY Command

    33.9. Functions Associated with the COPY Command

    The COPY command in PostgreSQL has options to read from or write to the network connection used by libpq. The functions described in this section allow applications to take @@ -243,7 +243,7 @@ It should either be issued when the last string has been sent to the server using PQputline or when the last string has been received from the server using - PGgetline. It must be issued or the server + PQgetline. It must be issued or the server will get out of sync with the client. Upon return from this function, the server is ready to receive the next SQL command. The return value is 0 on successful completion, diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-envars.html postgresql-10-10.12/doc/src/sgml/html/libpq-envars.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-envars.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-envars.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.14. Environment Variables

    33.14. Environment Variables

    The following environment variables can be used to select default +33.14. Environment Variables

    33.14. Environment Variables

    The following environment variables can be used to select default connection parameter values, which will be used by PQconnectdb, PQsetdbLogin and PQsetdb if no value is directly specified by the calling diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-events.html postgresql-10-10.12/doc/src/sgml/html/libpq-events.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-events.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-events.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.13. Event System

    33.13. Event System

    libpq's event system is designed to notify +33.13. Event System

    33.13. Event System

    libpq's event system is designed to notify registered event handlers about interesting libpq events, such as the creation or destruction of PGconn and diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-example.html postgresql-10-10.12/doc/src/sgml/html/libpq-example.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-example.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-example.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.21. Example Programs

    33.21. Example Programs

    These examples and others can be found in the +33.21. Example Programs

    33.21. Example Programs

    These examples and others can be found in the directory src/test/examples in the source code distribution.

    Example 33.1. libpq Example Program 1

    /*
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-exec.html postgresql-10-10.12/doc/src/sgml/html/libpq-exec.html
    --- postgresql-10-10.10/doc/src/sgml/html/libpq-exec.html	2019-08-05 21:30:03.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/libpq-exec.html	2020-02-10 22:31:48.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -33.3. Command Execution Functions

    33.3. Command Execution Functions

    Once a connection to a database server has been successfully +33.3. Command Execution Functions

    33.3. Command Execution Functions

    Once a connection to a database server has been successfully established, the functions described here are used to perform SQL queries and commands.

    33.3.1. Main Functions

    PQexec diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-fastpath.html postgresql-10-10.12/doc/src/sgml/html/libpq-fastpath.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-fastpath.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-fastpath.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.7. The Fast-Path Interface

    33.7. The Fast-Path Interface

    PostgreSQL provides a fast-path interface +33.7. The Fast-Path Interface

    33.7. The Fast-Path Interface

    PostgreSQL provides a fast-path interface to send simple function calls to the server.

    Tip

    This interface is somewhat obsolete, as one can achieve similar performance and greater functionality by setting up a prepared diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq.html postgresql-10-10.12/doc/src/sgml/html/libpq.html --- postgresql-10-10.10/doc/src/sgml/html/libpq.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 33. libpq - C Library

    Chapter 33. libpq - C Library

    libpq is the C +Chapter 33. libpq - C Library

    Chapter 33. libpq - C Library

    libpq is the C application programmer's interface to PostgreSQL. libpq is a set of library functions that allow client programs to pass queries to the PostgreSQL diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-ldap.html postgresql-10-10.12/doc/src/sgml/html/libpq-ldap.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-ldap.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-ldap.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.17. LDAP Lookup of Connection Parameters

    33.17. LDAP Lookup of Connection Parameters

    If libpq has been compiled with LDAP support (option +33.17. LDAP Lookup of Connection Parameters

    33.17. LDAP Lookup of Connection Parameters

    If libpq has been compiled with LDAP support (option --with-ldap for configure) it is possible to retrieve connection options like host or dbname via LDAP from a central server. diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-misc.html postgresql-10-10.12/doc/src/sgml/html/libpq-misc.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-misc.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-misc.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.11. Miscellaneous Functions

    33.11. Miscellaneous Functions

    As always, there are some functions that just don't fit anywhere. +33.11. Miscellaneous Functions

    33.11. Miscellaneous Functions

    As always, there are some functions that just don't fit anywhere.

    PQfreemem

    Frees memory allocated by libpq. diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-notice-processing.html postgresql-10-10.12/doc/src/sgml/html/libpq-notice-processing.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-notice-processing.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-notice-processing.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.12. Notice Processing

    33.12. Notice Processing

    Notice and warning messages generated by the server are not returned +33.12. Notice Processing

    33.12. Notice Processing

    Notice and warning messages generated by the server are not returned by the query execution functions, since they do not imply failure of the query. Instead they are passed to a notice handling function, and execution continues normally after the handler returns. The default diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-notify.html postgresql-10-10.12/doc/src/sgml/html/libpq-notify.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-notify.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-notify.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.8. Asynchronous Notification

    33.8. Asynchronous Notification

    PostgreSQL offers asynchronous notification +33.8. Asynchronous Notification

    33.8. Asynchronous Notification

    PostgreSQL offers asynchronous notification via the LISTEN and NOTIFY commands. A client session registers its interest in a particular notification channel with the LISTEN command (and diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-pgpass.html postgresql-10-10.12/doc/src/sgml/html/libpq-pgpass.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-pgpass.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-pgpass.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.15. The Password File

    33.15. The Password File

    The file .pgpass in a user's home directory can +33.15. The Password File

    33.15. The Password File

    The file .pgpass in a user's home directory can contain passwords to be used if the connection requires a password (and no password has been specified otherwise). On Microsoft Windows the file is named diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-pgservice.html postgresql-10-10.12/doc/src/sgml/html/libpq-pgservice.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-pgservice.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-pgservice.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.16. The Connection Service File

    33.16. The Connection Service File

    The connection service file allows libpq connection parameters to be +33.16. The Connection Service File

    33.16. The Connection Service File

    The connection service file allows libpq connection parameters to be associated with a single service name. That service name can then be specified by a libpq connection, and the associated settings will be used. This allows connection parameters to be modified without requiring diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-single-row-mode.html postgresql-10-10.12/doc/src/sgml/html/libpq-single-row-mode.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-single-row-mode.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-single-row-mode.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.5. Retrieving Query Results Row-By-Row

    33.5. Retrieving Query Results Row-By-Row

    Ordinarily, libpq collects a SQL command's +33.5. Retrieving Query Results Row-By-Row

    33.5. Retrieving Query Results Row-By-Row

    Ordinarily, libpq collects a SQL command's entire result and returns it to the application as a single PGresult. This can be unworkable for commands that return a large number of rows. For such cases, applications can use diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-ssl.html postgresql-10-10.12/doc/src/sgml/html/libpq-ssl.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-ssl.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-ssl.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.18. SSL Support

    33.18. SSL Support

    PostgreSQL has native support for using SSL +33.18. SSL Support

    33.18. SSL Support

    PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security. See Section 18.9 for details about the server-side SSL functionality. @@ -143,7 +143,7 @@ encryption if the server supports it.

    requireYesNoI want my data to be encrypted, and I accept the overhead. I trust that the network will make sure I always connect to the server I want. -
    verify-caYesDepends on CA-policyI want my data encrypted, and I accept the overhead. I want to be +
    verify-caYesDepends on CA policyI want my data encrypted, and I accept the overhead. I want to be sure that I connect to a server that I trust.
    verify-fullYesYesI want my data encrypted, and I accept the overhead. I want to be sure that I connect to a server I trust, and that it's the one I diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-status.html postgresql-10-10.12/doc/src/sgml/html/libpq-status.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-status.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-status.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.2. Connection Status Functions

    33.2. Connection Status Functions

    These functions can be used to interrogate the status +33.2. Connection Status Functions

    33.2. Connection Status Functions

    These functions can be used to interrogate the status of an existing database connection object.

    Tip

    diff -Nru postgresql-10-10.10/doc/src/sgml/html/libpq-threading.html postgresql-10-10.12/doc/src/sgml/html/libpq-threading.html --- postgresql-10-10.10/doc/src/sgml/html/libpq-threading.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/libpq-threading.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -33.19. Behavior in Threaded Programs

    33.19. Behavior in Threaded Programs

    libpq is reentrant and thread-safe by default. +33.19. Behavior in Threaded Programs

    33.19. Behavior in Threaded Programs

    libpq is reentrant and thread-safe by default. You might need to use special compiler command-line options when you compile your application code. Refer to your system's documentation for information about how to build diff -Nru postgresql-10-10.10/doc/src/sgml/html/locale.html postgresql-10-10.12/doc/src/sgml/html/locale.html --- postgresql-10-10.10/doc/src/sgml/html/locale.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/locale.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -23.1. Locale Support

    23.1. Locale Support

    Locale support refers to an application respecting +23.1. Locale Support

    23.1. Locale Support

    Locale support refers to an application respecting cultural preferences regarding alphabets, sorting, number formatting, etc. PostgreSQL uses the standard ISO C and POSIX locale facilities provided by the server operating diff -Nru postgresql-10-10.10/doc/src/sgml/html/locking-indexes.html postgresql-10-10.12/doc/src/sgml/html/locking-indexes.html --- postgresql-10-10.10/doc/src/sgml/html/locking-indexes.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/locking-indexes.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -13.6. Locking and Indexes

    13.6. Locking and Indexes

    Though PostgreSQL +13.6. Locking and Indexes

    13.6. Locking and Indexes

    Though PostgreSQL provides nonblocking read/write access to table data, nonblocking read/write access is not currently offered for every index access method implemented diff -Nru postgresql-10-10.10/doc/src/sgml/html/lo-examplesect.html postgresql-10-10.12/doc/src/sgml/html/lo-examplesect.html --- postgresql-10-10.10/doc/src/sgml/html/lo-examplesect.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/lo-examplesect.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -34.5. Example Program

    34.5. Example Program

    Example 34.1 is a sample program which shows how the large object +34.5. Example Program

    34.5. Example Program

    Example 34.1 is a sample program which shows how the large object interface in libpq can be used. Parts of the program are commented out but are left in the source for the reader's diff -Nru postgresql-10-10.10/doc/src/sgml/html/lo-funcs.html postgresql-10-10.12/doc/src/sgml/html/lo-funcs.html --- postgresql-10-10.10/doc/src/sgml/html/lo-funcs.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/lo-funcs.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -34.4. Server-side Functions

    34.4. Server-side Functions

    Server-side functions tailored for manipulating large objects from SQL are +34.4. Server-side Functions

    34.4. Server-side Functions

    Server-side functions tailored for manipulating large objects from SQL are listed in Table 34.1.

    Table 34.1. SQL-oriented Large Object Functions

    FunctionReturn TypeDescriptionExampleResult
    lo_from_bytea(loid oid, string bytea) diff -Nru postgresql-10-10.10/doc/src/sgml/html/logfile-maintenance.html postgresql-10-10.12/doc/src/sgml/html/logfile-maintenance.html --- postgresql-10-10.10/doc/src/sgml/html/logfile-maintenance.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logfile-maintenance.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -24.3. Log File Maintenance

    24.3. Log File Maintenance

    It is a good idea to save the database server's log output +24.3. Log File Maintenance

    24.3. Log File Maintenance

    It is a good idea to save the database server's log output somewhere, rather than just discarding it via /dev/null. The log output is invaluable when diagnosing problems. However, the log output tends to be voluminous diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-catalogs.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-catalogs.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-catalogs.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-catalogs.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.5. System Catalogs Related to Logical Decoding

    48.5. System Catalogs Related to Logical Decoding

    The pg_replication_slots +48.5. System Catalogs Related to Logical Decoding

    48.5. System Catalogs Related to Logical Decoding

    The pg_replication_slots view and the pg_stat_replication view provide information about the current state of replication slots and diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-example.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-example.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-example.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-example.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.1. Logical Decoding Examples

    48.1. Logical Decoding Examples

    The following example demonstrates controlling logical decoding using the +48.1. Logical Decoding Examples

    48.1. Logical Decoding Examples

    The following example demonstrates controlling logical decoding using the SQL interface.

    Before you can use logical decoding, you must set wal_level to logical and diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-explanation.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-explanation.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-explanation.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-explanation.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.2. Logical Decoding Concepts

    48.2. Logical Decoding Concepts

    48.2.1. Logical Decoding

    Logical decoding is the process of extracting all persistent changes +48.2. Logical Decoding Concepts

    48.2. Logical Decoding Concepts

    48.2.1. Logical Decoding

    Logical decoding is the process of extracting all persistent changes to a database's tables into a coherent, easy to understand format which can be interpreted without detailed knowledge of the database's internal state. diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 48. Logical Decoding

    Chapter 48. Logical Decoding

    PostgreSQL provides infrastructure to stream the modifications performed +Chapter 48. Logical Decoding

    Chapter 48. Logical Decoding

    PostgreSQL provides infrastructure to stream the modifications performed via SQL to external consumers. This functionality can be used for a variety of purposes, including replication solutions and auditing.

    Changes are sent out in streams identified by logical replication slots. diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-output-plugin.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-output-plugin.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-output-plugin.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-output-plugin.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.6. Logical Decoding Output Plugins

    48.6. Logical Decoding Output Plugins

    An example output plugin can be found in the +48.6. Logical Decoding Output Plugins

    48.6. Logical Decoding Output Plugins

    An example output plugin can be found in the contrib/test_decoding subdirectory of the PostgreSQL source tree. diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-sql.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-sql.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-sql.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-sql.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.4. Logical Decoding SQL Interface

    48.4. Logical Decoding SQL Interface

    See Section 9.26.6 for detailed documentation on +48.4. Logical Decoding SQL Interface

    48.4. Logical Decoding SQL Interface

    See Section 9.26.6 for detailed documentation on the SQL-level API for interacting with logical decoding.

    Synchronous replication (see Section 26.2.8) is only supported on replication slots used over the streaming replication interface. The diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-synchronous.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-synchronous.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-synchronous.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-synchronous.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.8. Synchronous Replication Support for Logical Decoding

    48.8. Synchronous Replication Support for Logical Decoding

    Logical decoding can be used to build +48.8. Synchronous Replication Support for Logical Decoding

    48.8. Synchronous Replication Support for Logical Decoding

    Logical decoding can be used to build synchronous replication solutions with the same user interface as synchronous replication for streaming diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-walsender.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-walsender.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-walsender.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-walsender.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.3. Streaming Replication Protocol Interface

    The commands +48.3. Streaming Replication Protocol Interface

    The commands

    are used to create, drop, and stream changes from a replication slot, respectively. These commands are only available over a replication diff -Nru postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-writer.html postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-writer.html --- postgresql-10-10.10/doc/src/sgml/html/logicaldecoding-writer.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logicaldecoding-writer.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -48.7. Logical Decoding Output Writers

    It is possible to add more output methods for logical decoding. +48.7. Logical Decoding Output Writers

    It is possible to add more output methods for logical decoding. For details, see src/backend/replication/logical/logicalfuncs.c. Essentially, three functions need to be provided: one to read WAL, one to diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-architecture.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-architecture.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-architecture.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-architecture.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.5. Architecture

    Logical replication starts by copying a snapshot of the data on the +31.5. Architecture

    31.5. Architecture

    Logical replication starts by copying a snapshot of the data on the publisher database. Once that is done, changes on the publisher are sent to the subscriber as they occur in real time. The subscriber applies data in the order in which commits were made on the publisher so that diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-config.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-config.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-config.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-config.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.8. Configuration Settings

    31.8. Configuration Settings

    Logical replication requires several configuration options to be set. +31.8. Configuration Settings

    31.8. Configuration Settings

    Logical replication requires several configuration options to be set.

    On the publisher side, wal_level must be set to logical, and max_replication_slots must be set to at least the number of subscriptions expected to connect, diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-conflicts.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-conflicts.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-conflicts.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-conflicts.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.3. Conflicts

    31.3. Conflicts

    Logical replication behaves similarly to normal DML operations in that +31.3. Conflicts

    31.3. Conflicts

    Logical replication behaves similarly to normal DML operations in that the data will be updated even if it was changed locally on the subscriber node. If incoming data violates any constraints the replication will stop. This is referred to as a conflict. When diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication.html postgresql-10-10.12/doc/src/sgml/html/logical-replication.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 31. Logical Replication

    Chapter 31. Logical Replication

    Logical replication is a method of replicating data objects and their +Chapter 31. Logical Replication

    Chapter 31. Logical Replication

    Logical replication is a method of replicating data objects and their changes, based upon their replication identity (usually a primary key). We use the term logical in contrast to physical replication, which uses exact block addresses and byte-by-byte replication. PostgreSQL supports both diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-monitoring.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-monitoring.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-monitoring.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-monitoring.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.6. Monitoring

    31.6. Monitoring

    Because logical replication is based on a similar architecture as +31.6. Monitoring

    31.6. Monitoring

    Because logical replication is based on a similar architecture as physical streaming replication, the monitoring on a publication node is similar to monitoring of a physical replication master diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-publication.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-publication.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-publication.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-publication.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.1. Publication

    31.1. Publication

    A publication can be defined on any physical +31.1. Publication

    31.1. Publication

    A publication can be defined on any physical replication master. The node where a publication is defined is referred to as publisher. A publication is a set of changes generated from a table or a group of tables, and might also be described as diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-quick-setup.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-quick-setup.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-quick-setup.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-quick-setup.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.9. Quick Setup

    31.9. Quick Setup

    First set the configuration options in postgresql.conf: +31.9. Quick Setup

    31.9. Quick Setup

    First set the configuration options in postgresql.conf:

    wal_level = logical

    The other required settings have default values that are sufficient for a basic setup. diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-restrictions.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-restrictions.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-restrictions.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-restrictions.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.4. Restrictions

    31.4. Restrictions

    Logical replication currently has the following restrictions or missing +31.4. Restrictions

    31.4. Restrictions

    Logical replication currently has the following restrictions or missing functionality. These might be addressed in future releases.

    • The database schema and DDL commands are not replicated. The initial schema can be copied by hand using pg_dump diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-security.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-security.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-security.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-security.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.7. Security

      31.7. Security

      The role used for the replication connection must have +31.7. Security

      31.7. Security

      The role used for the replication connection must have the REPLICATION attribute (or be a superuser). Access for the role must be configured in pg_hba.conf and it must have the LOGIN attribute. diff -Nru postgresql-10-10.10/doc/src/sgml/html/logical-replication-subscription.html postgresql-10-10.12/doc/src/sgml/html/logical-replication-subscription.html --- postgresql-10-10.10/doc/src/sgml/html/logical-replication-subscription.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/logical-replication-subscription.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -31.2. Subscription

      31.2. Subscription

      A subscription is the downstream side of logical +31.2. Subscription

      31.2. Subscription

      A subscription is the downstream side of logical replication. The node where a subscription is defined is referred to as the subscriber. A subscription defines the connection to another database and set of publications (one or more) to which it wants diff -Nru postgresql-10-10.10/doc/src/sgml/html/log-shipping-alternative.html postgresql-10-10.12/doc/src/sgml/html/log-shipping-alternative.html --- postgresql-10-10.10/doc/src/sgml/html/log-shipping-alternative.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/log-shipping-alternative.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -26.4. Alternative Method for Log Shipping

      26.4. Alternative Method for Log Shipping

      An alternative to the built-in standby mode described in the previous +26.4. Alternative Method for Log Shipping

      26.4. Alternative Method for Log Shipping

      An alternative to the built-in standby mode described in the previous sections is to use a restore_command that polls the archive location. This was the only option available in versions 8.4 and below. In this setup, set standby_mode off, because you are implementing diff -Nru postgresql-10-10.10/doc/src/sgml/html/lo.html postgresql-10-10.12/doc/src/sgml/html/lo.html --- postgresql-10-10.10/doc/src/sgml/html/lo.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/lo.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.21. lo

      F.21. lo

      The lo module provides support for managing Large Objects +F.21. lo

      F.21. lo

      The lo module provides support for managing Large Objects (also called LOs or BLOBs). This includes a data type lo and a trigger lo_manage.

      F.21.1. Rationale

      One of the problems with the JDBC driver (and this affects the ODBC driver diff -Nru postgresql-10-10.10/doc/src/sgml/html/lo-implementation.html postgresql-10-10.12/doc/src/sgml/html/lo-implementation.html --- postgresql-10-10.10/doc/src/sgml/html/lo-implementation.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/lo-implementation.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -34.2. Implementation Features

      34.2. Implementation Features

      The large object implementation breaks large +34.2. Implementation Features

      34.2. Implementation Features

      The large object implementation breaks large objects up into chunks and stores the chunks in rows in the database. A B-tree index guarantees fast searches for the correct chunk number when doing random diff -Nru postgresql-10-10.10/doc/src/sgml/html/lo-interfaces.html postgresql-10-10.12/doc/src/sgml/html/lo-interfaces.html --- postgresql-10-10.10/doc/src/sgml/html/lo-interfaces.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/lo-interfaces.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -34.3. Client Interfaces

      34.3. Client Interfaces

      This section describes the facilities that +34.3. Client Interfaces

      34.3. Client Interfaces

      This section describes the facilities that PostgreSQL's libpq client interface library provides for accessing large objects. The PostgreSQL large object interface is diff -Nru postgresql-10-10.10/doc/src/sgml/html/lo-intro.html postgresql-10-10.12/doc/src/sgml/html/lo-intro.html --- postgresql-10-10.10/doc/src/sgml/html/lo-intro.html 2019-08-05 21:30:03.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/lo-intro.html 2020-02-10 22:31:48.000000000 +0000 @@ -1,5 +1,5 @@ -34.1. Introduction

      34.1. Introduction

      All large objects are stored in a single system table named pg_largeobject. +34.1. Introduction

      34.1. Introduction

      All large objects are stored in a single system table named pg_largeobject. Each large object also has an entry in the system table pg_largeobject_metadata. Large objects can be created, modified, and deleted using a read/write API that is similar to standard operations on files. diff -Nru postgresql-10-10.10/doc/src/sgml/html/ltree.html postgresql-10-10.12/doc/src/sgml/html/ltree.html --- postgresql-10-10.10/doc/src/sgml/html/ltree.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ltree.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.22. ltree

      F.22. ltree

      This module implements a data type ltree for representing +F.22. ltree

      F.22. ltree

      This module implements a data type ltree for representing labels of data stored in a hierarchical tree-like structure. Extensive facilities for searching through label trees are provided.

      F.22.1. Definitions

      A label is a sequence of alphanumeric characters diff -Nru postgresql-10-10.10/doc/src/sgml/html/maintenance.html postgresql-10-10.12/doc/src/sgml/html/maintenance.html --- postgresql-10-10.10/doc/src/sgml/html/maintenance.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/maintenance.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 24. Routine Database Maintenance Tasks

      Chapter 24. Routine Database Maintenance Tasks

      PostgreSQL, like any database software, requires that certain tasks +Chapter 24. Routine Database Maintenance Tasks

      Chapter 24. Routine Database Maintenance Tasks

      PostgreSQL, like any database software, requires that certain tasks be performed regularly to achieve optimum performance. The tasks discussed here are required, but they are repetitive in nature and can easily be automated using standard diff -Nru postgresql-10-10.10/doc/src/sgml/html/manage-ag-config.html postgresql-10-10.12/doc/src/sgml/html/manage-ag-config.html --- postgresql-10-10.10/doc/src/sgml/html/manage-ag-config.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/manage-ag-config.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -22.4. Database Configuration

      22.4. Database Configuration

      Recall from Chapter 19 that the +22.4. Database Configuration

      22.4. Database Configuration

      Recall from Chapter 19 that the PostgreSQL server provides a large number of run-time configuration variables. You can set database-specific default values for many of these settings. diff -Nru postgresql-10-10.10/doc/src/sgml/html/manage-ag-createdb.html postgresql-10-10.12/doc/src/sgml/html/manage-ag-createdb.html --- postgresql-10-10.10/doc/src/sgml/html/manage-ag-createdb.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/manage-ag-createdb.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -22.2. Creating a Database

      22.2. Creating a Database

      In order to create a database, the PostgreSQL +22.2. Creating a Database

      22.2. Creating a Database

      In order to create a database, the PostgreSQL server must be up and running (see Section 18.3).

      Databases are created with the SQL command CREATE DATABASE: diff -Nru postgresql-10-10.10/doc/src/sgml/html/manage-ag-dropdb.html postgresql-10-10.12/doc/src/sgml/html/manage-ag-dropdb.html --- postgresql-10-10.10/doc/src/sgml/html/manage-ag-dropdb.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/manage-ag-dropdb.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -22.5. Destroying a Database

      22.5. Destroying a Database

      Databases are destroyed with the command +22.5. Destroying a Database

      22.5. Destroying a Database

      Databases are destroyed with the command DROP DATABASE:

      DROP DATABASE name;

      Only the owner of the database, or diff -Nru postgresql-10-10.10/doc/src/sgml/html/manage-ag-overview.html postgresql-10-10.12/doc/src/sgml/html/manage-ag-overview.html --- postgresql-10-10.10/doc/src/sgml/html/manage-ag-overview.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/manage-ag-overview.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -22.1. Overview

      22.1. Overview

      A database is a named collection of SQL objects +22.1. Overview

      22.1. Overview

      A database is a named collection of SQL objects (database objects). Generally, every database object (tables, functions, etc.) belongs to one and only one database. (However there are a few system catalogs, for example diff -Nru postgresql-10-10.10/doc/src/sgml/html/manage-ag-tablespaces.html postgresql-10-10.12/doc/src/sgml/html/manage-ag-tablespaces.html --- postgresql-10-10.10/doc/src/sgml/html/manage-ag-tablespaces.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/manage-ag-tablespaces.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -22.6. Tablespaces

      22.6. Tablespaces

      Tablespaces in PostgreSQL allow database administrators to +22.6. Tablespaces

      22.6. Tablespaces

      Tablespaces in PostgreSQL allow database administrators to define locations in the file system where the files representing database objects can be stored. Once created, a tablespace can be referred to by name when creating database objects. diff -Nru postgresql-10-10.10/doc/src/sgml/html/manage-ag-templatedbs.html postgresql-10-10.12/doc/src/sgml/html/manage-ag-templatedbs.html --- postgresql-10-10.10/doc/src/sgml/html/manage-ag-templatedbs.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/manage-ag-templatedbs.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -22.3. Template Databases

      22.3. Template Databases

      CREATE DATABASE actually works by copying an existing +22.3. Template Databases

      22.3. Template Databases

      CREATE DATABASE actually works by copying an existing database. By default, it copies the standard system database named template1. Thus that database is the template from which new databases are diff -Nru postgresql-10-10.10/doc/src/sgml/html/managing-databases.html postgresql-10-10.12/doc/src/sgml/html/managing-databases.html --- postgresql-10-10.10/doc/src/sgml/html/managing-databases.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/managing-databases.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 22. Managing Databases

      Chapter 22. Managing Databases

      Every instance of a running PostgreSQL +Chapter 22. Managing Databases

      Chapter 22. Managing Databases

      Every instance of a running PostgreSQL server manages one or more databases. Databases are therefore the topmost hierarchical level for organizing SQL objects (database objects). This chapter describes diff -Nru postgresql-10-10.10/doc/src/sgml/html/monitoring.html postgresql-10-10.12/doc/src/sgml/html/monitoring.html --- postgresql-10-10.10/doc/src/sgml/html/monitoring.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/monitoring.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 28. Monitoring Database Activity

      Chapter 28. Monitoring Database Activity

      A database administrator frequently wonders, What is the system +Chapter 28. Monitoring Database Activity

      Chapter 28. Monitoring Database Activity

      A database administrator frequently wonders, What is the system doing right now? This chapter discusses how to find that out.

      Several tools are available for monitoring database activity and diff -Nru postgresql-10-10.10/doc/src/sgml/html/monitoring-locks.html postgresql-10-10.12/doc/src/sgml/html/monitoring-locks.html --- postgresql-10-10.10/doc/src/sgml/html/monitoring-locks.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/monitoring-locks.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -28.3. Viewing Locks

      28.3. Viewing Locks

      Another useful tool for monitoring database activity is the +28.3. Viewing Locks

      28.3. Viewing Locks

      Another useful tool for monitoring database activity is the pg_locks system table. It allows the database administrator to view information about the outstanding locks in the lock manager. For example, this capability can be used diff -Nru postgresql-10-10.10/doc/src/sgml/html/monitoring-ps.html postgresql-10-10.12/doc/src/sgml/html/monitoring-ps.html --- postgresql-10-10.10/doc/src/sgml/html/monitoring-ps.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/monitoring-ps.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -28.1. Standard Unix Tools

      28.1. Standard Unix Tools

      On most Unix platforms, PostgreSQL modifies its +28.1. Standard Unix Tools

      28.1. Standard Unix Tools

      On most Unix platforms, PostgreSQL modifies its command title as reported by ps, so that individual server processes can readily be identified. A sample display is diff -Nru postgresql-10-10.10/doc/src/sgml/html/monitoring-stats.html postgresql-10-10.12/doc/src/sgml/html/monitoring-stats.html --- postgresql-10-10.10/doc/src/sgml/html/monitoring-stats.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/monitoring-stats.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -28.2. The Statistics Collector

      28.2. The Statistics Collector

      PostgreSQL's statistics collector +28.2. The Statistics Collector

      28.2. The Statistics Collector

      PostgreSQL's statistics collector is a subsystem that supports collection and reporting of information about server activity. Presently, the collector can count accesses to tables and indexes in both disk-block and individual-row terms. It also tracks diff -Nru postgresql-10-10.10/doc/src/sgml/html/multibyte.html postgresql-10-10.12/doc/src/sgml/html/multibyte.html --- postgresql-10-10.10/doc/src/sgml/html/multibyte.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/multibyte.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -23.3. Character Set Support

      23.3. Character Set Support

      The character set support in PostgreSQL +23.3. Character Set Support

      23.3. Character Set Support

      The character set support in PostgreSQL allows you to store text in a variety of character sets (also called encodings), including single-byte character sets such as the ISO 8859 series and diff -Nru postgresql-10-10.10/doc/src/sgml/html/multivariate-statistics-examples.html postgresql-10-10.12/doc/src/sgml/html/multivariate-statistics-examples.html --- postgresql-10-10.10/doc/src/sgml/html/multivariate-statistics-examples.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/multivariate-statistics-examples.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -68.2. Multivariate Statistics Examples

      68.2. Multivariate Statistics Examples

      68.2.1. Functional Dependencies

      Multivariate correlation can be demonstrated with a very simple data set +68.2. Multivariate Statistics Examples

      68.2. Multivariate Statistics Examples

      68.2.1. Functional Dependencies

      Multivariate correlation can be demonstrated with a very simple data set — a table with two columns, both containing the same values:

      CREATE TABLE t (a INT, b INT);
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/mvcc-caveats.html postgresql-10-10.12/doc/src/sgml/html/mvcc-caveats.html
      --- postgresql-10-10.10/doc/src/sgml/html/mvcc-caveats.html	2019-08-05 21:29:59.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/mvcc-caveats.html	2020-02-10 22:31:45.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -13.5. Caveats

      13.5. Caveats

      Some DDL commands, currently only TRUNCATE and the +13.5. Caveats

      13.5. Caveats

      Some DDL commands, currently only TRUNCATE and the table-rewriting forms of ALTER TABLE, are not MVCC-safe. This means that after the truncation or rewrite commits, the table will appear empty to concurrent transactions, if they are using a diff -Nru postgresql-10-10.10/doc/src/sgml/html/mvcc.html postgresql-10-10.12/doc/src/sgml/html/mvcc.html --- postgresql-10-10.10/doc/src/sgml/html/mvcc.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/mvcc.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 13. Concurrency Control

      Chapter 13. Concurrency Control

      This chapter describes the behavior of the +Chapter 13. Concurrency Control

      Chapter 13. Concurrency Control

      This chapter describes the behavior of the PostgreSQL database system when two or more sessions try to access the same data at the same time. The goals in that situation are to allow efficient access for all diff -Nru postgresql-10-10.10/doc/src/sgml/html/mvcc-intro.html postgresql-10-10.12/doc/src/sgml/html/mvcc-intro.html --- postgresql-10-10.10/doc/src/sgml/html/mvcc-intro.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/mvcc-intro.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -13.1. Introduction

      13.1. Introduction

      PostgreSQL provides a rich set of tools +13.1. Introduction

      13.1. Introduction

      PostgreSQL provides a rich set of tools for developers to manage concurrent access to data. Internally, data consistency is maintained by using a multiversion model (Multiversion Concurrency Control, MVCC). diff -Nru postgresql-10-10.10/doc/src/sgml/html/nls.html postgresql-10-10.12/doc/src/sgml/html/nls.html --- postgresql-10-10.10/doc/src/sgml/html/nls.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/nls.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 54. Native Language Support

      \ No newline at end of file +Chapter 54. Native Language Support \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/nls-programmer.html postgresql-10-10.12/doc/src/sgml/html/nls-programmer.html --- postgresql-10-10.10/doc/src/sgml/html/nls-programmer.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/nls-programmer.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -54.2. For the Programmer

      54.2. For the Programmer

      54.2.1. Mechanics

      This section describes how to implement native language support in a +54.2. For the Programmer

      54.2. For the Programmer

      54.2.1. Mechanics

      This section describes how to implement native language support in a program or library that is part of the PostgreSQL distribution. Currently, it only applies to C programs. diff -Nru postgresql-10-10.10/doc/src/sgml/html/nls-translator.html postgresql-10-10.12/doc/src/sgml/html/nls-translator.html --- postgresql-10-10.10/doc/src/sgml/html/nls-translator.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/nls-translator.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -54.1. For the Translator

      54.1. For the Translator

      PostgreSQL +54.1. For the Translator

      54.1. For the Translator

      PostgreSQL programs (server and client) can issue their messages in your favorite language — if the messages have been translated. Creating and maintaining translated message sets needs the help of diff -Nru postgresql-10-10.10/doc/src/sgml/html/non-durability.html postgresql-10-10.12/doc/src/sgml/html/non-durability.html --- postgresql-10-10.10/doc/src/sgml/html/non-durability.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/non-durability.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -14.5. Non-Durable Settings

      14.5. Non-Durable Settings

      Durability is a database feature that guarantees the recording of +14.5. Non-Durable Settings

      14.5. Non-Durable Settings

      Durability is a database feature that guarantees the recording of committed transactions even if the server crashes or loses power. However, durability adds significant database overhead, so if your site does not require such a guarantee, diff -Nru postgresql-10-10.10/doc/src/sgml/html/notation.html postgresql-10-10.12/doc/src/sgml/html/notation.html --- postgresql-10-10.10/doc/src/sgml/html/notation.html 2019-08-05 21:29:55.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/notation.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -3. Conventions

      3. Conventions

      The following conventions are used in the synopsis of a command: +3. Conventions

      3. Conventions

      The following conventions are used in the synopsis of a command: brackets ([ and ]) indicate optional parts. (In the synopsis of a Tcl command, question marks (?) are used instead, as is usual in Tcl.) Braces diff -Nru postgresql-10-10.10/doc/src/sgml/html/oid2name.html postgresql-10-10.12/doc/src/sgml/html/oid2name.html --- postgresql-10-10.10/doc/src/sgml/html/oid2name.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/oid2name.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -oid2name

      oid2name

      oid2name — resolve OIDs and file nodes in a PostgreSQL data directory

      Synopsis

      oid2name [option...]

      Description

      oid2name is a utility program that helps administrators to +oid2name

      oid2name

      oid2name — resolve OIDs and file nodes in a PostgreSQL data directory

      Synopsis

      oid2name [option...]

      Description

      oid2name is a utility program that helps administrators to examine the file structure used by PostgreSQL. To make use of it, you need to be familiar with the database file structure, which is described in Chapter 66. diff -Nru postgresql-10-10.10/doc/src/sgml/html/overview.html postgresql-10-10.12/doc/src/sgml/html/overview.html --- postgresql-10-10.10/doc/src/sgml/html/overview.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/overview.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 50. Overview of PostgreSQL Internals

      Chapter 50. Overview of PostgreSQL Internals

      Author

      This chapter originated as part of +Chapter 50. Overview of PostgreSQL Internals

      Chapter 50. Overview of PostgreSQL Internals

      Author

      This chapter originated as part of [sim98], Stefan Simkovics' Master's Thesis prepared at Vienna University of Technology under the direction of O.Univ.Prof.Dr. Georg Gottlob and Univ.Ass. Mag. Katrin Seyr. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pageinspect.html postgresql-10-10.12/doc/src/sgml/html/pageinspect.html --- postgresql-10-10.10/doc/src/sgml/html/pageinspect.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pageinspect.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.23. pageinspect

      F.23. pageinspect

      The pageinspect module provides functions that allow you to +F.23. pageinspect

      F.23. pageinspect

      The pageinspect module provides functions that allow you to inspect the contents of database pages at a low level, which is useful for debugging purposes. All of these functions may be used only by superusers.

      F.23.1. General Functions

      get_raw_page(relname text, fork text, blkno int) returns bytea @@ -48,8 +48,19 @@ the checksum result field of the function page_header. If data checksums are enabled for this instance, then the two values should be equal. -

      heap_page_items(page bytea) returns setof record +

      fsm_page_contents(page bytea) returns text +

      fsm_page_contents shows the internal node structure + of a FSM page. For example: +

      test=# SELECT fsm_page_contents(get_raw_page('pg_class', 'fsm', 0));

      + The output is a multiline string, with one line per node in the binary + tree within the page. Only those nodes that are not zero are printed. + The so-called "next" pointer, which points to the next slot to be + returned from the page, is also printed. +

      See src/backend/storage/freespace/README for more + information on the structure of an FSM page. +

      F.23.2. Heap Functions

      heap_page_items(page bytea) returns setof record +

      heap_page_items shows all line pointers on a heap page. For those line pointers that are in use, tuple headers as well as tuple raw data are also shown. All tuples are shown, whether or not @@ -62,7 +73,7 @@ src/include/access/htup_details.h for explanations of the fields returned.

      tuple_data_split(rel_oid oid, t_data bytea, t_infomask integer, t_infomask2 integer, t_bits text [, do_detoast bool]) returns bytea[] - +

      tuple_data_split splits tuple data into attributes in the same way as backend internals.

      test=# SELECT tuple_data_split('pg_class'::regclass, t_data, t_infomask, t_infomask2, t_bits) FROM heap_page_items(get_raw_page('pg_class', 0));

      @@ -72,7 +83,7 @@ attribute that will be detoasted as needed. Default value is false.

      heap_page_item_attrs(page bytea, rel_oid regclass [, do_detoast bool]) returns setof record - +

      heap_page_item_attrs is equivalent to heap_page_items except that it returns tuple raw data as an array of attributes that can optionally @@ -81,17 +92,8 @@

      A heap page image obtained with get_raw_page should be passed as argument. For example:

      test=# SELECT * FROM heap_page_item_attrs(get_raw_page('pg_class', 0), 'pg_class'::regclass);

      -

      fsm_page_contents(page bytea) returns text - -

      fsm_page_contents shows the internal node structure - of a FSM page. The output is a multiline string, with one line per - node in the binary tree within the page. Only those nodes that are not - zero are printed. The so-called "next" pointer, which points to the - next slot to be returned from the page, is also printed. -

      See src/backend/storage/freespace/README for more - information on the structure of an FSM page. -

      F.23.2. B-tree Functions

      bt_metap(relname text) returns record - +

      F.23.3. B-tree Functions

      bt_metap(relname text) returns record +

      bt_metap returns information about a B-tree index's metapage. For example:

      test=# SELECT * FROM bt_metap('pg_cast_oid_index');
      @@ -103,7 +105,7 @@
       fastroot  | 1
       fastlevel | 0

      bt_page_stats(relname text, blkno int) returns record - +

      bt_page_stats returns summary information about single pages of B-tree indexes. For example:

      test=# SELECT * FROM bt_page_stats('pg_cast_oid_index', 1);
      @@ -120,7 +122,7 @@
       btpo          | 0
       btpo_flags    | 3

      bt_page_items(relname text, blkno int) returns setof record - +

      bt_page_items returns detailed information about all of the items on a B-tree index page. For example:

      test=# SELECT * FROM bt_page_items('pg_cast_oid_index', 1);
      @@ -148,7 +150,7 @@
             in its data field.  Such an item does have a valid
             downlink in its ctid field, however.
            

      bt_page_items(page bytea) returns setof record - +

      It is also possible to pass a page to bt_page_items as a bytea value. A page image obtained with get_raw_page should be passed as argument. So @@ -165,8 +167,8 @@ 7 | (0,7) | 12 | f | f | 29 27 00 00 8 | (0,8) | 12 | f | f | 2a 27 00 00

      All the other details are the same as explained in the previous item. -

      F.23.3. BRIN Functions

      brin_page_type(page bytea) returns text - +

      F.23.4. BRIN Functions

      brin_page_type(page bytea) returns text +

      brin_page_type returns the page type of the given BRIN index page, or throws an error if the page is not a valid BRIN page. For example: @@ -175,7 +177,7 @@ ---------------- meta

      brin_metapage_info(page bytea) returns record - +

      brin_metapage_info returns assorted information about a BRIN index metapage. For example:

      test=# SELECT * FROM brin_metapage_info(get_raw_page('brinidx', 0));
      @@ -183,7 +185,7 @@
       ------------+---------+---------------+----------------
        0xA8109CFA |       1 |             4 |              2

      brin_revmap_data(page bytea) returns setof tid - +

      brin_revmap_data returns the list of tuple identifiers in a BRIN index range map page. For example: @@ -196,7 +198,7 @@ (6,140) (6,141)

      brin_page_items(page bytea, index oid) returns setof record - +

      brin_page_items returns the data stored in the BRIN data page. For example:

      test=# SELECT * FROM brin_page_items(get_raw_page('brinidx', 5),
      @@ -213,8 +215,8 @@
             The returned columns correspond to the fields in the
             BrinMemTuple and BrinValues structs.
             See src/include/access/brin_tuple.h for details.
      -     

      F.23.4. GIN Functions

      gin_metapage_info(page bytea) returns record - +

      F.23.5. GIN Functions

      gin_metapage_info(page bytea) returns record +

      gin_metapage_info returns information about a GIN index metapage. For example:

      test=# SELECT * FROM gin_metapage_info(get_raw_page('gin_index', 0));
      @@ -230,7 +232,7 @@
       n_entries        | 693
       version          | 2

      gin_page_opaque_info(page bytea) returns record - +

      gin_page_opaque_info returns information about a GIN index opaque area, like the page type. For example: @@ -240,7 +242,7 @@ 5 | 0 | {data,leaf,compressed} (1 row)

      gin_leafpage_items(page bytea) returns setof record - +

      gin_leafpage_items returns information about the data stored in a GIN leaf page. For example:

      test=# SELECT first_tid, nbytes, tids[0:5] AS some_tids
      @@ -255,8 +257,8 @@
        (170,30)  |    376 | {"(170,30)","(170,31)","(170,32)","(170,33)","(170,34)"}
        (173,44)  |    197 | {"(173,44)","(173,45)","(173,46)","(173,47)","(173,48)"}
       (7 rows)

      -

      F.23.5. Hash Functions

      hash_page_type(page bytea) returns text - +

      F.23.6. Hash Functions

      hash_page_type(page bytea) returns text +

      hash_page_type returns page type of the given HASH index page. For example:

      test=# SELECT hash_page_type(get_raw_page('con_hash_index', 0));
      @@ -264,7 +266,7 @@
       ----------------
        metapage

      hash_page_stats(page bytea) returns setof record - +

      hash_page_stats returns information about a bucket or overflow page of a HASH index. For example: @@ -280,7 +282,7 @@ hasho_flag | 66 hasho_page_id | 65408

      hash_page_items(page bytea) returns setof record - +

      hash_page_items returns information about the data stored in a bucket or overflow page of a HASH index page. For example: @@ -293,7 +295,7 @@ 4 | (892,159) | 1053474816 5 | (890,111) | 1053474816

      hash_bitmap_info(index oid, blkno int) returns record - +

      hash_bitmap_info shows the status of a bit in the bitmap page for a particular overflow page of HASH index. For example: @@ -302,7 +304,7 @@ -------------+-----------+----------- 65 | 3 | t

      hash_metapage_info(page bytea) returns record - +

      hash_metapage_info returns information stored in meta page of a HASH index. For example:

      test=# SELECT magic, version, ntuples, ffactor, bsize, bmsize, bmshift,
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/parallel-plans.html postgresql-10-10.12/doc/src/sgml/html/parallel-plans.html
      --- postgresql-10-10.10/doc/src/sgml/html/parallel-plans.html	2019-08-05 21:30:00.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/parallel-plans.html	2020-02-10 22:31:45.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -15.3. Parallel Plans

      15.3. Parallel Plans

      Because each worker executes the parallel portion of the plan to +15.3. Parallel Plans

      15.3. Parallel Plans

      Because each worker executes the parallel portion of the plan to completion, it is not possible to simply take an ordinary query plan and run it using multiple workers. Each worker would produce a full copy of the output result set, so the query would not run any faster @@ -26,7 +26,7 @@ scan, the cooperating processes take turns reading data from the index. Currently, parallel index scans are supported only for btree indexes. Each process will claim a single index block and will - scan and return all tuples referenced by that block; other process can + scan and return all tuples referenced by that block; other processes can at the same time be returning tuples from a different index block. The results of a parallel btree scan are returned in sorted order within each worker process. diff -Nru postgresql-10-10.10/doc/src/sgml/html/parallel-query.html postgresql-10-10.12/doc/src/sgml/html/parallel-query.html --- postgresql-10-10.10/doc/src/sgml/html/parallel-query.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/parallel-query.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 15. Parallel Query

      Chapter 15. Parallel Query

      PostgreSQL can devise query plans which can leverage +Chapter 15. Parallel Query

      Chapter 15. Parallel Query

      PostgreSQL can devise query plans which can leverage multiple CPUs in order to answer queries faster. This feature is known as parallel query. Many queries cannot benefit from parallel query, either due to limitations of the current implementation or because there is no diff -Nru postgresql-10-10.10/doc/src/sgml/html/parallel-safety.html postgresql-10-10.12/doc/src/sgml/html/parallel-safety.html --- postgresql-10-10.10/doc/src/sgml/html/parallel-safety.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/parallel-safety.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -15.4. Parallel Safety

      15.4. Parallel Safety

      The planner classifies operations involved in a query as either +15.4. Parallel Safety

      15.4. Parallel Safety

      The planner classifies operations involved in a query as either parallel safe, parallel restricted, or parallel unsafe. A parallel safe operation is one which does not conflict with the use of parallel query. A parallel restricted diff -Nru postgresql-10-10.10/doc/src/sgml/html/parser-stage.html postgresql-10-10.12/doc/src/sgml/html/parser-stage.html --- postgresql-10-10.10/doc/src/sgml/html/parser-stage.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/parser-stage.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -50.3. The Parser Stage

      50.3. The Parser Stage

      The parser stage consists of two parts: +50.3. The Parser Stage

      50.3. The Parser Stage

      The parser stage consists of two parts:

      • The parser defined in gram.y and scan.l is diff -Nru postgresql-10-10.10/doc/src/sgml/html/passwordcheck.html postgresql-10-10.12/doc/src/sgml/html/passwordcheck.html --- postgresql-10-10.10/doc/src/sgml/html/passwordcheck.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/passwordcheck.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.24. passwordcheck

        F.24. passwordcheck

        The passwordcheck module checks users' passwords +F.24. passwordcheck

        F.24. passwordcheck

        The passwordcheck module checks users' passwords whenever they are set with CREATE ROLE or ALTER ROLE. diff -Nru postgresql-10-10.10/doc/src/sgml/html/performance-tips.html postgresql-10-10.12/doc/src/sgml/html/performance-tips.html --- postgresql-10-10.10/doc/src/sgml/html/performance-tips.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/performance-tips.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 14. Performance Tips

        Chapter 14. Performance Tips

        Query performance can be affected by many things. Some of these can +Chapter 14. Performance Tips

        Chapter 14. Performance Tips

        Query performance can be affected by many things. Some of these can be controlled by the user, while others are fundamental to the underlying design of the system. This chapter provides some hints about understanding and tuning PostgreSQL performance. diff -Nru postgresql-10-10.10/doc/src/sgml/html/perm-functions.html postgresql-10-10.12/doc/src/sgml/html/perm-functions.html --- postgresql-10-10.10/doc/src/sgml/html/perm-functions.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/perm-functions.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -21.6. Function Security

        21.6. Function Security

        Functions, triggers and row-level security policies allow users to insert +21.6. Function Security

        21.6. Function Security

        Functions, triggers and row-level security policies allow users to insert code into the backend server that other users might execute unintentionally. Hence, these mechanisms permit users to Trojan horse others with relative ease. The strongest protection is tight diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgarchivecleanup.html postgresql-10-10.12/doc/src/sgml/html/pgarchivecleanup.html --- postgresql-10-10.10/doc/src/sgml/html/pgarchivecleanup.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgarchivecleanup.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_archivecleanup

        pg_archivecleanup

        pg_archivecleanup — clean up PostgreSQL WAL archive files

        Synopsis

        pg_archivecleanup [option...] archivelocation oldestkeptwalfile

        Description

        pg_archivecleanup is designed to be used as an +pg_archivecleanup

        pg_archivecleanup

        pg_archivecleanup — clean up PostgreSQL WAL archive files

        Synopsis

        pg_archivecleanup [option...] archivelocation oldestkeptwalfile

        Description

        pg_archivecleanup is designed to be used as an archive_cleanup_command to clean up WAL file archives when running as a standby server (see Section 26.2). pg_archivecleanup can also be used as a standalone program to diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgbench.html postgresql-10-10.12/doc/src/sgml/html/pgbench.html --- postgresql-10-10.10/doc/src/sgml/html/pgbench.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgbench.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -pgbench

        pgbench

        pgbench — run a benchmark test on PostgreSQL

        Synopsis

        pgbench -i [option...] [dbname]

        pgbench [option...] [dbname]

        Description

        pgbench is a simple program for running benchmark +pgbench

        pgbench

        pgbench — run a benchmark test on PostgreSQL

        Synopsis

        pgbench -i [option...] [dbname]

        pgbench [option...] [dbname]

        Description

        pgbench is a simple program for running benchmark tests on PostgreSQL. It runs the same sequence of SQL commands over and over, possibly in multiple concurrent database sessions, and then calculates the average transaction rate (transactions per second). diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgbuffercache.html postgresql-10-10.12/doc/src/sgml/html/pgbuffercache.html --- postgresql-10-10.10/doc/src/sgml/html/pgbuffercache.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgbuffercache.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.25. pg_buffercache

        F.25. pg_buffercache

        The pg_buffercache module provides a means for +F.25. pg_buffercache

        F.25. pg_buffercache

        The pg_buffercache module provides a means for examining what's happening in the shared buffer cache in real time.

        The module provides a C function pg_buffercache_pages that returns a set of records, plus a view diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgcrypto.html postgresql-10-10.12/doc/src/sgml/html/pgcrypto.html --- postgresql-10-10.10/doc/src/sgml/html/pgcrypto.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgcrypto.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.26. pgcrypto

        F.26. pgcrypto

        The pgcrypto module provides cryptographic functions for +F.26. pgcrypto

        F.26. pgcrypto

        The pgcrypto module provides cryptographic functions for PostgreSQL.

        F.26.1. General Hashing Functions

        F.26.1.1. digest()

        digest(data text, type text) returns bytea
         digest(data bytea, type text) returns bytea

        Computes a binary hash of the given data. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgfreespacemap.html postgresql-10-10.12/doc/src/sgml/html/pgfreespacemap.html --- postgresql-10-10.10/doc/src/sgml/html/pgfreespacemap.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgfreespacemap.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.27. pg_freespacemap

        F.27. pg_freespacemap

        The pg_freespacemap module provides a means for examining the +F.27. pg_freespacemap

        F.27. pg_freespacemap

        The pg_freespacemap module provides a means for examining the free space map (FSM). It provides a function called pg_freespace, or two overloaded functions, to be precise. The functions show the value recorded in the free space map for diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgprewarm.html postgresql-10-10.12/doc/src/sgml/html/pgprewarm.html --- postgresql-10-10.10/doc/src/sgml/html/pgprewarm.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgprewarm.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.28. pg_prewarm

        F.28. pg_prewarm

        The pg_prewarm module provides a convenient way +F.28. pg_prewarm

        F.28. pg_prewarm

        The pg_prewarm module provides a convenient way to load relation data into either the operating system buffer cache or the PostgreSQL buffer cache.

        F.28.1. Functions

        pg_prewarm(regclass, mode text default 'buffer', fork text default 'main',
        diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgrowlocks.html postgresql-10-10.12/doc/src/sgml/html/pgrowlocks.html
        --- postgresql-10-10.10/doc/src/sgml/html/pgrowlocks.html	2019-08-05 21:30:19.000000000 +0000
        +++ postgresql-10-10.12/doc/src/sgml/html/pgrowlocks.html	2020-02-10 22:32:03.000000000 +0000
        @@ -1,5 +1,5 @@
         
        -F.29. pgrowlocks

        F.29. pgrowlocks

        The pgrowlocks module provides a function to show row +F.29. pgrowlocks

        F.29. pgrowlocks

        The pgrowlocks module provides a function to show row locking information for a specified table.

        By default use is restricted to superusers, members of the pg_stat_scan_tables role, and users with diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgstandby.html postgresql-10-10.12/doc/src/sgml/html/pgstandby.html --- postgresql-10-10.10/doc/src/sgml/html/pgstandby.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgstandby.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -pg_standby

        pg_standby

        pg_standby — supports the creation of a PostgreSQL warm standby server

        Synopsis

        pg_standby [option...] archivelocation nextwalfile walfilepath [restartwalfile]

        Description

        pg_standby supports creation of a warm standby +pg_standby

        pg_standby

        pg_standby — supports the creation of a PostgreSQL warm standby server

        Synopsis

        pg_standby [option...] archivelocation nextwalfile walfilepath [restartwalfile]

        Description

        pg_standby supports creation of a warm standby database server. It is designed to be a production-ready program, as well as a customizable template should you require specific modifications.

        pg_standby is designed to be a waiting diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgstatstatements.html postgresql-10-10.12/doc/src/sgml/html/pgstatstatements.html --- postgresql-10-10.10/doc/src/sgml/html/pgstatstatements.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgstatstatements.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.30. pg_stat_statements

        F.30. pg_stat_statements

        The pg_stat_statements module provides a means for +F.30. pg_stat_statements

        F.30. pg_stat_statements

        The pg_stat_statements module provides a means for tracking execution statistics of all SQL statements executed by a server.

        The module must be loaded by adding pg_stat_statements to shared_preload_libraries in diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgstattuple.html postgresql-10-10.12/doc/src/sgml/html/pgstattuple.html --- postgresql-10-10.10/doc/src/sgml/html/pgstattuple.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgstattuple.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.31. pgstattuple

        F.31. pgstattuple

        The pgstattuple module provides various functions to +F.31. pgstattuple

        F.31. pgstattuple

        The pgstattuple module provides various functions to obtain tuple-level statistics.

        As these functions return detailed page-level information, only the superuser has EXECUTE privileges on them upon installation. After the functions have diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgtestfsync.html postgresql-10-10.12/doc/src/sgml/html/pgtestfsync.html --- postgresql-10-10.10/doc/src/sgml/html/pgtestfsync.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgtestfsync.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_test_fsync

        pg_test_fsync

        pg_test_fsync — determine fastest wal_sync_method for PostgreSQL

        Synopsis

        pg_test_fsync [option...]

        Description

        pg_test_fsync is intended to give you a reasonable +pg_test_fsync

        pg_test_fsync

        pg_test_fsync — determine fastest wal_sync_method for PostgreSQL

        Synopsis

        pg_test_fsync [option...]

        Description

        pg_test_fsync is intended to give you a reasonable idea of what the fastest wal_sync_method is on your specific system, as well as supplying diagnostic information in the event of an identified I/O diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgtesttiming.html postgresql-10-10.12/doc/src/sgml/html/pgtesttiming.html --- postgresql-10-10.10/doc/src/sgml/html/pgtesttiming.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgtesttiming.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_test_timing

        pg_test_timing

        pg_test_timing — measure timing overhead

        Synopsis

        pg_test_timing [option...]

        Description

        pg_test_timing is a tool to measure the timing overhead +pg_test_timing

        pg_test_timing

        pg_test_timing — measure timing overhead

        Synopsis

        pg_test_timing [option...]

        Description

        pg_test_timing is a tool to measure the timing overhead on your system and confirm that the system time never moves backwards. Systems that are slow to collect timing data can give less accurate EXPLAIN ANALYZE results. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgtrgm.html postgresql-10-10.12/doc/src/sgml/html/pgtrgm.html --- postgresql-10-10.10/doc/src/sgml/html/pgtrgm.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgtrgm.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.32. pg_trgm

        F.32. pg_trgm

        The pg_trgm module provides functions and operators +F.32. pg_trgm

        F.32. pg_trgm

        The pg_trgm module provides functions and operators for determining the similarity of alphanumeric text based on trigram matching, as well as index operator classes that support fast searching for similar @@ -98,11 +98,6 @@

        Sets the current word similarity threshold that is used by the <% and %> operators. The threshold must be between 0 and 1 (default is 0.6). -

        pg_trgm.strict_word_similarity_threshold (real) - -

        Sets the current strict word similarity threshold that is used by the - <<% and %>> operators. The threshold - must be between 0 and 1 (default is 0.5).

      F.32.4. Index Support

      The pg_trgm module provides GiST and GIN index operator classes that allow you to create an index over a text column for the purpose of very fast similarity searches. These index types support diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgupgrade.html postgresql-10-10.12/doc/src/sgml/html/pgupgrade.html --- postgresql-10-10.10/doc/src/sgml/html/pgupgrade.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgupgrade.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_upgrade

      pg_upgrade

      pg_upgrade — upgrade a PostgreSQL server instance

      Synopsis

      pg_upgrade -b oldbindir -B newbindir -d oldconfigdir -D newconfigdir [option...]

      Description

      pg_upgrade (formerly called pg_migrator) allows data +pg_upgrade

      pg_upgrade

      pg_upgrade — upgrade a PostgreSQL server instance

      Synopsis

      pg_upgrade -b oldbindir -B newbindir -d oldconfigdir -D newconfigdir [option...]

      Description

      pg_upgrade (formerly called pg_migrator) allows data stored in PostgreSQL data files to be upgraded to a later PostgreSQL major version without the data dump/reload typically required for major version upgrades, e.g. from 9.5.8 to 9.6.4 or from 10.7 to 11.2. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgvisibility.html postgresql-10-10.12/doc/src/sgml/html/pgvisibility.html --- postgresql-10-10.10/doc/src/sgml/html/pgvisibility.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgvisibility.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.33. pg_visibility

      F.33. pg_visibility

      The pg_visibility module provides a means for examining the +F.33. pg_visibility

      F.33. pg_visibility

      The pg_visibility module provides a means for examining the visibility map (VM) and page-level visibility information of a table. It also provides functions to check the integrity of a visibility map and to force it to be rebuilt. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pgwaldump.html postgresql-10-10.12/doc/src/sgml/html/pgwaldump.html --- postgresql-10-10.10/doc/src/sgml/html/pgwaldump.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pgwaldump.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -pg_waldump

      pg_waldump

      pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster

      Synopsis

      pg_waldump [option...] [startseg +pg_waldump

      pg_waldump

      pg_waldump — display a human-readable rendering of the write-ahead log of a PostgreSQL database cluster

      Synopsis

      pg_waldump [option...] [startseg [endseg] ]

      Description

      pg_waldump displays the write-ahead log (WAL) and is mainly useful for debugging or educational purposes. diff -Nru postgresql-10-10.10/doc/src/sgml/html/planner-optimizer.html postgresql-10-10.12/doc/src/sgml/html/planner-optimizer.html --- postgresql-10-10.10/doc/src/sgml/html/planner-optimizer.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/planner-optimizer.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -50.5. Planner/Optimizer

      50.5. Planner/Optimizer

      The task of the planner/optimizer is to +50.5. Planner/Optimizer

      50.5. Planner/Optimizer

      The task of the planner/optimizer is to create an optimal execution plan. A given SQL query (and hence, a query tree) can be actually executed in a wide variety of different ways, each of which will produce the same set of diff -Nru postgresql-10-10.10/doc/src/sgml/html/planner-stats-details.html postgresql-10-10.12/doc/src/sgml/html/planner-stats-details.html --- postgresql-10-10.10/doc/src/sgml/html/planner-stats-details.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/planner-stats-details.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 68. How the Planner Uses Statistics

      Chapter 68. How the Planner Uses Statistics

      This chapter builds on the material covered in Section 14.1 and Section 14.2 to show some +Chapter 68. How the Planner Uses Statistics

      Chapter 68. How the Planner Uses Statistics

      This chapter builds on the material covered in Section 14.1 and Section 14.2 to show some additional details about how the planner uses the system statistics to estimate the number of rows each part of a query might return. This is a significant part of the planning process, diff -Nru postgresql-10-10.10/doc/src/sgml/html/planner-stats.html postgresql-10-10.12/doc/src/sgml/html/planner-stats.html --- postgresql-10-10.10/doc/src/sgml/html/planner-stats.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/planner-stats.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -14.2. Statistics Used by the Planner

      14.2. Statistics Used by the Planner

      14.2.1. Single-Column Statistics

      As we saw in the previous section, the query planner needs to estimate +14.2. Statistics Used by the Planner

      14.2. Statistics Used by the Planner

      14.2.1. Single-Column Statistics

      As we saw in the previous section, the query planner needs to estimate the number of rows retrieved by a query in order to make good choices of query plans. This section provides a quick look at the statistics that the system uses for these estimates. diff -Nru postgresql-10-10.10/doc/src/sgml/html/planner-stats-security.html postgresql-10-10.12/doc/src/sgml/html/planner-stats-security.html --- postgresql-10-10.10/doc/src/sgml/html/planner-stats-security.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/planner-stats-security.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -68.3. Planner Statistics and Security

      68.3. Planner Statistics and Security

      Access to the table pg_statistic is restricted to +68.3. Planner Statistics and Security

      68.3. Planner Statistics and Security

      Access to the table pg_statistic is restricted to superusers, so that ordinary users cannot learn about the contents of the tables of other users from it. Some selectivity estimation functions will use a user-provided operator (either the operator appearing in the query or diff -Nru postgresql-10-10.10/doc/src/sgml/html/plhandler.html postgresql-10-10.12/doc/src/sgml/html/plhandler.html --- postgresql-10-10.10/doc/src/sgml/html/plhandler.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plhandler.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 55. Writing A Procedural Language Handler

      Chapter 55. Writing A Procedural Language Handler

      All calls to functions that are written in a language other than +Chapter 55. Writing A Procedural Language Handler

      Chapter 55. Writing A Procedural Language Handler

      All calls to functions that are written in a language other than the current version 1 interface for compiled languages (this includes functions in user-defined procedural languages and functions written in SQL) go through a call handler diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-builtins.html postgresql-10-10.12/doc/src/sgml/html/plperl-builtins.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-builtins.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-builtins.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.3. Built-in Functions

      44.3. Built-in Functions

      44.3.1. Database Access from PL/Perl

      Access to the database itself from your Perl function can be done +44.3. Built-in Functions

      44.3. Built-in Functions

      44.3.1. Database Access from PL/Perl

      Access to the database itself from your Perl function can be done via the following functions:

      spi_exec_query(query [, max-rows]) diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-data.html postgresql-10-10.12/doc/src/sgml/html/plperl-data.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-data.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-data.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.2. Data Values in PL/Perl

      44.2. Data Values in PL/Perl

      The argument values supplied to a PL/Perl function's code are +44.2. Data Values in PL/Perl

      44.2. Data Values in PL/Perl

      The argument values supplied to a PL/Perl function's code are simply the input arguments converted to text form (just as if they had been displayed by a SELECT statement). Conversely, the return and return_next diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-event-triggers.html postgresql-10-10.12/doc/src/sgml/html/plperl-event-triggers.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-event-triggers.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-event-triggers.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.7. PL/Perl Event Triggers

      44.7. PL/Perl Event Triggers

      PL/Perl can be used to write event trigger functions. In an event trigger +44.7. PL/Perl Event Triggers

      44.7. PL/Perl Event Triggers

      PL/Perl can be used to write event trigger functions. In an event trigger function, the hash reference $_TD contains information about the current trigger event. $_TD is a global variable, which gets a separate local value for each invocation of the trigger. The diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-funcs.html postgresql-10-10.12/doc/src/sgml/html/plperl-funcs.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-funcs.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-funcs.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.1. PL/Perl Functions and Arguments

      44.1. PL/Perl Functions and Arguments

      To create a function in the PL/Perl language, use the standard +44.1. PL/Perl Functions and Arguments

      44.1. PL/Perl Functions and Arguments

      To create a function in the PL/Perl language, use the standard CREATE FUNCTION syntax: diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-global.html postgresql-10-10.12/doc/src/sgml/html/plperl-global.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-global.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-global.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.4. Global Values in PL/Perl

      44.4. Global Values in PL/Perl

      You can use the global hash %_SHARED to store +44.4. Global Values in PL/Perl

      44.4. Global Values in PL/Perl

      You can use the global hash %_SHARED to store data, including code references, between function calls for the lifetime of the current session.

      Here is a simple example for shared data: diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl.html postgresql-10-10.12/doc/src/sgml/html/plperl.html --- postgresql-10-10.10/doc/src/sgml/html/plperl.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 44. PL/Perl - Perl Procedural Language

      Chapter 44. PL/Perl - Perl Procedural Language

      PL/Perl is a loadable procedural language that enables you to write +Chapter 44. PL/Perl - Perl Procedural Language

      Chapter 44. PL/Perl - Perl Procedural Language

      PL/Perl is a loadable procedural language that enables you to write PostgreSQL functions in the Perl programming language.

      The main advantage to using PL/Perl is that this allows use, diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-triggers.html postgresql-10-10.12/doc/src/sgml/html/plperl-triggers.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-triggers.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-triggers.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.6. PL/Perl Triggers

      44.6. PL/Perl Triggers

      PL/Perl can be used to write trigger functions. In a trigger function, +44.6. PL/Perl Triggers

      44.6. PL/Perl Triggers

      PL/Perl can be used to write trigger functions. In a trigger function, the hash reference $_TD contains information about the current trigger event. $_TD is a global variable, which gets a separate local value for each invocation of the trigger. diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-trusted.html postgresql-10-10.12/doc/src/sgml/html/plperl-trusted.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-trusted.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-trusted.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.5. Trusted and Untrusted PL/Perl

      44.5. Trusted and Untrusted PL/Perl

      Normally, PL/Perl is installed as a trusted programming +44.5. Trusted and Untrusted PL/Perl

      44.5. Trusted and Untrusted PL/Perl

      Normally, PL/Perl is installed as a trusted programming language named plperl. In this setup, certain Perl operations are disabled to preserve security. In general, the operations that are restricted are those that interact with the diff -Nru postgresql-10-10.10/doc/src/sgml/html/plperl-under-the-hood.html postgresql-10-10.12/doc/src/sgml/html/plperl-under-the-hood.html --- postgresql-10-10.10/doc/src/sgml/html/plperl-under-the-hood.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plperl-under-the-hood.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -44.8. PL/Perl Under the Hood

      44.8. PL/Perl Under the Hood

      44.8.1. Configuration

      This section lists configuration parameters that affect PL/Perl. +44.8. PL/Perl Under the Hood

      44.8. PL/Perl Under the Hood

      44.8.1. Configuration

      This section lists configuration parameters that affect PL/Perl.

      plperl.on_init (string)

      Specifies Perl code to be executed when a Perl interpreter is first diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-control-structures.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-control-structures.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-control-structures.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-control-structures.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.6. Control Structures

      42.6. Control Structures

      Control structures are probably the most useful (and +42.6. Control Structures

      42.6. Control Structures

      Control structures are probably the most useful (and important) part of PL/pgSQL. With PL/pgSQL's control structures, you can manipulate PostgreSQL data in a very @@ -430,19 +430,29 @@ The target is successively assigned each row resulting from the query and the loop body is executed for each row. Here is an example: -

      CREATE FUNCTION cs_refresh_mviews() RETURNS integer AS $$
      +

      CREATE FUNCTION refresh_mviews() RETURNS integer AS $$
       DECLARE
           mviews RECORD;
       BEGIN
      -    RAISE NOTICE 'Refreshing materialized views...';
      +    RAISE NOTICE 'Refreshing all materialized views...';
       
      -    FOR mviews IN SELECT * FROM cs_materialized_views ORDER BY sort_key LOOP
      +    FOR mviews IN
      +       SELECT n.nspname AS mv_schema,
      +              c.relname AS mv_name,
      +              pg_catalog.pg_get_userbyid(c.relowner) AS owner
      +         FROM pg_catalog.pg_class c
      +    LEFT JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace)
      +        WHERE c.relkind = 'm'
      +     ORDER BY 1
      +    LOOP
       
      -        -- Now "mviews" has one record from cs_materialized_views
      +        -- Now "mviews" has one record with information about the materialized view
       
      -        RAISE NOTICE 'Refreshing materialized view %s ...', quote_ident(mviews.mv_name);
      -        EXECUTE format('TRUNCATE TABLE %I', mviews.mv_name);
      -        EXECUTE format('INSERT INTO %I %s', mviews.mv_name, mviews.mv_query);
      +        RAISE NOTICE 'Refreshing materialized view %.% (owner: %)...',
      +                     quote_ident(mviews.mv_schema),
      +                     quote_ident(mviews.mv_name),
      +                     quote_ident(mviews.owner);
      +        EXECUTE format('REFRESH MATERIALIZED VIEW %I.%I', mviews.mv_schema, mviews.mv_name);
           END LOOP;
       
           RAISE NOTICE 'Done refreshing materialized views.';
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-cursors.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-cursors.html
      --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-cursors.html	2019-08-05 21:30:06.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-cursors.html	2020-02-10 22:31:50.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -42.7. Cursors

      42.7. Cursors

      Rather than executing a whole query at once, it is possible to set +42.7. Cursors

      42.7. Cursors

      Rather than executing a whole query at once, it is possible to set up a cursor that encapsulates the query, and then read the query result a few rows at a time. One reason for doing this is to avoid memory overrun when the result contains a large number of diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-declarations.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-declarations.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-declarations.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-declarations.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.3. Declarations

      42.3. Declarations

      All variables used in a block must be declared in the +42.3. Declarations

      42.3. Declarations

      All variables used in a block must be declared in the declarations section of the block. (The only exceptions are that the loop variable of a FOR loop iterating over a range of integer values is automatically declared as an diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-development-tips.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-development-tips.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-development-tips.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-development-tips.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.11. Tips for Developing in PL/pgSQL

      42.11. Tips for Developing in PL/pgSQL

      One good way to develop in +42.11. Tips for Developing in PL/pgSQL

      42.11. Tips for Developing in PL/pgSQL

      One good way to develop in PL/pgSQL is to use the text editor of your choice to create your functions, and in another window, use psql to load and test those functions. diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-errors-and-messages.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-errors-and-messages.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-errors-and-messages.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-errors-and-messages.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.8. Errors and Messages

      42.8. Errors and Messages

      42.8.1. Reporting Errors and Messages

      Use the RAISE statement to report messages and +42.8. Errors and Messages

      42.8. Errors and Messages

      42.8.1. Reporting Errors and Messages

      Use the RAISE statement to report messages and raise errors.

      RAISE [ level ] 'format' [, expression [, ... ]] [ USING option = expression [, ... ] ];
      @@ -79,7 +79,7 @@
            Oracle's PL/SQL.
           

      If no condition name nor SQLSTATE is specified in a RAISE EXCEPTION command, the default is to use - RAISE_EXCEPTION (P0001). If no message + ERRCODE_RAISE_EXCEPTION (P0001). If no message text is specified, the default is to use the condition name or SQLSTATE as message text.

      Note

      When specifying an error code by SQLSTATE code, you are not diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-expressions.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-expressions.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-expressions.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-expressions.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.4. Expressions

      42.4. Expressions

      All expressions used in PL/pgSQL +42.4. Expressions

      42.4. Expressions

      All expressions used in PL/pgSQL statements are processed using the server's main SQL executor. For example, when you write a PL/pgSQL statement like diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql.html postgresql-10-10.12/doc/src/sgml/html/plpgsql.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 42. PL/pgSQL - SQL Procedural Language

      \ No newline at end of file +Chapter 42. PL/pgSQL - SQL Procedural Language \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-implementation.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-implementation.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-implementation.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-implementation.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.10. PL/pgSQL Under the Hood

      42.10. PL/pgSQL Under the Hood

      This section discusses some implementation details that are +42.10. PL/pgSQL Under the Hood

      42.10. PL/pgSQL Under the Hood

      This section discusses some implementation details that are frequently important for PL/pgSQL users to know.

      42.10.1. Variable Substitution

      SQL statements and expressions within a PL/pgSQL function can refer to variables and parameters of the function. Behind the scenes, diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-overview.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-overview.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-overview.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-overview.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.1. Overview

      42.1. Overview

      PL/pgSQL is a loadable procedural +42.1. Overview

      42.1. Overview

      PL/pgSQL is a loadable procedural language for the PostgreSQL database system. The design goals of PL/pgSQL were to create a loadable procedural language that diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-porting.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-porting.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-porting.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-porting.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.12. Porting from Oracle PL/SQL

      42.12. Porting from Oracle PL/SQL

      This section explains differences between +42.12. Porting from Oracle PL/SQL

      42.12. Porting from Oracle PL/SQL

      This section explains differences between PostgreSQL's PL/pgSQL language and Oracle's PL/SQL language, to help developers who port applications from @@ -288,7 +288,7 @@ INSERT INTO cs_active_job(job_id) VALUES (v_job_id); BEGIN - INSERT INTO cs_jobs (job_id, start_stamp) VALUES (v_job_id, sysdate); + INSERT INTO cs_jobs (job_id, start_stamp) VALUES (v_job_id, now()); EXCEPTION WHEN dup_val_on_index THEN NULL; -- don't worry if it already exists END; diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-statements.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-statements.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-statements.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-statements.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.5. Basic Statements

      42.5. Basic Statements

      In this section and the following ones, we describe all the statement +42.5. Basic Statements

      42.5. Basic Statements

      In this section and the following ones, we describe all the statement types that are explicitly understood by PL/pgSQL. Anything not recognized as one of these statement types is presumed diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-structure.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-structure.html --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-structure.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-structure.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -42.2. Structure of PL/pgSQL

      42.2. Structure of PL/pgSQL

      Functions written in PL/pgSQL are defined +42.2. Structure of PL/pgSQL

      42.2. Structure of PL/pgSQL

      Functions written in PL/pgSQL are defined to the server by executing CREATE FUNCTION commands. Such a command would normally look like, say,

      CREATE FUNCTION somefunc(integer, text) RETURNS integer
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpgsql-trigger.html postgresql-10-10.12/doc/src/sgml/html/plpgsql-trigger.html
      --- postgresql-10-10.10/doc/src/sgml/html/plpgsql-trigger.html	2019-08-05 21:30:06.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/plpgsql-trigger.html	2020-02-10 22:31:50.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -42.9. Trigger Procedures

      42.9. Trigger Procedures

      PL/pgSQL can be used to define trigger +42.9. Trigger Procedures

      42.9. Trigger Procedures

      PL/pgSQL can be used to define trigger procedures on data changes or database events. A trigger procedure is created with the CREATE FUNCTION command, declaring it as a function with no arguments and a return type of diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-database.html postgresql-10-10.12/doc/src/sgml/html/plpython-database.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-database.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-database.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.7. Database Access

      45.7. Database Access

      The PL/Python language module automatically imports a Python module +45.7. Database Access

      45.7. Database Access

      The PL/Python language module automatically imports a Python module called plpy. The functions and constants in this module are available to you in the Python code as plpy.foo. diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-data.html postgresql-10-10.12/doc/src/sgml/html/plpython-data.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-data.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-data.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.3. Data Values

      45.3. Data Values

      Generally speaking, the aim of PL/Python is to provide +45.3. Data Values

      45.3. Data Values

      Generally speaking, the aim of PL/Python is to provide a natural mapping between the PostgreSQL and the Python worlds. This informs the data mapping rules described below. diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-do.html postgresql-10-10.12/doc/src/sgml/html/plpython-do.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-do.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-do.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.5. Anonymous Code Blocks

      45.5. Anonymous Code Blocks

      PL/Python also supports anonymous code blocks called with the +45.5. Anonymous Code Blocks

      45.5. Anonymous Code Blocks

      PL/Python also supports anonymous code blocks called with the DO statement:

      DO $$
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-envar.html postgresql-10-10.12/doc/src/sgml/html/plpython-envar.html
      --- postgresql-10-10.10/doc/src/sgml/html/plpython-envar.html	2019-08-05 21:30:06.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/plpython-envar.html	2020-02-10 22:31:51.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -45.10. Environment Variables

      45.10. Environment Variables

      Some of the environment variables that are accepted by the Python +45.10. Environment Variables

      45.10. Environment Variables

      Some of the environment variables that are accepted by the Python interpreter can also be used to affect PL/Python behavior. They would need to be set in the environment of the main PostgreSQL server process, for example in a start script. The available diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-funcs.html postgresql-10-10.12/doc/src/sgml/html/plpython-funcs.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-funcs.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-funcs.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.2. PL/Python Functions

      45.2. PL/Python Functions

      Functions in PL/Python are declared via the +45.2. PL/Python Functions

      45.2. PL/Python Functions

      Functions in PL/Python are declared via the standard CREATE FUNCTION syntax:

      CREATE FUNCTION funcname (argument-list)
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython.html postgresql-10-10.12/doc/src/sgml/html/plpython.html
      --- postgresql-10-10.10/doc/src/sgml/html/plpython.html	2019-08-05 21:30:06.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/plpython.html	2020-02-10 22:31:51.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -Chapter 45. PL/Python - Python Procedural Language

      Chapter 45. PL/Python - Python Procedural Language

      The PL/Python procedural language allows +Chapter 45. PL/Python - Python Procedural Language

      Chapter 45. PL/Python - Python Procedural Language

      The PL/Python procedural language allows PostgreSQL functions to be written in the Python language.

      To install PL/Python in a particular database, use diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-python23.html postgresql-10-10.12/doc/src/sgml/html/plpython-python23.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-python23.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-python23.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.1. Python 2 vs. Python 3

      45.1. Python 2 vs. Python 3

      PL/Python supports both the Python 2 and Python 3 language +45.1. Python 2 vs. Python 3

      45.1. Python 2 vs. Python 3

      PL/Python supports both the Python 2 and Python 3 language variants. (The PostgreSQL installation instructions might contain more precise information about the exact supported minor versions of Python.) Because the Python 2 and Python 3 language variants diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-sharing.html postgresql-10-10.12/doc/src/sgml/html/plpython-sharing.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-sharing.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-sharing.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.4. Sharing Data

      45.4. Sharing Data

      The global dictionary SD is available to store +45.4. Sharing Data

      45.4. Sharing Data

      The global dictionary SD is available to store private data between repeated calls to the same function. The global dictionary GD is public data, that is available to all Python functions within a session; use with diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-subtransaction.html postgresql-10-10.12/doc/src/sgml/html/plpython-subtransaction.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-subtransaction.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-subtransaction.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.8. Explicit Subtransactions

      45.8. Explicit Subtransactions

      Recovering from errors caused by database access as described in +45.8. Explicit Subtransactions

      45.8. Explicit Subtransactions

      Recovering from errors caused by database access as described in Section 45.7.2 can lead to an undesirable situation where some operations succeed before one of them fails, and after recovering from that error the data is left in an diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-trigger.html postgresql-10-10.12/doc/src/sgml/html/plpython-trigger.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-trigger.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-trigger.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.6. Trigger Functions

      45.6. Trigger Functions

      When a function is used as a trigger, the dictionary +45.6. Trigger Functions

      45.6. Trigger Functions

      When a function is used as a trigger, the dictionary TD contains trigger-related values:

      TD["event"]

      contains the event as a string: INSERT, UPDATE, diff -Nru postgresql-10-10.10/doc/src/sgml/html/plpython-util.html postgresql-10-10.12/doc/src/sgml/html/plpython-util.html --- postgresql-10-10.10/doc/src/sgml/html/plpython-util.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/plpython-util.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -45.9. Utility Functions

      45.9. Utility Functions

      The plpy module also provides the functions +45.9. Utility Functions

      45.9. Utility Functions

      The plpy module also provides the functions

      plpy.debug(msg, **kwargs)
      plpy.log(msg, **kwargs)
      plpy.info(msg, **kwargs)
      plpy.notice(msg, **kwargs)
      plpy.warning(msg, **kwargs)
      plpy.error(msg, **kwargs)
      plpy.fatal(msg, **kwargs)

      plpy.error and plpy.fatal diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-config.html postgresql-10-10.12/doc/src/sgml/html/pltcl-config.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-config.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-config.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -43.10. PL/Tcl Configuration

      43.10. PL/Tcl Configuration

      This section lists configuration parameters that +43.10. PL/Tcl Configuration

      43.10. PL/Tcl Configuration

      This section lists configuration parameters that affect PL/Tcl.

      pltcl.start_proc (string) diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-data.html postgresql-10-10.12/doc/src/sgml/html/pltcl-data.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-data.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-data.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -43.3. Data Values in PL/Tcl

      43.3. Data Values in PL/Tcl

      The argument values supplied to a PL/Tcl function's code are simply +43.3. Data Values in PL/Tcl

      43.3. Data Values in PL/Tcl

      The argument values supplied to a PL/Tcl function's code are simply the input arguments converted to text form (just as if they had been displayed by a SELECT statement). Conversely, the return and return_next commands will accept diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-dbaccess.html postgresql-10-10.12/doc/src/sgml/html/pltcl-dbaccess.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-dbaccess.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-dbaccess.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -43.5. Database Access from PL/Tcl

      43.5. Database Access from PL/Tcl

      The following commands are available to access the database from +43.5. Database Access from PL/Tcl

      43.5. Database Access from PL/Tcl

      The following commands are available to access the database from the body of a PL/Tcl function:

      spi_exec ?-count n? ?-array name? command ?loop-body?

      Executes an SQL command given as a string. An error in the command diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-error-handling.html postgresql-10-10.12/doc/src/sgml/html/pltcl-error-handling.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-error-handling.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-error-handling.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -43.8. Error Handling in PL/Tcl

      43.8. Error Handling in PL/Tcl

      Tcl code within or called from a PL/Tcl function can raise an error, +43.8. Error Handling in PL/Tcl

      43.8. Error Handling in PL/Tcl

      Tcl code within or called from a PL/Tcl function can raise an error, either by executing some invalid operation or by generating an error using the Tcl error command or PL/Tcl's elog command. Such errors can be caught diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-event-trigger.html postgresql-10-10.12/doc/src/sgml/html/pltcl-event-trigger.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-event-trigger.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-event-trigger.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -43.7. Event Trigger Procedures in PL/Tcl

      43.7. Event Trigger Procedures in PL/Tcl

      Event trigger procedures can be written in PL/Tcl. +43.7. Event Trigger Procedures in PL/Tcl

      43.7. Event Trigger Procedures in PL/Tcl

      Event trigger procedures can be written in PL/Tcl. PostgreSQL requires that a procedure that is to be called as an event trigger must be declared as a function with no arguments and a return type of event_trigger. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-functions.html postgresql-10-10.12/doc/src/sgml/html/pltcl-functions.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-functions.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-functions.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -43.2. PL/Tcl Functions and Arguments

      43.2. PL/Tcl Functions and Arguments

      To create a function in the PL/Tcl language, use +43.2. PL/Tcl Functions and Arguments

      43.2. PL/Tcl Functions and Arguments

      To create a function in the PL/Tcl language, use the standard CREATE FUNCTION syntax:

      CREATE FUNCTION funcname (argument-types) RETURNS return-type AS $$
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-global.html postgresql-10-10.12/doc/src/sgml/html/pltcl-global.html
      --- postgresql-10-10.10/doc/src/sgml/html/pltcl-global.html	2019-08-05 21:30:06.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-global.html	2020-02-10 22:31:51.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -43.4. Global Data in PL/Tcl

      43.4. Global Data in PL/Tcl

      Sometimes it +43.4. Global Data in PL/Tcl

      43.4. Global Data in PL/Tcl

      Sometimes it is useful to have some global data that is held between two calls to a function or is shared between different functions. This is easily done in PL/Tcl, but there are some restrictions that diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl.html postgresql-10-10.12/doc/src/sgml/html/pltcl.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 43. PL/Tcl - Tcl Procedural Language

      Chapter 43. PL/Tcl - Tcl Procedural Language

      PL/Tcl is a loadable procedural language for the +Chapter 43. PL/Tcl - Tcl Procedural Language

      Chapter 43. PL/Tcl - Tcl Procedural Language

      PL/Tcl is a loadable procedural language for the PostgreSQL database system that enables the Tcl language to be used to write functions and trigger procedures. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-overview.html postgresql-10-10.12/doc/src/sgml/html/pltcl-overview.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-overview.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-overview.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -43.1. Overview

      43.1. Overview

      PL/Tcl offers most of the capabilities a function writer has in +43.1. Overview

      43.1. Overview

      PL/Tcl offers most of the capabilities a function writer has in the C language, with a few restrictions, and with the addition of the powerful string processing libraries that are available for Tcl. diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-procnames.html postgresql-10-10.12/doc/src/sgml/html/pltcl-procnames.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-procnames.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-procnames.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -43.11. Tcl Procedure Names

      43.11. Tcl Procedure Names

      In PostgreSQL, the same function name can be used for +43.11. Tcl Procedure Names

      43.11. Tcl Procedure Names

      In PostgreSQL, the same function name can be used for different function definitions as long as the number of arguments or their types differ. Tcl, however, requires all procedure names to be distinct. PL/Tcl deals with this by making the internal Tcl procedure names contain diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-subtransactions.html postgresql-10-10.12/doc/src/sgml/html/pltcl-subtransactions.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-subtransactions.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-subtransactions.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -43.9. Explicit Subtransactions in PL/Tcl

      43.9. Explicit Subtransactions in PL/Tcl

      Recovering from errors caused by database access as described in +43.9. Explicit Subtransactions in PL/Tcl

      43.9. Explicit Subtransactions in PL/Tcl

      Recovering from errors caused by database access as described in Section 43.8 can lead to an undesirable situation where some operations succeed before one of them fails, and after recovering from that error the data is left in an diff -Nru postgresql-10-10.10/doc/src/sgml/html/pltcl-trigger.html postgresql-10-10.12/doc/src/sgml/html/pltcl-trigger.html --- postgresql-10-10.10/doc/src/sgml/html/pltcl-trigger.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/pltcl-trigger.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -43.6. Trigger Procedures in PL/Tcl

      43.6. Trigger Procedures in PL/Tcl

      Trigger procedures can be written in PL/Tcl. +43.6. Trigger Procedures in PL/Tcl

      43.6. Trigger Procedures in PL/Tcl

      Trigger procedures can be written in PL/Tcl. PostgreSQL requires that a procedure that is to be called as a trigger must be declared as a function with no arguments and a return type of trigger. diff -Nru postgresql-10-10.10/doc/src/sgml/html/populate.html postgresql-10-10.12/doc/src/sgml/html/populate.html --- postgresql-10-10.10/doc/src/sgml/html/populate.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/populate.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -14.4. Populating a Database

      14.4. Populating a Database

      One might need to insert a large amount of data when first populating +14.4. Populating a Database

      14.4. Populating a Database

      One might need to insert a large amount of data when first populating a database. This section contains some suggestions on how to make this process as efficient as possible.

      14.4.1. Disable Autocommit

      When using multiple INSERTs, turn off autocommit and just do diff -Nru postgresql-10-10.10/doc/src/sgml/html/postgres-fdw.html postgresql-10-10.12/doc/src/sgml/html/postgres-fdw.html --- postgresql-10-10.10/doc/src/sgml/html/postgres-fdw.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/postgres-fdw.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.34. postgres_fdw

      F.34. postgres_fdw

      The postgres_fdw module provides the foreign-data wrapper +F.34. postgres_fdw

      F.34. postgres_fdw

      The postgres_fdw module provides the foreign-data wrapper postgres_fdw, which can be used to access data stored in external PostgreSQL servers.

      The functionality provided by this module overlaps substantially @@ -220,6 +220,9 @@ isolation level, but it might be surprising for a READ COMMITTED local transaction. A future PostgreSQL release might modify these rules. +

      Note that it is currently not supported by + postgres_fdw to prepare the remote transaction for + two-phase commit.

      F.34.4. Remote Query Optimization

      postgres_fdw attempts to optimize remote queries to reduce the amount of data transferred from foreign servers. This is done by sending query WHERE clauses to the remote server for diff -Nru postgresql-10-10.10/doc/src/sgml/html/postgres-user.html postgresql-10-10.12/doc/src/sgml/html/postgres-user.html --- postgresql-10-10.10/doc/src/sgml/html/postgres-user.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/postgres-user.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.1. The PostgreSQL User Account

      18.1. The PostgreSQL User Account

      As with any server daemon that is accessible to the outside world, +18.1. The PostgreSQL User Account

      18.1. The PostgreSQL User Account

      As with any server daemon that is accessible to the outside world, it is advisable to run PostgreSQL under a separate user account. This user account should only own the data that is managed by the server, and should not be shared with other diff -Nru postgresql-10-10.10/doc/src/sgml/html/preface.html postgresql-10-10.12/doc/src/sgml/html/preface.html --- postgresql-10-10.10/doc/src/sgml/html/preface.html 2019-08-05 21:29:55.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/preface.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -Preface

    • Part VII contains assorted information that might be of use to PostgreSQL developers.

    -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/preventing-server-spoofing.html postgresql-10-10.12/doc/src/sgml/html/preventing-server-spoofing.html --- postgresql-10-10.10/doc/src/sgml/html/preventing-server-spoofing.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/preventing-server-spoofing.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.7. Preventing Server Spoofing

    18.7. Preventing Server Spoofing

    While the server is running, it is not possible for a malicious user +18.7. Preventing Server Spoofing

    18.7. Preventing Server Spoofing

    While the server is running, it is not possible for a malicious user to take the place of the normal database server. However, when the server is down, it is possible for a local user to spoof the normal server by starting their own server. The spoof server could read diff -Nru postgresql-10-10.10/doc/src/sgml/html/progress-reporting.html postgresql-10-10.12/doc/src/sgml/html/progress-reporting.html --- postgresql-10-10.10/doc/src/sgml/html/progress-reporting.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/progress-reporting.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -28.4. Progress Reporting

    28.4. Progress Reporting

    PostgreSQL has the ability to report the progress of +28.4. Progress Reporting

    28.4. Progress Reporting

    PostgreSQL has the ability to report the progress of certain commands during command execution. Currently, the only command which supports progress reporting is VACUUM. This may be expanded in the future. diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-changes.html postgresql-10-10.12/doc/src/sgml/html/protocol-changes.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-changes.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-changes.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.10. Summary of Changes since Protocol 2.0

    52.10. Summary of Changes since Protocol 2.0

    This section provides a quick checklist of changes, for the benefit of +52.10. Summary of Changes since Protocol 2.0

    52.10. Summary of Changes since Protocol 2.0

    This section provides a quick checklist of changes, for the benefit of developers trying to update existing client libraries to protocol 3.0.

    The initial startup packet uses a flexible list-of-strings format instead of a fixed format. Notice that session default values for run-time parameters can now be specified directly in the startup packet. (Actually, diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-error-fields.html postgresql-10-10.12/doc/src/sgml/html/protocol-error-fields.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-error-fields.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-error-fields.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.8. Error and Notice Message Fields

    52.8. Error and Notice Message Fields

    This section describes the fields that can appear in ErrorResponse and +52.8. Error and Notice Message Fields

    52.8. Error and Notice Message Fields

    This section describes the fields that can appear in ErrorResponse and NoticeResponse messages. Each field type has a single-byte identification token. Note that any given field type should appear at most once per message.

    S

    Severity: the field contents are diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-flow.html postgresql-10-10.12/doc/src/sgml/html/protocol-flow.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-flow.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-flow.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.2. Message Flow

    52.2. Message Flow

    This section describes the message flow and the semantics of each +52.2. Message Flow

    52.2. Message Flow

    This section describes the message flow and the semantics of each message type. (Details of the exact representation of each message appear in Section 52.7.) There are several different sub-protocols depending on the state of the diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol.html postgresql-10-10.12/doc/src/sgml/html/protocol.html --- postgresql-10-10.10/doc/src/sgml/html/protocol.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 52. Frontend/Backend Protocol

    Chapter 52. Frontend/Backend Protocol

    PostgreSQL uses a message-based protocol +Chapter 52. Frontend/Backend Protocol

    Chapter 52. Frontend/Backend Protocol

    PostgreSQL uses a message-based protocol for communication between frontends and backends (clients and servers). The protocol is supported over TCP/IP and also over Unix-domain sockets. Port number 5432 has been registered with IANA as diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-logical-replication.html postgresql-10-10.12/doc/src/sgml/html/protocol-logical-replication.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-logical-replication.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-logical-replication.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.5. Logical Streaming Replication Protocol

    52.5. Logical Streaming Replication Protocol

    This section describes the logical replication protocol, which is the message +52.5. Logical Streaming Replication Protocol

    52.5. Logical Streaming Replication Protocol

    This section describes the logical replication protocol, which is the message flow started by the START_REPLICATION SLOT slot_name LOGICAL replication command. diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-logicalrep-message-formats.html postgresql-10-10.12/doc/src/sgml/html/protocol-logicalrep-message-formats.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-logicalrep-message-formats.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-logicalrep-message-formats.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.9. Logical Replication Message Formats

    52.9. Logical Replication Message Formats

    This section describes the detailed format of each logical replication message. +52.9. Logical Replication Message Formats

    52.9. Logical Replication Message Formats

    This section describes the detailed format of each logical replication message. These messages are returned either by the replication slot SQL interface or are sent by a walsender. In case of a walsender they are encapsulated inside the replication protocol WAL messages as described in Section 52.4 diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-message-formats.html postgresql-10-10.12/doc/src/sgml/html/protocol-message-formats.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-message-formats.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-message-formats.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.7. Message Formats

    52.7. Message Formats

    This section describes the detailed format of each message. Each is marked to +52.7. Message Formats

    52.7. Message Formats

    This section describes the detailed format of each message. Each is marked to indicate that it can be sent by a frontend (F), a backend (B), or both (F & B). Notice that although each message includes a byte count at the beginning, diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-message-types.html postgresql-10-10.12/doc/src/sgml/html/protocol-message-types.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-message-types.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-message-types.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.6. Message Data Types

    52.6. Message Data Types

    This section describes the base data types used in messages. +52.6. Message Data Types

    52.6. Message Data Types

    This section describes the base data types used in messages.

    Intn(i)

    An n-bit integer in network byte order (most significant byte first). diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-overview.html postgresql-10-10.12/doc/src/sgml/html/protocol-overview.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-overview.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-overview.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.1. Overview

    52.1. Overview

    The protocol has separate phases for startup and normal operation. +52.1. Overview

    52.1. Overview

    The protocol has separate phases for startup and normal operation. In the startup phase, the frontend opens a connection to the server and authenticates itself to the satisfaction of the server. (This might involve a single message, or multiple messages depending on the diff -Nru postgresql-10-10.10/doc/src/sgml/html/protocol-replication.html postgresql-10-10.12/doc/src/sgml/html/protocol-replication.html --- postgresql-10-10.10/doc/src/sgml/html/protocol-replication.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/protocol-replication.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.4. Streaming Replication Protocol

    52.4. Streaming Replication Protocol

    To initiate streaming replication, the frontend sends the +52.4. Streaming Replication Protocol

    52.4. Streaming Replication Protocol

    To initiate streaming replication, the frontend sends the replication parameter in the startup message. A Boolean value of true tells the backend to go into walsender mode, wherein a small set of replication commands can be issued instead of SQL statements. Only diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries.html postgresql-10-10.12/doc/src/sgml/html/queries.html --- postgresql-10-10.10/doc/src/sgml/html/queries.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/queries.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 7. Queries

    Chapter 7. Queries

    The previous chapters explained how to create tables, how to fill +Chapter 7. Queries

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-limit.html postgresql-10-10.12/doc/src/sgml/html/queries-limit.html --- postgresql-10-10.10/doc/src/sgml/html/queries-limit.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/queries-limit.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -7.6. LIMIT and OFFSET

    7.6. LIMIT and OFFSET

    LIMIT and OFFSET allow you to retrieve just +7.6. LIMIT and OFFSET

    7.6. LIMIT and OFFSET

    LIMIT and OFFSET allow you to retrieve just a portion of the rows that are generated by the rest of the query:

    SELECT select_list
         FROM table_expression
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-order.html postgresql-10-10.12/doc/src/sgml/html/queries-order.html
    --- postgresql-10-10.10/doc/src/sgml/html/queries-order.html	2019-08-05 21:29:56.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/queries-order.html	2020-02-10 22:31:41.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -7.5. Sorting Rows

    7.5. Sorting Rows

    After a query has produced an output table (after the select list +7.5. Sorting Rows

    7.5. Sorting Rows

    After a query has produced an output table (after the select list has been processed) it can optionally be sorted. If sorting is not chosen, the rows will be returned in an unspecified order. The actual order in that case will depend on the scan and join plan types and diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-overview.html postgresql-10-10.12/doc/src/sgml/html/queries-overview.html --- postgresql-10-10.10/doc/src/sgml/html/queries-overview.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/queries-overview.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -7.1. Overview

    7.1. Overview

    The process of retrieving or the command to retrieve data from a +7.1. Overview

    7.1. Overview

    The process of retrieving or the command to retrieve data from a database is called a query. In SQL the SELECT command is used to specify queries. The general syntax of the diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-select-lists.html postgresql-10-10.12/doc/src/sgml/html/queries-select-lists.html --- postgresql-10-10.10/doc/src/sgml/html/queries-select-lists.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/queries-select-lists.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -7.3. Select Lists

    7.3. Select Lists

    As shown in the previous section, +7.3. Select Lists

    7.3. Select Lists

    As shown in the previous section, the table expression in the SELECT command constructs an intermediate virtual table by possibly combining tables, views, eliminating rows, grouping, etc. This table is diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-table-expressions.html postgresql-10-10.12/doc/src/sgml/html/queries-table-expressions.html --- postgresql-10-10.10/doc/src/sgml/html/queries-table-expressions.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/queries-table-expressions.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -7.2. Table Expressions

    7.2. Table Expressions

    A table expression computes a table. The +7.2. Table Expressions

    7.2. Table Expressions

    A table expression computes a table. The table expression contains a FROM clause that is optionally followed by WHERE, GROUP BY, and HAVING clauses. Trivial table expressions simply refer diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-union.html postgresql-10-10.12/doc/src/sgml/html/queries-union.html --- postgresql-10-10.10/doc/src/sgml/html/queries-union.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/queries-union.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -7.4. Combining Queries

    7.4. Combining Queries

    The results of two queries can be combined using the set operations +7.4. Combining Queries

    7.4. Combining Queries

    The results of two queries can be combined using the set operations union, intersection, and difference. The syntax is

    query1 UNION [ALL] query2
     query1 INTERSECT [ALL] query2
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-values.html postgresql-10-10.12/doc/src/sgml/html/queries-values.html
    --- postgresql-10-10.10/doc/src/sgml/html/queries-values.html	2019-08-05 21:29:56.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/queries-values.html	2020-02-10 22:31:41.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -7.7. VALUES Lists

    7.7. VALUES Lists

    VALUES provides a way to generate a constant table +7.7. VALUES Lists

    7.7. VALUES Lists

    VALUES provides a way to generate a constant table that can be used in a query without having to actually create and populate a table on-disk. The syntax is

    VALUES ( expression [, ...] ) [, ...]

    diff -Nru postgresql-10-10.10/doc/src/sgml/html/queries-with.html postgresql-10-10.12/doc/src/sgml/html/queries-with.html --- postgresql-10-10.10/doc/src/sgml/html/queries-with.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/queries-with.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -7.8. WITH Queries (Common Table Expressions)

    7.8. WITH Queries (Common Table Expressions)

    WITH provides a way to write auxiliary statements for use in a +7.8. WITH Queries (Common Table Expressions)

    7.8. WITH Queries (Common Table Expressions)

    WITH provides a way to write auxiliary statements for use in a larger query. These statements, which are often referred to as Common Table Expressions or CTEs, can be thought of as defining temporary tables that exist just for one query. Each auxiliary statement diff -Nru postgresql-10-10.10/doc/src/sgml/html/query-path.html postgresql-10-10.12/doc/src/sgml/html/query-path.html --- postgresql-10-10.10/doc/src/sgml/html/query-path.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/query-path.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -50.1. The Path of a Query

    50.1. The Path of a Query

    Here we give a short overview of the stages a query has to pass in +50.1. The Path of a Query

    50.1. The Path of a Query

    Here we give a short overview of the stages a query has to pass in order to obtain a result.

    1. A connection from an application program to the PostgreSQL server has to be established. The application program transmits a diff -Nru postgresql-10-10.10/doc/src/sgml/html/querytree.html postgresql-10-10.12/doc/src/sgml/html/querytree.html --- postgresql-10-10.10/doc/src/sgml/html/querytree.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/querytree.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -40.1. The Query Tree

      40.1. The Query Tree

      To understand how the rule system works it is necessary to know +40.1. The Query Tree

      40.1. The Query Tree

      To understand how the rule system works it is necessary to know when it is invoked and what its input and results are.

      The rule system is located between the parser and the planner. It takes the output of the parser, one query tree, and the user-defined rewrite rules, which are also diff -Nru postgresql-10-10.10/doc/src/sgml/html/rangetypes.html postgresql-10-10.12/doc/src/sgml/html/rangetypes.html --- postgresql-10-10.10/doc/src/sgml/html/rangetypes.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rangetypes.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -8.17. Range Types

      8.17. Range Types

      Range types are data types representing a range of values of some +8.17. Range Types

      8.17. Range Types

      Range types are data types representing a range of values of some element type (called the range's subtype). For instance, ranges of timestamp might be used to represent the ranges of @@ -59,23 +59,23 @@

      The functions lower_inc and upper_inc test the inclusivity of the lower and upper bounds of a range value, respectively. -

      8.17.4. Infinite (Unbounded) Ranges

      The lower bound of a range can be omitted, meaning that all points less - than the upper bound are included in the range. Likewise, if the upper - bound of the range is omitted, then all points greater than the lower bound - are included in the range. If both lower and upper bounds are omitted, all - values of the element type are considered to be in the range. -

      This is equivalent to considering that the lower bound is minus - infinity, or the upper bound is plus infinity, - respectively. But note that these infinite values are never values of - the range's element type, and can never be part of the range. (So there - is no such thing as an inclusive infinite bound — if you try to - write one, it will automatically be converted to an exclusive bound.) -

      Also, some element types have a notion of infinity, but that - is just another value so far as the range type mechanisms are concerned. - For example, in timestamp ranges, [today,] means the same - thing as [today,). But [today,infinity] means - something different from [today,infinity) — the latter - excludes the special timestamp value infinity. +

      8.17.4. Infinite (Unbounded) Ranges

      The lower bound of a range can be omitted, meaning that all + values less than the upper bound are included in the range, e.g., + (,3]. Likewise, if the upper bound of the range + is omitted, then all values greater than the lower bound are included + in the range. If both lower and upper bounds are omitted, all values + of the element type are considered to be in the range. Specifying a + missing bound as inclusive is automatically converted to exclusive, + e.g., [,] is converted to (,). + You can think of these missing values as +/-infinity, but they are + special range type values and are considered to be beyond any range + element type's +/-infinity values. +

      Element types that have the notion of infinity can + use them as explicit bound values. For example, with timestamp + ranges, [today,infinity) excludes the special + timestamp value infinity, + while [today,infinity] include it, as does + [today,) and [today,].

      The functions lower_inf and upper_inf test for infinite lower and upper bounds of a range, respectively. diff -Nru postgresql-10-10.10/doc/src/sgml/html/recovery-config.html postgresql-10-10.12/doc/src/sgml/html/recovery-config.html --- postgresql-10-10.10/doc/src/sgml/html/recovery-config.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/recovery-config.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 27. Recovery Configuration

      Chapter 27. Recovery Configuration

      This chapter describes the settings available in the +Chapter 27. Recovery Configuration

      Chapter 27. Recovery Configuration

      This chapter describes the settings available in the recovery.conf file. They apply only for the duration of the recovery. They must be reset for any subsequent recovery you wish to diff -Nru postgresql-10-10.10/doc/src/sgml/html/recovery-target-settings.html postgresql-10-10.12/doc/src/sgml/html/recovery-target-settings.html --- postgresql-10-10.10/doc/src/sgml/html/recovery-target-settings.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/recovery-target-settings.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -27.2. Recovery Target Settings

      27.2. Recovery Target Settings

      By default, recovery will recover to the end of the WAL log. The +27.2. Recovery Target Settings

      27.2. Recovery Target Settings

      By default, recovery will recover to the end of the WAL log. The following parameters can be used to specify an earlier stopping point. At most one of recovery_target, recovery_target_lsn, recovery_target_name, diff -Nru postgresql-10-10.10/doc/src/sgml/html/reference-client.html postgresql-10-10.12/doc/src/sgml/html/reference-client.html --- postgresql-10-10.10/doc/src/sgml/html/reference-client.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/reference-client.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -PostgreSQL Client Applications

      PostgreSQL Client Applications


      This part contains reference information for +PostgreSQL Client Applications

      PostgreSQL Client Applications


      This part contains reference information for PostgreSQL client applications and utilities. Not all of these commands are of general utility; some might require special privileges. The common feature of these diff -Nru postgresql-10-10.10/doc/src/sgml/html/reference.html postgresql-10-10.12/doc/src/sgml/html/reference.html --- postgresql-10-10.10/doc/src/sgml/html/reference.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/reference.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -Part VI. Reference

      Part VI. Reference

      The entries in this Reference are meant to provide in reasonable +Part VI. Reference

      Part VI. Reference

      The entries in this Reference are meant to provide in reasonable length an authoritative, complete, and formal summary about their respective subjects. More information about the use of PostgreSQL, in narrative, tutorial, or diff -Nru postgresql-10-10.10/doc/src/sgml/html/reference-server.html postgresql-10-10.12/doc/src/sgml/html/reference-server.html --- postgresql-10-10.10/doc/src/sgml/html/reference-server.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/reference-server.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -PostgreSQL Server Applications

      PostgreSQL Server Applications


      This part contains reference information for +PostgreSQL Server Applications

      PostgreSQL Server Applications


      This part contains reference information for PostgreSQL server applications and support utilities. These commands can only be run usefully on the host where the database server resides. Other utility programs diff -Nru postgresql-10-10.10/doc/src/sgml/html/regress-coverage.html postgresql-10-10.12/doc/src/sgml/html/regress-coverage.html --- postgresql-10-10.10/doc/src/sgml/html/regress-coverage.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/regress-coverage.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -32.5. Test Coverage Examination

      32.5. Test Coverage Examination

      The PostgreSQL source code can be compiled with coverage testing +32.5. Test Coverage Examination

      32.5. Test Coverage Examination

      The PostgreSQL source code can be compiled with coverage testing instrumentation, so that it becomes possible to examine which parts of the code are covered by the regression tests or any other test suite that is run with the code. This is currently supported diff -Nru postgresql-10-10.10/doc/src/sgml/html/regress-evaluation.html postgresql-10-10.12/doc/src/sgml/html/regress-evaluation.html --- postgresql-10-10.10/doc/src/sgml/html/regress-evaluation.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/regress-evaluation.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -32.2. Test Evaluation

      32.2. Test Evaluation

      Some properly installed and fully functional +32.2. Test Evaluation

      32.2. Test Evaluation

      Some properly installed and fully functional PostgreSQL installations can fail some of these regression tests due to platform-specific artifacts such as varying floating-point representation diff -Nru postgresql-10-10.10/doc/src/sgml/html/regress.html postgresql-10-10.12/doc/src/sgml/html/regress.html --- postgresql-10-10.10/doc/src/sgml/html/regress.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/regress.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 32. Regression Tests

      Chapter 32. Regression Tests

      The regression tests are a comprehensive set of tests for the SQL +Chapter 32. Regression Tests

      Chapter 32. Regression Tests

      The regression tests are a comprehensive set of tests for the SQL implementation in PostgreSQL. They test standard SQL operations as well as the extended capabilities of PostgreSQL. diff -Nru postgresql-10-10.10/doc/src/sgml/html/regress-run.html postgresql-10-10.12/doc/src/sgml/html/regress-run.html --- postgresql-10-10.10/doc/src/sgml/html/regress-run.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/regress-run.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -32.1. Running the Tests

      32.1. Running the Tests

      The regression tests can be run against an already installed and +32.1. Running the Tests

      32.1. Running the Tests

      The regression tests can be run against an already installed and running server, or using a temporary installation within the build tree. Furthermore, there is a parallel and a sequential mode for running the tests. The diff -Nru postgresql-10-10.10/doc/src/sgml/html/regress-tap.html postgresql-10-10.12/doc/src/sgml/html/regress-tap.html --- postgresql-10-10.10/doc/src/sgml/html/regress-tap.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/regress-tap.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -32.4. TAP Tests

      32.4. TAP Tests

      Various tests, particularly the client program tests +32.4. TAP Tests

      32.4. TAP Tests

      Various tests, particularly the client program tests under src/bin, use the Perl TAP tools and are run using the Perl testing program prove. You can pass command-line options to prove by setting diff -Nru postgresql-10-10.10/doc/src/sgml/html/regress-variant.html postgresql-10-10.12/doc/src/sgml/html/regress-variant.html --- postgresql-10-10.10/doc/src/sgml/html/regress-variant.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/regress-variant.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -32.3. Variant Comparison Files

      32.3. Variant Comparison Files

      Since some of the tests inherently produce environment-dependent +32.3. Variant Comparison Files

      32.3. Variant Comparison Files

      Since some of the tests inherently produce environment-dependent results, we have provided ways to specify alternate expected result files. Each regression test can have several comparison files showing possible results on different platforms. There are two diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-10.html postgresql-10-10.12/doc/src/sgml/html/release-10-10.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-10.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-10.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,11 +1,11 @@ -E.1. Release 10.10

      E.1. Release 10.10

      Release date: 2019-08-08

      This release contains a variety of fixes from 10.9. +E.3. Release 10.10

      E.3. Release 10.10

      Release date: 2019-08-08

      This release contains a variety of fixes from 10.9. For information about new features in major release 10, see - Section E.11. -

      E.1.1. Migration to Version 10.10

      A dump/restore is not required for those running 10.X. + Section E.13. +

      E.3.1. Migration to Version 10.10

      A dump/restore is not required for those running 10.X.

      However, if you are upgrading from a version earlier than 10.6, - see Section E.5. -

      E.1.2. Changes

      • Require schema qualification to cast to a temporary type when using + see Section E.7. +

      E.3.2. Changes

      • Require schema qualification to cast to a temporary type when using functional cast syntax (Noah Misch)

        We have long required invocations of temporary functions to explicitly specify the temporary schema, that @@ -146,4 +146,4 @@

      • Update time zone data files to tzdata release 2019b for DST law changes in Brazil, plus historical corrections for Hong Kong, Italy, and Palestine. -

      \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-11.html postgresql-10-10.12/doc/src/sgml/html/release-10-11.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-11.html 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-11.html 2020-02-10 22:32:02.000000000 +0000 @@ -0,0 +1,288 @@ + +E.2. Release 10.11

    E.2. Release 10.11

    Release date: 2019-11-14

    This release contains a variety of fixes from 10.10. + For information about new features in major release 10, see + Section E.13. +

    E.2.1. Migration to Version 10.11

    A dump/restore is not required for those running 10.X. +

    However, if you use the contrib/intarray + extension with a GiST index, and you rely on indexed searches + for the <@ operator, see the entry below + about that. +

    Also, if you are upgrading from a version earlier than 10.6, + see Section E.7. +

    E.2.2. Changes

    • Fix failure of ALTER TABLE SET with a custom + relation option (Michael Paquier) +

    • Disallow changing a multiply-inherited column's type if not all + parent tables were changed (Tom Lane) +

      Previously, this was allowed, whereupon queries on the + now-out-of-sync parent would fail. +

    • Prevent VACUUM from trying to freeze + an old multixact ID involving a still-running transaction + (Nathan Bossart, Jeremy Schneider) +

      This case would lead to VACUUM failing until the + old transaction terminates. +

    • Fix planner's test for case-foldable characters + in ILIKE with an ICU collation (Tom Lane) +

      This mistake caused the planner to treat too much of the pattern as + being a fixed prefix, so that indexscans derived from + an ILIKE clause might miss entries that they + should find. +

    • Ensure that offset expressions in WINDOW clauses + are processed when a query's expressions are manipulated (Andrew Gierth) +

      This oversight could result in assorted failures when the offsets + are nontrivial expressions. One example is that a function + parameter reference in such an expression would fail if the function + was inlined. +

    • Fix handling of whole-row variables in WITH CHECK + OPTION expressions and row-level-security policy expressions + (Andres Freund) +

      Previously, such usage might result in bogus errors about row type + mismatches. +

    • Avoid postmaster failure if a parallel query requests a background + worker when no postmaster child process array slots remain free + (Tom Lane) +

    • Prevent possible double-free if a BEFORE UPDATE + trigger returns the old tuple as-is, and it is not the last such + trigger (Thomas Munro) +

    • Provide a relevant error context line when an error occurs while + setting GUC parameters during parallel worker startup (Thomas Munro) +

    • In serializable mode, ensure that row-level predicate locks are + acquired on the correct version of the row (Thomas Munro, Heikki + Linnakangas) +

      If the visible version of the row is HOT-updated, the lock might be + taken on its now-dead predecessor, resulting in subtle failures to + guarantee serialization. +

    • Ensure that fsync() is applied only to files + that are opened read/write (Andres Freund, Michael Paquier) +

      Some code paths tried to do this after opening a file read-only, + but on some platforms that causes bad file descriptor + or similar errors. +

    • Allow encoding conversion to succeed on longer strings than before + (Álvaro Herrera, Tom Lane) +

      Previously, there was a hard limit of 0.25GB on the input string, + but now it will work as long as the converted output is not over 1GB. +

    • Avoid an unnecessary catalog lookup during heap page pruning + (Thomas Munro) +

      It's no longer necessary to check for unlogged indexes here, and the + check caused significant performance problems in some workloads. + There was also at least a theoretical possibility of deadlock. +

    • Avoid creating unnecessarily-bulky tuple stores for window functions + (Andrew Gierth) +

      In some cases the tuple storage would include all columns of the + source table(s), not just the ones that are needed by the query. +

    • Allow repalloc() to give back space when a + large chunk is reduced in size (Tom Lane) +

    • Ensure that temporary WAL and history files are removed at the end + of archive recovery (Sawada Masahiko) +

    • Avoid failure in archive recovery + if recovery_min_apply_delay is enabled + (Fujii Masao) +

      recovery_min_apply_delay is not typically used in + this configuration, but it should work. +

    • Fix logical replication failure when publisher and subscriber have + different ideas about a table's replica identity columns + (Jehan-Guillaume de Rorthais, Peter Eisentraut) +

      Declaring a column as part of the replica identity on the + subscriber, when it does not exist at all on the publisher, led + to negative bitmapset member not allowed errors. +

    • Avoid unwanted delay during shutdown of a logical replication + walsender (Craig Ringer, Álvaro Herrera) +

    • Fix timeout handling in logical replication walreceiver processes + (Julien Rouhaud) +

      Erroneous logic prevented wal_receiver_timeout + from working in logical replication deployments. +

    • Correctly time-stamp replication messages for logical + decoding (Jeff Janes) +

      This oversight resulted, for example, + in pg_stat_subscription.last_msg_send_time + usually reading as NULL. +

    • In logical decoding, ensure that sub-transactions are correctly + accounted for when reconstructing a snapshot (Masahiko Sawada) +

      This error leads to assertion failures; it's unclear whether any + bad effects exist in production builds. +

    • Fix race condition during backend exit, when the backend process has + previously waited for synchronous replication to occur (Dongming Liu) +

    • Fix ALTER SYSTEM to cope with duplicate entries + in postgresql.auto.conf (Ian Barwick) +

      ALTER SYSTEM itself will not generate such a state, + but external tools that modify postgresql.auto.conf + could do so. Duplicate entries for the target variable will now be + removed, and then the new setting (if any) will be appended at the end. +

    • Reject include directives with empty file names in configuration + files, and report include-file recursion more clearly + (Ian Barwick, Tom Lane) +

    • Avoid logging complaints about abandoned connections when using PAM + authentication (Tom Lane) +

      libpq-based clients will typically make two connection attempts when + a password is required, since they don't prompt their user for a + password until their first connection attempt fails. Therefore the + server is coded not to generate useless log spam when a client + closes the connection upon being asked for a password. However, + the PAM authentication code hadn't gotten that memo, and would + generate several messages about a phantom authentication failure. +

    • Fix some cases where an incomplete date specification is not + detected in time with time zone input (Alexander Lakhin) +

      If a time zone with a time-varying UTC offset is specified, then a + date must be as well, so that the offset can be resolved. Depending + on the syntax used, this check was not enforced in some cases, + allowing bogus output to be produced. +

    • Fix misbehavior of bitshiftright() (Tom Lane) +

      The bitstring right shift operator failed to zero out padding space + that exists in the last byte of the result when the bitstring length + is not a multiple of 8. While invisible to most operations, any + nonzero bits there would result in unexpected comparison behavior, + since bitstring comparisons don't bother to ignore the extra bits, + expecting them to always be zero. +

      If you have inconsistent data as a result of saving the output + of bitshiftright() in a table, it's possible to + fix it with something like +

      UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);

      +

    • Avoid crash when selecting a namespace node + in XMLTABLE (Chapman Flack) +

    • Fix detection of edge-case integer overflow in interval + multiplication (Yuya Watari) +

    • Fix memory leaks + in lower(), upper(), + and initcap() functions when using ICU + collations (Konstantin Knizhnik) +

    • Avoid crashes if ispell text search dictionaries + contain wrong affix data (Arthur Zakirov) +

    • Fix incorrect compression logic for GIN posting lists + (Heikki Linnakangas) +

      A GIN posting list item can require 7 bytes if the distance between + adjacent indexed TIDs exceeds 16TB. One step in the logic was out + of sync with that, and might try to write the value into a 6-byte + buffer. In principle this could cause a stack overrun, but on most + architectures it's likely that the next byte would be unused + alignment padding, making the bug harmless. In any case the bug + would be very difficult to hit. +

    • Fix handling of infinity, NaN, and NULL values in KNN-GiST + (Alexander Korotkov) +

      The query's output order could be wrong (different from a plain + sort's result) if some distances computed for non-null column values + are infinity or NaN. +

    • Fix handling of searches for NULL in KNN-SP-GiST (Nikita Glukhov) +

    • On Windows, recognize additional spellings of the Norwegian + (Bokmål) locale name (Tom Lane) +

    • Avoid compile failure if an ECPG client + includes ecpglib.h while + having ENABLE_NLS defined (Tom Lane) +

      This risk was created by a misplaced + declaration: ecpg_gettext() should not be + visible to client code. +

    • In psql, resynchronize internal state + about the server after an unexpected connection loss and successful + reconnection (Peter Billen, Tom Lane) +

      Ordinarily this is unnecessary since the state would be the same + anyway. But it can matter in corner cases, such as where the + connection might lead to one of several servers. This change + causes psql to re-issue any interactive + messages that it would have issued at startup, for example about + whether SSL is in use. +

    • Avoid platform-specific null pointer dereference + in psql (Quentin Rameau) +

    • In pg_dump, ensure stable output order + for similarly-named triggers and row-level-security policy objects + (Benjie Gillam) +

      Previously, if two triggers on different tables had the same names, + they would be sorted in OID-based order, which is less desirable + than sorting them by table name. Likewise for RLS policies. +

    • Fix pg_dump to work again with pre-8.3 + source servers (Tom Lane) +

      A previous fix caused pg_dump to always + try to query pg_opfamily, but that catalog + doesn't exist before version 8.3. +

    • In pg_restore, treat + -f - as meaning output to stdout + (Álvaro Herrera) +

      This synchronizes pg_restore's behavior + with some other applications, and in particular makes pre-v12 branches + act similarly to version 12's pg_restore, + simplifying creation of dump/restore scripts that work across + multiple PostgreSQL versions. Before this + change, pg_restore interpreted such a + switch as meaning output to a file + named -, but few people would want that. +

    • Improve pg_upgrade's checks for the use + of a data type that has changed representation, such + as line (Tomas Vondra) +

      The previous coding could be fooled by cases where the data type of + interest underlies a stored column of a domain or composite type. +

    • Detect file read errors + during pg_basebackup (Jeevan Chalke) +

    • In pg_basebackup, don't fsync output files + until the end of backup (Michael Paquier) +

      The previous coding could result in timeout failures if fsync was slow. +

    • In pg_rewind with an online source + cluster, disable timeouts, much + as pg_dump does (Alexander Kukushkin) +

    • Fix failure in pg_waldump with + the -s option, when a continuation WAL record ends + exactly at a page boundary (Andrey Lepikhov) +

    • In pg_waldump, + include the newitemoff field in btree page split + records (Peter Geoghegan) +

    • In pg_waldump with + the --bkp-details option, avoid emitting extra + newlines for WAL records involving full-page writes (Andres Freund) +

    • Fix small memory leak in pg_waldump + (Andres Freund) +

    • Fix vacuumdb with a + high --jobs option to handle running out of file + descriptors better (Michael Paquier) +

    • Fix contrib/amcheck to skip unlogged indexes + during hot standby (Andrey Borodin, Peter Geoghegan) +

      An unlogged index won't necessarily contain valid data in this + context, so don't try to check it. +

    • Fix contrib/intarray's GiST opclasses to not + fail for empty arrays with <@ (Tom Lane) +

      A clause like array_column + <@ constant_array is + considered indexable, but the index search may not find empty array + values; of course, such entries should trivially match the search. +

      The only practical back-patchable fix for this requires + making <@ index searches scan the whole index, + which is what this patch does. This is unfortunate: it means that + the query performance is likely worse than a plain sequential scan + would be. +

      Applications whose performance is adversely impacted by this change + have a couple of options. They could switch to a GIN index, which + doesn't have this bug, or they could replace + array_column + <@ constant_array + with array_column + <@ constant_array + AND array_column + && constant_array. + That will provide about the same performance as before, and it will + find all non-empty subsets of the given constant array, which is all + that could reliably be expected of the query before. +

    • Fix configure's test for presence of + libperl so that it works on recent Red Hat releases (Tom Lane) +

      Previously, it could fail if the user sets CFLAGS + to -O0. +

    • Ensure correct code generation for spinlocks on PowerPC (Noah Misch) +

      The previous spinlock coding allowed the compiler to select register + zero for use with an assembly instruction that does not accept that + register, causing a build failure. We have seen only one long-ago + report that matches this bug, but it could cause problems for people + trying to build modified PostgreSQL code + or use atypical compiler options. +

    • On PowerPC, avoid depending on the xlc + compiler's __fetch_and_add() function + (Noah Misch) +

      xlc 13 and newer interpret this function in a way incompatible with + our usage, resulting in an unusable build + of PostgreSQL. Fix by using custom + assembly code instead. +

    • On AIX, don't use the compiler option -qsrcmsg + (Noah Misch) +

      This avoids an internal compiler error with xlc v16.1.0, with little + consequence other than changing the format of compiler error messages. +

    • Fix MSVC build process to cope with spaces in the file path of + OpenSSL (Andrew Dunstan) +

    • Update time zone data files to tzdata + release 2019c for DST law changes in Fiji and Norfolk Island, plus + historical corrections for Alberta, Austria, Belgium, British + Columbia, Cambodia, Hong Kong, Indiana (Perry County), Kaliningrad, + Kentucky, Michigan, Norfolk Island, South Korea, and Turkey. +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-12.html postgresql-10-10.12/doc/src/sgml/html/release-10-12.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-12.html 1970-01-01 00:00:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-12.html 2020-02-10 22:32:02.000000000 +0000 @@ -0,0 +1,211 @@ + +E.1. Release 10.12

    E.1. Release 10.12

    Release date: 2020-02-13

    This release contains a variety of fixes from 10.11. + For information about new features in major release 10, see + Section E.13. +

    E.1.1. Migration to Version 10.12

    A dump/restore is not required for those running 10.X. +

    However, if you are upgrading from a version earlier than 10.11, + see Section E.2. +

    E.1.2. Changes

    • Add missing permissions checks for ALTER ... DEPENDS ON + EXTENSION (Álvaro Herrera) +

      Marking an object as dependent on an extension did not have any + privilege check whatsoever. This oversight allowed any user to mark + routines, triggers, materialized views, or indexes as droppable by + anyone able to drop an extension. Require that the calling user own + the specified object (and hence have privilege to drop it). + (CVE-2020-1720) +

    • Fix logical replication subscriber code to execute + per-column UPDATE triggers when appropriate + (Peter Eisentraut) +

    • Avoid failure in logical decoding when a large transaction must be + spilled into many separate temporary files (Amit Khandekar) +

    • Fix possible crash or data corruption when a logical replication + subscriber processes a row update (Tom Lane, Tomas Vondra) +

      This bug caused visible problems only if the subscriber's table + contained columns that were not being copied from the publisher and + had pass-by-reference data types. +

    • Fix crash in logical replication subscriber after DDL changes on a + subscribed relation (Jehan-Guillaume de Rorthais, Vignesh C) +

    • Fix failure in logical replication publisher after a database crash + and restart (Vignesh C) +

    • Improve efficiency of logical replication with REPLICA + IDENTITY FULL (Konstantin Knizhnik) +

      When searching for an existing tuple during an update or delete + operation, return the first matching tuple not the last one. +

    • Prevent premature shutdown of a Gather or GatherMerge plan node that + is underneath a Limit node (Amit Kapila) +

      This avoids failure if such a plan node needs to be scanned more + than once, as for instance if it is on the inside of a nestloop. +

    • Avoid memory leak when there are no free dynamic shared memory slots + (Thomas Munro) +

    • Ignore the CONCURRENTLY option when performing an + index creation, drop, or rebuild on a temporary table (Michael + Paquier, Heikki Linnakangas, Andres Freund) +

      This avoids strange failures if the temporary table has + an ON COMMIT action. There is no benefit in + using CONCURRENTLY for a temporary table anyway, + since other sessions cannot access the table, making the extra + processing pointless. +

    • Fix possible failure when resetting expression indexes on temporary + tables that are marked ON COMMIT DELETE ROWS + (Tom Lane) +

    • Fix possible crash in BRIN index operations + with box, range and inet data + types (Heikki Linnakangas) +

    • Fix handling of deleted pages in GIN indexes (Alexander Korotkov) +

      Avoid possible deadlocks, incorrect updates of a deleted page's + state, and failure to traverse through a recently-deleted page. +

    • Fix possible crash with a SubPlan (sub-SELECT) + within a multi-row VALUES list (Tom Lane) +

    • Fix crash after FileClose() failure (Noah Misch) +

      This issue could only be observed + with data_sync_retry enabled, since otherwise + FileClose() failure would be reported as a PANIC. +

    • Fix unlikely crash with pass-by-reference aggregate transition + states (Andres Freund, Teodor Sigaev) +

    • Improve error reporting in to_date() + and to_timestamp() + (Tom Lane, Álvaro Herrera) +

      Reports about incorrect month or day names in input strings could + truncate the input in the middle of a multi-byte character, leading + to an improperly encoded error message that could cause follow-on + failures. Truncate at the next whitespace instead. +

    • Fix off-by-one result for EXTRACT(ISOYEAR + FROM timestamp) for BC dates + (Tom Lane) +

    • Avoid stack overflow in information_schema views + when a self-referential view exists in the system catalogs + (Tom Lane) +

      A self-referential view can't work; it will always result in + infinite recursion. We handled that situation correctly when + trying to execute the view, but not when inquiring whether it is + automatically updatable. +

    • Ensure that walsender processes always show NULL for transaction + start time in pg_stat_activity + (Álvaro Herrera) +

      Previously, the xact_start column would + sometimes show the process start time. +

    • Improve performance of hash joins with very large inner relations + (Thomas Munro) +

    • Fix edge-case crashes and misestimations in selectivity calculations + for the <@ and @> range + operators (Michael Paquier, Andrey Borodin, Tom Lane) +

    • Ignore system columns when applying most-common-value + extended statistics (Tomas Vondra) +

      This prevents negative bitmapset member not allowed + planner errors for affected queries. +

    • Fix BRIN index logic to support hypothetical BRIN indexes + (Julien Rouhaud, Heikki Linnakangas) +

      Previously, if an index adviser extension tried to + get the planner to produce a plan involving a hypothetical BRIN + index, that would fail, because the BRIN cost estimation code would + always try to physically access the index's metapage. Now it checks + to see if the index is only hypothetical, and uses default + assumptions about the index parameters if so. +

    • Improve error reporting for attempts to use automatic updating of + views with conditional INSTEAD rules (Dean Rasheed) +

      This has never been supported, but previously the error was thrown + only at execution time, so that it could be masked by planner errors. +

    • Prevent a composite type from being included in itself indirectly + via a range type (Tom Lane, Julien Rouhaud) +

    • Disallow partition key expressions that return pseudo-types, such + as record (Tom Lane) +

    • Fix error reporting for index expressions of prohibited types + (Amit Langote) +

    • Fix dumping of views that contain only a VALUES + list to handle cases where a view output column has been renamed + (Tom Lane) +

    • Ensure that data types and collations used + in XMLTABLE constructs are accounted for when + computing dependencies of a view or rule (Tom Lane) +

      Previously it was possible to break a view + using XMLTABLE by dropping a type, if the type + was not otherwise referenced in the view. This fix does not + correct the dependencies already recorded for existing views, only + for newly-created ones. +

    • Prevent unwanted downcasing and truncation of RADIUS authentication + parameters (Marcos David) +

      The pg_hba.conf parser mistakenly treated these + fields as SQL identifiers, which in general they aren't. +

    • Transmit incoming NOTIFY messages to the client + before sending ReadyForQuery, rather than after + (Tom Lane) +

      This change ensures that, with libpq and other client libraries that + act similarly to it, any notifications received during a transaction + will be available by the time the client thinks the transaction is + complete. This probably makes no difference in practical + applications (which would need to cope with asynchronous + notifications in any case); but it makes it easier to build test + cases with reproducible behavior. +

    • Allow libpq to parse all GSS-related + connection parameters even when the GSSAPI code hasn't been compiled + in (Tom Lane) +

      This makes the behavior similar to our SSL support, where it was + long ago deemed to be a good idea to always accept all the related + parameters, even if some are ignored or restricted due to lack of + the feature in a particular build. +

    • Fix incorrect handling of %b + and %B format codes + in ecpg's + PGTYPEStimestamp_fmt_asc() function + (Tomas Vondra) +

      Due to an off-by-one error, these codes would print the wrong month + name, or possibly crash. +

    • Fix + parallel pg_dump/pg_restore + to more gracefully handle failure to create worker processes + (Tom Lane) +

    • Prevent possible crash or lockup when attempting to terminate a + parallel pg_dump/pg_restore + run via a signal (Tom Lane) +

    • In pg_upgrade, look inside arrays and + ranges while searching for non-upgradable data types in tables + (Tom Lane) +

    • Apply more thorough syntax checking + to createuser's + --connection-limit option (Álvaro Herrera) +

    • Avoid crash in postgres_fdw when trying to + send a command like UPDATE remote_tab SET (x,y) = (SELECT + ...) to the remote server (Tom Lane) +

    • In contrib/dict_int, + reject maxlen settings less than one + (Tomas Vondra) +

      This prevents a possible crash with silly settings for that parameter. +

    • Disallow NULL category values + in contrib/tablefunc's + crosstab() function (Joe Conway) +

      This case never worked usefully, and it would crash on some + platforms. +

    • Mark some timeout and statistics-tracking GUC variables + as PGDLLIMPORT, to allow extensions to access + them on Windows (Pascal Legrand) +

      This applies to + idle_in_transaction_session_timeout, + lock_timeout, + statement_timeout, + track_activities, + track_counts, and + track_functions. +

    • Avoid memory leak in sanity checks for slab memory + contexts (Tomas Vondra) +

      This isn't an issue for production builds, since they wouldn't + ordinarily have memory context checking enabled; but the leak could + be quite severe in a debug build. +

    • Fix multiple statistics entries reported by the LWLock statistics + mechanism (Fujii Masao) +

      The LWLock statistics code (which is not built by default; it + requires compiling with -DLWLOCK_STATS) + could report multiple entries for the same LWLock and backend + process, as a result of faulty hashtable key creation. +

    • Fix race condition that led to delayed delivery of interprocess + signals on Windows (Amit Kapila) +

      This caused visible timing oddities in NOTIFY, + and perhaps other misbehavior. +

    • On Windows, retry a few times after + an ERROR_ACCESS_DENIED file access failure + (Alexander Lakhin, Tom Lane) +

      This helps cope with cases where a file open attempt fails because + the targeted file is flagged for deletion but not yet actually gone. + pg_ctl, for example, frequently failed + with such an error when probing to see if the postmaster had shut + down yet. +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-1.html postgresql-10-10.12/doc/src/sgml/html/release-10-1.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-1.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-1.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,10 +1,10 @@ -E.10. Release 10.1

    E.10. Release 10.1

    Release date: 2017-11-09

    This release contains a variety of fixes from 10.0. +E.12. Release 10.1

    E.12. Release 10.1

    Release date: 2017-11-09

    This release contains a variety of fixes from 10.0. For information about new features in major release 10, see - Section E.11. -

    E.10.1. Migration to Version 10.1

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.12.1. Migration to Version 10.1

    A dump/restore is not required for those running 10.X.

    However, if you use BRIN indexes, see the fourth changelog entry below. -

    E.10.2. Changes

    • Ensure that INSERT ... ON CONFLICT DO UPDATE checks +

    E.12.2. Changes

    • Ensure that INSERT ... ON CONFLICT DO UPDATE checks table permissions and RLS policies in all cases (Dean Rasheed)

      The update path of INSERT ... ON CONFLICT DO UPDATE requires SELECT permission on the columns of the @@ -166,4 +166,4 @@ for intrapage anchors, thus breaking some external links into our website documentation. Return to our previous convention of using upper-case strings. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-2.html postgresql-10-10.12/doc/src/sgml/html/release-10-2.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-2.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-2.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,14 +1,14 @@ -E.9. Release 10.2

    E.9. Release 10.2

    Release date: 2018-02-08

    This release contains a variety of fixes from 10.1. +E.11. Release 10.2

    E.11. Release 10.2

    Release date: 2018-02-08

    This release contains a variety of fixes from 10.1. For information about new features in major release 10, see - Section E.11. -

    E.9.1. Migration to Version 10.2

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.11.1. Migration to Version 10.2

    A dump/restore is not required for those running 10.X.

    However, if you use contrib/cube's ~> operator, see the entry below about that.

    Also, if you are upgrading from a version earlier than 10.1, - see Section E.10. -

    E.9.2. Changes

    • Fix processing of partition keys containing multiple expressions + see Section E.12. +

    E.11.2. Changes

    • Fix processing of partition keys containing multiple expressions (Álvaro Herrera, David Rowley)

      This error led to crashes or, with carefully crafted input, disclosure of arbitrary backend memory. @@ -286,4 +286,4 @@ plus historical corrections for Bolivia, Japan, and South Sudan. The US/Pacific-New zone has been removed (it was only an alias for America/Los_Angeles anyway). -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-3.html postgresql-10-10.12/doc/src/sgml/html/release-10-3.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-3.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-3.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,8 +1,8 @@ -E.8. Release 10.3

    E.8. Release 10.3

    Release date: 2018-03-01

    This release contains a variety of fixes from 10.2. +E.10. Release 10.3

    E.10. Release 10.3

    Release date: 2018-03-01

    This release contains a variety of fixes from 10.2. For information about new features in major release 10, see - Section E.11. -

    E.8.1. Migration to Version 10.3

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.10.1. Migration to Version 10.3

    A dump/restore is not required for those running 10.X.

    However, if you run an installation in which not all users are mutually trusting, or if you maintain an application or extension that is intended for use in arbitrary situations, it is strongly recommended @@ -14,8 +14,8 @@ during auto-analyze, or when reloading from a dump. After upgrading, monitor the server logs for such problems, and fix affected functions.

    Also, if you are upgrading from a version earlier than 10.2, - see Section E.9. -

    E.8.2. Changes

    • Document how to configure installations and applications to guard + see Section E.11. +

    E.10.2. Changes

    • Document how to configure installations and applications to guard against search-path-dependent trojan-horse attacks from other users (Noah Misch)

      Using a search_path setting that includes any @@ -109,4 +109,4 @@ (Tom Lane)

    • Mark assorted GUC variables as PGDLLIMPORT, to ease porting extension modules to Windows (Metin Doslu) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-4.html postgresql-10-10.12/doc/src/sgml/html/release-10-4.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-4.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-4.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,16 +1,16 @@ -E.7. Release 10.4

    E.7. Release 10.4

    Release date: 2018-05-10

    This release contains a variety of fixes from 10.3. +E.9. Release 10.4

    E.9. Release 10.4

    Release date: 2018-05-10

    This release contains a variety of fixes from 10.3. For information about new features in major release 10, see - Section E.11. -

    E.7.1. Migration to Version 10.4

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.9.1. Migration to Version 10.4

    A dump/restore is not required for those running 10.X.

    However, if you use the adminpack extension, you should update it as per the first changelog entry below.

    Also, if the function marking mistakes mentioned in the second and third changelog entries below affect you, you will want to take steps to correct your database catalogs.

    Also, if you are upgrading from a version earlier than 10.3, - see Section E.8. -

    E.7.2. Changes

    E.9.2. Changes

    • Remove public execute privilege from contrib/adminpack's pg_logfile_rotate() function (Stephen Frost)

      pg_logfile_rotate() is a deprecated wrapper @@ -289,4 +289,4 @@ Station), plus historical corrections for Portugal and its colonies, as well as Enderbury, Jamaica, Turks & Caicos Islands, and Uruguay. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-5.html postgresql-10-10.12/doc/src/sgml/html/release-10-5.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-5.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-5.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,11 +1,11 @@ -E.6. Release 10.5

    E.6. Release 10.5

    Release date: 2018-08-09

    This release contains a variety of fixes from 10.4. +E.8. Release 10.5

    E.8. Release 10.5

    Release date: 2018-08-09

    This release contains a variety of fixes from 10.4. For information about new features in major release 10, see - Section E.11. -

    E.6.1. Migration to Version 10.5

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.8.1. Migration to Version 10.5

    A dump/restore is not required for those running 10.X.

    However, if you are upgrading from a version earlier than 10.4, - see Section E.7. -

    E.6.2. Changes

    • Fix failure to reset libpq's state fully + see Section E.9. +

    E.8.2. Changes

    • Fix failure to reset libpq's state fully between connection attempts (Tom Lane)

      An unprivileged user of dblink or postgres_fdw could bypass the checks intended @@ -255,4 +255,4 @@ the is_dst column in the pg_timezone_names view will now be true in winter and false in summer in these cases. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-6.html postgresql-10-10.12/doc/src/sgml/html/release-10-6.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-6.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-6.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,13 +1,13 @@ -E.5. Release 10.6

    E.5. Release 10.6

    Release date: 2018-11-08

    This release contains a variety of fixes from 10.5. +E.7. Release 10.6

    E.7. Release 10.6

    Release date: 2018-11-08

    This release contains a variety of fixes from 10.5. For information about new features in major release 10, see - Section E.11. -

    E.5.1. Migration to Version 10.6

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.7.1. Migration to Version 10.6

    A dump/restore is not required for those running 10.X.

    However, if you use the pg_stat_statements extension, see the changelog entry below about that.

    Also, if you are upgrading from a version earlier than 10.4, - see Section E.7. -

    E.5.2. Changes

    • Ensure proper quoting of transition table names + see Section E.9. +

    E.7.2. Changes

    • Ensure proper quoting of transition table names when pg_dump emits CREATE TRIGGER ... REFERENCING commands (Tom Lane)

      This oversight could be exploited by an unprivileged user to gain @@ -308,4 +308,4 @@ release 2018g for DST law changes in Chile, Fiji, Morocco, and Russia (Volgograd), plus historical corrections for China, Hawaii, Japan, Macau, and North Korea. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-7.html postgresql-10-10.12/doc/src/sgml/html/release-10-7.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-7.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-7.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,11 +1,11 @@ -E.4. Release 10.7

    E.4. Release 10.7

    Release date: 2019-02-14

    This release contains a variety of fixes from 10.6. +E.6. Release 10.7

    E.6. Release 10.7

    Release date: 2019-02-14

    This release contains a variety of fixes from 10.6. For information about new features in major release 10, see - Section E.11. -

    E.4.1. Migration to Version 10.7

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.6.1. Migration to Version 10.7

    A dump/restore is not required for those running 10.X.

    However, if you are upgrading from a version earlier than 10.6, - see Section E.5. -

    E.4.2. Changes

    • By default, panic instead of retrying + see Section E.7. +

    E.6.2. Changes

    • By default, panic instead of retrying after fsync() failure, to avoid possible data corruption (Craig Ringer, Thomas Munro)

      Some popular operating systems discard kernel data buffers when @@ -249,4 +249,4 @@ creating a new zone Asia/Qostanay, as some areas did not change UTC offset. Historical corrections for Hong Kong and numerous Pacific islands. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-8.html postgresql-10-10.12/doc/src/sgml/html/release-10-8.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-8.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-8.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,11 +1,11 @@ -E.3. Release 10.8

    E.3. Release 10.8

    Release date: 2019-05-09

    This release contains a variety of fixes from 10.7. +E.5. Release 10.8

    E.5. Release 10.8

    Release date: 2019-05-09

    This release contains a variety of fixes from 10.7. For information about new features in major release 10, see - Section E.11. -

    E.3.1. Migration to Version 10.8

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.5.1. Migration to Version 10.8

    A dump/restore is not required for those running 10.X.

    However, if you are upgrading from a version earlier than 10.6, - see Section E.5. -

    E.3.2. Changes

    • Prevent row-level security policies from being bypassed via + see Section E.7. +

    E.5.2. Changes

    • Prevent row-level security policies from being bypassed via selectivity estimators (Dean Rasheed)

      Some of the planner's selectivity estimators apply user-defined operators to values found in pg_statistic @@ -210,4 +210,4 @@ typically a typo. PostgreSQL will still accept UCT as an input zone abbreviation, but it won't output it. -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10-9.html postgresql-10-10.12/doc/src/sgml/html/release-10-9.html --- postgresql-10-10.10/doc/src/sgml/html/release-10-9.html 2019-08-05 21:30:17.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10-9.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,11 +1,11 @@ -E.2. Release 10.9

    E.2. Release 10.9

    Release date: 2019-06-20

    This release contains a variety of fixes from 10.8. +E.4. Release 10.9

    E.4. Release 10.9

    Release date: 2019-06-20

    This release contains a variety of fixes from 10.8. For information about new features in major release 10, see - Section E.11. -

    E.2.1. Migration to Version 10.9

    A dump/restore is not required for those running 10.X. + Section E.13. +

    E.4.1. Migration to Version 10.9

    A dump/restore is not required for those running 10.X.

    However, if you are upgrading from a version earlier than 10.6, - see Section E.5. -

    E.2.2. Changes

    • Fix buffer-overflow hazards in SCRAM verifier parsing + see Section E.7. +

    E.4.2. Changes

    • Fix buffer-overflow hazards in SCRAM verifier parsing (Jonathan Katz, Heikki Linnakangas, Michael Paquier)

      Any authenticated user could cause a stack-based buffer overflow by changing their own password to a purpose-crafted value. In addition @@ -128,4 +128,4 @@ Now, just transmit the untranslated bytes to the log.

    • Make PL/pgSQL's header files C++-safe (George Tarasov) -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-10.html postgresql-10-10.12/doc/src/sgml/html/release-10.html --- postgresql-10-10.10/doc/src/sgml/html/release-10.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-10.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,8 +1,9 @@ -E.11. Release 10

    E.11. Release 10

    Release date: 2017-10-05

    E.11.1. Overview

    Major enhancements in PostgreSQL 10 include: +E.13. Release 10

    E.13. Release 10

    Release date: 2017-10-05

    E.13.1. Overview

    Major enhancements in PostgreSQL 10 include:

    • Logical replication using publish/subscribe

    • Declarative table partitioning

    • Improved query parallelism

    • Significant general performance improvements

    • Stronger password authentication based on SCRAM-SHA-256

    • Improved monitoring and control

    The above items are explained in more detail in the sections below. -

    E.11.2. Migration to Version 10

    A dump/restore using pg_dumpall, or use of pg_upgrade, is required for those wishing to migrate data - from any previous release. +

    E.13.2. Migration to Version 10

    A dump/restore using pg_dumpall or use of pg_upgrade or logical replication is required for those + wishing to migrate data from any previous release. See Section 18.6 for general information on migrating to new major + releases.

    Version 10 contains a number of changes that may affect compatibility with previous releases. Observe the following incompatibilities:

    • Hash indexes must be rebuilt after pg_upgrade-ing @@ -204,10 +205,10 @@ Freund)

      Extensions providing C-coded functions must now conform to version 1 calling conventions. Version 0 has been deprecated since 2001. -

    E.11.3. Changes

    Below you will find a detailed account of the changes between +

    E.13.3. Changes

    Below you will find a detailed account of the changes between PostgreSQL 10 and the previous major release. -

    E.11.3.1. Server

    E.11.3.1.1. Parallel Queries
    • Support parallel B-tree index scans (Rahila Syed, Amit Kapila, +

      E.13.3.1. Server

      E.13.3.1.1. Parallel Queries
      • Support parallel B-tree index scans (Rahila Syed, Amit Kapila, Robert Haas, Rafia Sabih)

        This change allows B-tree index pages to be searched by separate parallel workers. @@ -228,7 +229,7 @@

      • Enable parallelism by default by changing the default setting of max_parallel_workers_per_gather to 2. -

      E.11.3.1.2. Indexes
      • Add write-ahead logging support to hash indexes (Amit Kapila) +

      E.13.3.1.2. Indexes
      • Add write-ahead logging support to hash indexes (Amit Kapila)

        This makes hash indexes crash-safe and replicatable. The former warning message about their use is removed.

      • Improve hash index performance (Amit Kapila, Mithun Cy, Ashutosh @@ -255,7 +256,7 @@ index space more efficiently (Andrey Borodin)

      • Reduce page locking during vacuuming of GIN indexes (Andrey Borodin) -

      E.11.3.1.3. Locking
      • Reduce locking required to change table parameters (Simon Riggs, +

      E.13.3.1.3. Locking
      E.11.3.1.4. Optimizer
      • Add multi-column optimizer statistics to compute the correlation +

      E.13.3.1.4. Optimizer
      • Add multi-column optimizer statistics to compute the correlation ratio and number of distinct values (Tomas Vondra, David Rowley, Álvaro Herrera)

        New commands are CREATE STATISTICS, @@ -277,7 +278,7 @@

        The optimizer now has more knowledge about where it can place RLS filter conditions, allowing better plans to be generated while still enforcing the RLS conditions safely. -

      E.11.3.1.5. General Performance
      • Speed up aggregate functions that calculate a running sum +

      E.13.3.1.5. General Performance
      • Speed up aggregate functions that calculate a running sum using numeric-type arithmetic, including some variants of SUM(), AVG(), and STDDEV() (Heikki Linnakangas) @@ -293,7 +294,7 @@

      • Improve sort performance of the macaddr data type (Brandur Leach)

      • Reduce statistics tracking overhead in sessions that reference many thousands of relations (Aleksander Alekseev) -

      E.11.3.1.6. Monitoring
      • Allow explicit control +

      E.13.3.1.6. Monitoring
      • Allow explicit control over EXPLAIN's display of planning and execution time (Ashutosh Bapat)

        By default planning and execution time are displayed by @@ -306,7 +307,7 @@ allow simplified permission configuration.

      • Properly update the statistics collector during REFRESH MATERIALIZED VIEW (Jim Mlodgenski) -

      E.11.3.1.6.1. Logging
      E.13.3.1.6.1. Logging
      • Change the default value of log_line_prefix to include current timestamp (with milliseconds) and the process ID in each line of postmaster log output (Christoph Berg)

        The previous default was an empty prefix. @@ -331,7 +332,7 @@ controlled by log_min_messages (Robert Haas)

        This also changes the verbosity of client_min_messages debug levels. -

      E.11.3.1.6.2. pg_stat_activity
      • Add pg_stat_activity reporting of low-level wait +

      E.13.3.1.6.2. pg_stat_activity
      • Add pg_stat_activity reporting of low-level wait states (Michael Paquier, Robert Haas, Rushabh Lathia)

        This change enables reporting of numerous low-level wait conditions, including latch waits, file reads/writes/fsyncs, client reads/writes, @@ -348,7 +349,7 @@ values LWLockTranche and LWLockNamed to LWLock (Robert Haas)

        This makes the output more consistent. -

      E.11.3.1.7. Authentication
      E.13.3.1.7. Authentication
      • Add SCRAM-SHA-256 support for password negotiation and storage (Michael Paquier, Heikki Linnakangas)

        This provides better security than the existing md5 @@ -363,7 +364,7 @@

      • Support multiple RADIUS servers (Magnus Hagander)

        All the RADIUS related parameters are now plural and support a comma-separated list of servers. -

      E.11.3.1.8. Server Configuration
      • Allow SSL configuration to be updated during +

      E.13.3.1.8. Server Configuration
      • Allow SSL configuration to be updated during configuration reload (Andreas Karlsson, Tom Lane)

        This allows SSL to be reconfigured without a server restart, by using pg_ctl reload, SELECT @@ -375,10 +376,10 @@ case.

      • Make the maximum value of bgwriter_lru_maxpages effectively unlimited (Jim Nasby) -

      E.11.3.1.9. Reliability
      • After creating or unlinking files, perform an fsync on their parent +

      E.13.3.1.9. Reliability
      • After creating or unlinking files, perform an fsync on their parent directory (Michael Paquier)

        This reduces the risk of data loss after a power failure. -

      E.11.3.1.9.1. Write-Ahead Log (WAL)
      • Prevent unnecessary checkpoints and WAL archiving on +

      E.13.3.1.9.1. Write-Ahead Log (WAL)
      • Prevent unnecessary checkpoints and WAL archiving on otherwise-idle systems (Michael Paquier)

      • Add wal_consistency_checking server parameter to add details to WAL that can be sanity-checked on @@ -389,7 +390,7 @@

        A larger WAL segment size allows for fewer archive_command invocations and fewer WAL files to manage. -

      E.11.3.2. Replication and Recovery

    • Add the ability to logically replicate tables to standby servers (Petr Jelinek)

      Logical replication allows more flexibility than physical replication does, including replication between different major @@ -434,7 +435,7 @@ Access Exclusive locks (Simon Riggs, David Rowley)

    • Speed up two-phase commit recovery performance (Stas Kelvich, Nikhil Sontakke, Michael Paquier) -

    E.11.3.3. Queries

    E.13.3.3. Queries

    • Add XMLTABLE function that converts XML-formatted data into a row set (Pavel Stehule, Álvaro Herrera)

    • Fix regular expressions' character class handling for large character @@ -442,7 +443,7 @@ (Tom Lane)

      Previously, such characters were never recognized as belonging to locale-dependent character classes such as [[:alpha:]]. -

    E.11.3.4. Utility Commands

    • Add table partitioning syntax that automatically creates partition constraints and handles routing of tuple insertions and updates (Amit Langote)

      The syntax supports range and list partitioning. @@ -496,7 +497,7 @@

      This information is also included in log_autovacuum_min_duration output.

    • Improve speed of VACUUM's removal of trailing empty heap pages (Claudio Freire, Álvaro Herrera) -

    E.11.3.5. Data Types

    • Add full text search support for JSON and JSONB +

    E.13.3.5. Data Types

    • Add full text search support for JSON and JSONB (Dmitry Dolgov)

      The functions ts_headline() and to_tsvector() can now be used on these data types. @@ -532,7 +533,7 @@ rounded.

    • Check for overflow in the money type's input function (Peter Eisentraut) -

    E.11.3.6. Functions

    E.13.3.6. Functions

    • Add simplified regexp_match() function (Emre Hasegeli)

      This is similar to regexp_matches(), but it only returns results from the first match so it does not need to return a @@ -569,7 +570,7 @@ previously to_date('2009-06-40','YYYY-MM-DD') was accepted and returned 2009-07-10. It will now generate an error. -

    E.11.3.7. Server-Side Languages

    • Allow PL/Python's cursor() and execute() +

    E.13.3.7. Server-Side Languages

    • Allow PL/Python's cursor() and execute() functions to be called as methods of their plan-object arguments (Peter Eisentraut)

      This allows a more object-oriented programming style. @@ -577,7 +578,7 @@ values into array elements (Tom Lane)

      Previously, a syntactic restriction prevented the target variable from being an array element. -

    E.11.3.7.1. PL/Tcl
    • Allow PL/Tcl functions to return composite types and sets +

    E.13.3.7.1. PL/Tcl
    • Allow PL/Tcl functions to return composite types and sets (Karl Lehenbauer)

    • Add a subtransaction command to PL/Tcl (Victor Wagner)

      This allows PL/Tcl queries to fail without aborting the entire @@ -585,7 +586,7 @@

    • Add server parameters pltcl.start_proc and pltclu.start_proc, to allow initialization functions to be called on PL/Tcl startup (Tom Lane) -

    E.11.3.8. Client Interfaces

    • Allow specification of multiple host names or addresses in libpq connection strings and URIs (Robert Haas, Heikki Linnakangas)

      libpq will connect to the first responsive server in the list. @@ -609,7 +610,7 @@ (Tom Lane)

      Henceforth the ecpg version will match the PostgreSQL distribution version number. -

    E.11.3.9. Client Applications

    E.11.3.9.1. psql
    • Add conditional branch support to psql (Corey +

    E.13.3.9. Client Applications

    E.13.3.9.1. psql
    • Add conditional branch support to psql (Corey Huinker)

      This feature adds psql meta-commands \if, \elif, \else, @@ -649,7 +650,7 @@

    • Improve psql's tab completion (Jeff Janes, Ian Barwick, Andreas Karlsson, Sehrope Sarkuni, Thomas Munro, Kevin Grittner, Dagfinn Ilmari Mannsåker) -

    E.11.3.9.2. pgbench
    • Add pgbench option --log-prefix to +

    E.13.3.9.2. pgbench
    • Add pgbench option --log-prefix to control the log file prefix (Masahiko Sawada)

    • Allow pgbench's meta-commands to span multiple lines (Fabien Coelho) @@ -657,7 +658,7 @@ backslash-return.

    • Remove restriction on placement of -M option relative to other command line options (Tom Lane) -

    E.11.3.10. Server Applications

    E.13.3.10. Server Applications

    • Add pg_receivewal option -Z/--compress to specify compression (Michael Paquier)

    • Add pg_recvlogical option @@ -668,7 +669,7 @@ --no-clean and --no-sync (Vik Fearing, Peter Eisentraut)

      The old spellings are still supported. -

    E.11.3.10.1. pg_dump, +

    E.13.3.10.1. pg_dump, pg_dumpall, pg_restore
    • Allow pg_restore to exclude schemas (Michael Banck)

      This adds a new -N/--exclude-schema option. @@ -688,7 +689,7 @@

      This provides more security that the output is safely stored on disk before the program exits. This can be disabled with the new --no-sync option. -

    E.11.3.10.2. pg_basebackup
    • Allow pg_basebackup to stream write-ahead log in +

    E.13.3.10.2. pg_basebackup
    • Allow pg_basebackup to stream write-ahead log in tar mode (Magnus Hagander)

      The WAL will be stored in a separate tar file from the base backup. @@ -704,7 +705,7 @@ disable fsync (Michael Paquier)

    • Improve pg_basebackup's handling of which directories to skip (David Steele) -

    E.11.3.10.3. pg_ctl
    • Add wait option for pg_ctl's +

    E.13.3.10.3. pg_ctl
    • Add wait option for pg_ctl's promote operation (Peter Eisentraut)

    • Add long options for pg_ctl wait (--wait) and no-wait (--no-wait) (Vik Fearing) @@ -729,7 +730,7 @@

      The start and promote operations now return exit status 1, not 0, in such cases. The stop operation has always done that. -

    E.11.3.11. Source Code

    • Change to two-part release version numbering (Peter Eisentraut, Tom +

    E.13.3.11. Source Code

    • Change to two-part release version numbering (Peter Eisentraut, Tom Lane)

      Release numbers will now have two parts (e.g., 10.1) rather than three (e.g., 9.6.3). @@ -810,7 +811,7 @@ JadeTex were used.

    • Build HTML documentation using XSLT stylesheets by default (Peter Eisentraut) -

    E.11.3.12. Additional Modules

    E.13.3.12. Additional Modules

    • Allow file_fdw to read from program output as well as files (Corey Huinker, Adam Gomaa)

    • In postgres_fdw, push aggregate functions to the remote server, when possible @@ -857,7 +858,7 @@ page image (Tomas Vondra)

    • Add hash index support to pageinspect (Jesper Pedersen, Ashutosh Sharma) -

    E.11.4. Acknowledgments

    The following individuals (in alphabetical order) have contributed to this +

    E.13.4. Acknowledgments

    The following individuals (in alphabetical order) have contributed to this release as patch authors, committers, reviewers, testers, or reporters of issues. -

    Adam Brightwell
    Adam Brusselback
    Adam Gomaa
    Adam Sah
    Adrian Klaver
    Aidan Van Dyk
    Aleksander Alekseev
    Alexander Korotkov
    Alexander Lakhin
    Alexander Sosna
    Alexey Bashtanov
    Alexey Grishchenko
    Alexey Isayko
    Álvaro Hernández Tortosa
    Álvaro Herrera
    Amit Kapila
    Amit Khandekar
    Amit Langote
    Amul Sul
    Anastasia Lubennikova
    Andreas Joseph Krogh
    Andreas Karlsson
    Andreas Scherbaum
    Andreas Seltenreich
    Andres Freund
    Andrew Dunstan
    Andrew Gierth
    Andrew Wheelwright
    Andrey Borodin
    Andrey Lizenko
    Andy Abelisto
    Antonin Houska
    Ants Aasma
    Arjen Nienhuis
    Arseny Sher
    Artur Zakirov
    Ashutosh Bapat
    Ashutosh Sharma
    Ashwin Agrawal
    Atsushi Torikoshi
    Ayumi Ishii
    Basil Bourque
    Beena Emerson
    Ben de Graaff
    Benedikt Grundmann
    Bernd Helmle
    Brad DeJong
    Brandur Leach
    Breen Hagan
    Bruce Momjian
    Bruno Wolff III
    Catalin Iacob
    Chapman Flack
    Chen Huajun
    Choi Doo-Won
    Chris Bandy
    Chris Richards
    Chris Ruprecht
    Christian Ullrich
    Christoph Berg
    Chuanting Wang
    Claudio Freire
    Clinton Adams
    Const Zhang
    Constantin Pan
    Corey Huinker
    Craig Ringer
    Cynthia Shang
    Dagfinn Ilmari Mannsåker
    Daisuke Higuchi
    Damian Quiroga
    Dan Wood
    Dang Minh Huong
    Daniel Gustafsson
    Daniel Vérité
    Daniel Westermann
    Daniele Varrazzo
    Danylo Hlynskyi
    Darko Prelec
    Dave Cramer
    Dave Page
    David Christensen
    David Fetter
    David Johnston
    David Rader
    David Rowley
    David Steele
    Dean Rasheed
    Denis Smirnov
    Denish Patel
    Dennis Björklund
    Devrim Gündüz
    Dilip Kumar
    Dilyan Palauzov
    Dima Pavlov
    Dimitry Ivanov
    Dmitriy Sarafannikov
    Dmitry Dolgov
    Dmitry Fedin
    Don Morrison
    Egor Rogov
    Eiji Seki
    Emil Iggland
    Emre Hasegeli
    Enrique Meneses
    Erik Nordström
    Erik Rijkers
    Erwin Brandstetter
    Etsuro Fujita
    Eugen Konkov
    Eugene Kazakov
    Euler Taveira
    Fabien Coelho
    Fabrízio de Royes Mello
    Feike Steenbergen
    Felix Gerzaguet
    Filip Jirsák
    Fujii Masao
    Gabriele Bartolini
    Gabrielle Roth
    Gao Zengqi
    Gerdan Santos
    Gianni Ciolli
    Gilles Darold
    Giuseppe Broccolo
    Graham Dutton
    Greg Atkins
    Greg Burek
    Grigory Smolkin
    Guillaume Lelarge
    Hans Buschmann
    Haribabu Kommi
    Heikki Linnakangas
    Henry Boehlert
    Huan Ruan
    Ian Barwick
    Igor Korot
    Ildus Kurbangaliev
    Ivan Kartyshov
    Jaime Casanova
    Jakob Egger
    James Parks
    Jarred Ward
    Jason Li
    Jason O'Donnell
    Jason Petersen
    Jeevan Chalke
    Jeevan Ladhe
    Jeff Dafoe
    Jeff Davis
    Jeff Janes
    Jelte Fennema
    Jeremy Finzel
    Jeremy Schneider
    Jeroen van der Ham
    Jesper Pedersen
    Jim Mlodgenski
    Jim Nasby
    Jinyu Zhang
    Joe Conway
    Joel Jacobson
    John Harvey
    Jon Nelson
    Jordan Gigov
    Josh Berkus
    Josh Soref
    Julian Markwort
    Julien Rouhaud
    Junseok Yang
    Justin Muise
    Justin Pryzby
    Kacper Zuk
    KaiGai Kohei
    Karen Huddleston
    Karl Lehenbauer
    Karl O. Pinc
    Keith Fiske
    Kevin Grittner
    Kim Rose Carlsen
    Konstantin Evteev
    Konstantin Knizhnik
    Kuntal Ghosh
    Kurt Kartaltepe
    Kyle Conroy
    Kyotaro Horiguchi
    Laurenz Albe
    Leonardo Cecchi
    Ludovic Vaugeois-Pepin
    Lukas Fittl
    Magnus Hagander
    Maksim Milyutin
    Maksym Sobolyev
    Marc Rassbach
    Marc-Olaf Jaschke
    Marcos Castedo
    Marek Cvoren
    Mark Dilger
    Mark Kirkwood
    Mark Pether
    Marko Tiikkaja
    Markus Winand
    Marllius Ribeiro
    Marti Raudsepp
    Martín Marqués
    Masahiko Sawada
    Matheus Oliveira
    Mathieu Fenniak
    Merlin Moncure
    Michael Banck
    Michael Day
    Michael Meskes
    Michael Overmeyer
    Michael Paquier
    Mike Palmiotto
    Milos Urbanek
    Mithun Cy
    Moshe Jacobson
    Murtuza Zabuawala
    Naoki Okano
    Nathan Bossart
    Nathan Wagner
    Neha Khatri
    Neha Sharma
    Neil Anderson
    Nicolas Baccelli
    Nicolas Guini
    Nicolas Thauvin
    Nikhil Sontakke
    Nikita Glukhov
    Nikolaus Thiel
    Nikolay Nikitin
    Nikolay Shaplov
    Noah Misch
    Noriyoshi Shinoda
    Olaf Gawenda
    Oleg Bartunov
    Oskari Saarenmaa
    Otar Shavadze
    Paresh More
    Paul Jungwirth
    Paul Ramsey
    Pavan Deolasee
    Pavel Golub
    Pavel Hanák
    Pavel Raiskup
    Pavel Stehule
    Peng Sun
    Peter Eisentraut
    Peter Geoghegan
    Petr Jelínek
    Philippe Beaudoin
    Pierre-Emmanuel André
    Piotr Stefaniak
    Prabhat Sahu
    QL Zhuo
    Radek Slupik
    Rafa de la Torre
    Rafia Sabih
    Ragnar Ouchterlony
    Rahila Syed
    Rajkumar Raghuwanshi
    Regina Obe
    Richard Pistole
    Robert Haas
    Robins Tharakan
    Rod Taylor
    Roman Shaposhnik
    Rushabh Lathia
    Ryan Murphy
    Sandeep Thakkar
    Scott Milliken
    Sean Farrell
    Sebastian Luque
    Sehrope Sarkuni
    Sergey Burladyan
    Sergey Koposov
    Shay Rojansky
    Shinichi Matsuda
    Sho Kato
    Simon Riggs
    Simone Gotti
    Spencer Thomason
    Stas Kelvich
    Stepan Pesternikov
    Stephen Frost
    Steve Randall
    Steve Singer
    Steven Fackler
    Steven Winfield
    Suraj Kharage
    Sveinn Sveinsson
    Sven R. Kunze
    Tahir Fakhroutdinov
    Taiki Kondo
    Takayuki Tsunakawa
    Takeshi Ideriha
    Tatsuo Ishii
    Tatsuro Yamada
    Teodor Sigaev
    Thom Brown
    Thomas Kellerer
    Thomas Munro
    Tim Goodaire
    Tobias Bussmann
    Tom Dunstan
    Tom Lane
    Tom van Tilburg
    Tomas Vondra
    Tomonari Katsumata
    Tushar Ahuja
    Vaishnavi Prabakaran
    Venkata Balaji Nagothi
    Vicky Vergara
    Victor Wagner
    Vik Fearing
    Vinayak Pokale
    Viren Negi
    Vitaly Burovoy
    Vladimir Kunshchikov
    Vladimir Rusinov
    Yi Wen Wong
    Yugo Nagata
    Zhen Ming Yang
    Zhou Digoal
    \ No newline at end of file +

    Adam Brightwell
    Adam Brusselback
    Adam Gomaa
    Adam Sah
    Adrian Klaver
    Aidan Van Dyk
    Aleksander Alekseev
    Alexander Korotkov
    Alexander Lakhin
    Alexander Sosna
    Alexey Bashtanov
    Alexey Grishchenko
    Alexey Isayko
    Álvaro Hernández Tortosa
    Álvaro Herrera
    Amit Kapila
    Amit Khandekar
    Amit Langote
    Amul Sul
    Anastasia Lubennikova
    Andreas Joseph Krogh
    Andreas Karlsson
    Andreas Scherbaum
    Andreas Seltenreich
    Andres Freund
    Andrew Dunstan
    Andrew Gierth
    Andrew Wheelwright
    Andrey Borodin
    Andrey Lizenko
    Andy Abelisto
    Antonin Houska
    Ants Aasma
    Arjen Nienhuis
    Arseny Sher
    Artur Zakirov
    Ashutosh Bapat
    Ashutosh Sharma
    Ashwin Agrawal
    Atsushi Torikoshi
    Ayumi Ishii
    Basil Bourque
    Beena Emerson
    Ben de Graaff
    Benedikt Grundmann
    Bernd Helmle
    Brad DeJong
    Brandur Leach
    Breen Hagan
    Bruce Momjian
    Bruno Wolff III
    Catalin Iacob
    Chapman Flack
    Chen Huajun
    Choi Doo-Won
    Chris Bandy
    Chris Richards
    Chris Ruprecht
    Christian Ullrich
    Christoph Berg
    Chuanting Wang
    Claudio Freire
    Clinton Adams
    Const Zhang
    Constantin Pan
    Corey Huinker
    Craig Ringer
    Cynthia Shang
    Dagfinn Ilmari Mannsåker
    Daisuke Higuchi
    Damian Quiroga
    Dan Wood
    Dang Minh Huong
    Daniel Gustafsson
    Daniel Vérité
    Daniel Westermann
    Daniele Varrazzo
    Danylo Hlynskyi
    Darko Prelec
    Dave Cramer
    Dave Page
    David Christensen
    David Fetter
    David Johnston
    David Rader
    David Rowley
    David Steele
    Dean Rasheed
    Denis Smirnov
    Denish Patel
    Dennis Björklund
    Devrim Gündüz
    Dilip Kumar
    Dilyan Palauzov
    Dima Pavlov
    Dimitry Ivanov
    Dmitriy Sarafannikov
    Dmitry Dolgov
    Dmitry Fedin
    Don Morrison
    Egor Rogov
    Eiji Seki
    Emil Iggland
    Emre Hasegeli
    Enrique Meneses
    Erik Nordström
    Erik Rijkers
    Erwin Brandstetter
    Etsuro Fujita
    Eugen Konkov
    Eugene Kazakov
    Euler Taveira
    Fabien Coelho
    Fabrízio de Royes Mello
    Feike Steenbergen
    Felix Gerzaguet
    Filip Jirsák
    Fujii Masao
    Gabriele Bartolini
    Gabrielle Roth
    Gao Zengqi
    Gerdan Santos
    Gianni Ciolli
    Gilles Darold
    Giuseppe Broccolo
    Graham Dutton
    Greg Atkins
    Greg Burek
    Grigory Smolkin
    Guillaume Lelarge
    Hans Buschmann
    Haribabu Kommi
    Heikki Linnakangas
    Henry Boehlert
    Huan Ruan
    Ian Barwick
    Igor Korot
    Ildus Kurbangaliev
    Ivan Kartyshov
    Jaime Casanova
    Jakob Egger
    James Parks
    Jarred Ward
    Jason Li
    Jason O'Donnell
    Jason Petersen
    Jeevan Chalke
    Jeevan Ladhe
    Jeff Dafoe
    Jeff Davis
    Jeff Janes
    Jelte Fennema
    Jeremy Finzel
    Jeremy Schneider
    Jeroen van der Ham
    Jesper Pedersen
    Jim Mlodgenski
    Jim Nasby
    Jinyu Zhang
    Joe Conway
    Joel Jacobson
    John Harvey
    Jon Nelson
    Jordan Gigov
    Josh Berkus
    Josh Soref
    Julian Markwort
    Julien Rouhaud
    Junseok Yang
    Justin Muise
    Justin Pryzby
    Kacper Zuk
    KaiGai Kohei
    Karen Huddleston
    Karl Lehenbauer
    Karl O. Pinc
    Keith Fiske
    Kevin Grittner
    Kim Rose Carlsen
    Konstantin Evteev
    Konstantin Knizhnik
    Kuntal Ghosh
    Kurt Kartaltepe
    Kyle Conroy
    Kyotaro Horiguchi
    Laurenz Albe
    Leonardo Cecchi
    Ludovic Vaugeois-Pepin
    Lukas Fittl
    Magnus Hagander
    Maksim Milyutin
    Maksym Sobolyev
    Marc Rassbach
    Marc-Olaf Jaschke
    Marcos Castedo
    Marek Cvoren
    Mark Dilger
    Mark Kirkwood
    Mark Pether
    Marko Tiikkaja
    Markus Winand
    Marllius Ribeiro
    Marti Raudsepp
    Martín Marqués
    Masahiko Sawada
    Matheus Oliveira
    Mathieu Fenniak
    Merlin Moncure
    Michael Banck
    Michael Day
    Michael Meskes
    Michael Overmeyer
    Michael Paquier
    Mike Palmiotto
    Milos Urbanek
    Mithun Cy
    Moshe Jacobson
    Murtuza Zabuawala
    Naoki Okano
    Nathan Bossart
    Nathan Wagner
    Neha Khatri
    Neha Sharma
    Neil Anderson
    Nicolas Baccelli
    Nicolas Guini
    Nicolas Thauvin
    Nikhil Sontakke
    Nikita Glukhov
    Nikolaus Thiel
    Nikolay Nikitin
    Nikolay Shaplov
    Noah Misch
    Noriyoshi Shinoda
    Olaf Gawenda
    Oleg Bartunov
    Oskari Saarenmaa
    Otar Shavadze
    Paresh More
    Paul Jungwirth
    Paul Ramsey
    Pavan Deolasee
    Pavel Golub
    Pavel Hanák
    Pavel Raiskup
    Pavel Stehule
    Peng Sun
    Peter Eisentraut
    Peter Geoghegan
    Petr Jelínek
    Philippe Beaudoin
    Pierre-Emmanuel André
    Piotr Stefaniak
    Prabhat Sahu
    QL Zhuo
    Radek Slupik
    Rafa de la Torre
    Rafia Sabih
    Ragnar Ouchterlony
    Rahila Syed
    Rajkumar Raghuwanshi
    Regina Obe
    Richard Pistole
    Robert Haas
    Robins Tharakan
    Rod Taylor
    Roman Shaposhnik
    Rushabh Lathia
    Ryan Murphy
    Sandeep Thakkar
    Scott Milliken
    Sean Farrell
    Sebastian Luque
    Sehrope Sarkuni
    Sergey Burladyan
    Sergey Koposov
    Shay Rojansky
    Shinichi Matsuda
    Sho Kato
    Simon Riggs
    Simone Gotti
    Spencer Thomason
    Stas Kelvich
    Stepan Pesternikov
    Stephen Frost
    Steve Randall
    Steve Singer
    Steven Fackler
    Steven Winfield
    Suraj Kharage
    Sveinn Sveinsson
    Sven R. Kunze
    Tahir Fakhroutdinov
    Taiki Kondo
    Takayuki Tsunakawa
    Takeshi Ideriha
    Tatsuo Ishii
    Tatsuro Yamada
    Teodor Sigaev
    Thom Brown
    Thomas Kellerer
    Thomas Munro
    Tim Goodaire
    Tobias Bussmann
    Tom Dunstan
    Tom Lane
    Tom van Tilburg
    Tomas Vondra
    Tomonari Katsumata
    Tushar Ahuja
    Vaishnavi Prabakaran
    Venkata Balaji Nagothi
    Vicky Vergara
    Victor Wagner
    Vik Fearing
    Vinayak Pokale
    Viren Negi
    Vitaly Burovoy
    Vladimir Kunshchikov
    Vladimir Rusinov
    Yi Wen Wong
    Yugo Nagata
    Zhen Ming Yang
    Zhou Digoal
    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release.html postgresql-10-10.12/doc/src/sgml/html/release.html --- postgresql-10-10.10/doc/src/sgml/html/release.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix E. Release Notes

    Appendix E. Release Notes

    The release notes contain the significant changes in each +Appendix E. Release Notes

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/release-prior.html postgresql-10-10.12/doc/src/sgml/html/release-prior.html --- postgresql-10-10.10/doc/src/sgml/html/release-prior.html 2019-08-05 21:30:18.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/release-prior.html 2020-02-10 22:32:02.000000000 +0000 @@ -1,4 +1,4 @@ -E.12. Prior Releases

    E.12. Prior Releases

    Release notes for prior release branches can be found at +E.14. Prior Releases

    E.14. Prior Releases

    Release notes for prior release branches can be found at https://www.postgresql.org/docs/release/ -

    \ No newline at end of file +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/replication-origins.html postgresql-10-10.12/doc/src/sgml/html/replication-origins.html --- postgresql-10-10.10/doc/src/sgml/html/replication-origins.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/replication-origins.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 49. Replication Progress Tracking

    Chapter 49. Replication Progress Tracking

    Replication origins are intended to make it easier to implement +Chapter 49. Replication Progress Tracking

    Chapter 49. Replication Progress Tracking

    Replication origins are intended to make it easier to implement logical replication solutions on top of logical decoding. They provide a solution to two common problems: diff -Nru postgresql-10-10.10/doc/src/sgml/html/resources.html postgresql-10-10.12/doc/src/sgml/html/resources.html --- postgresql-10-10.10/doc/src/sgml/html/resources.html 2019-08-05 21:29:55.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/resources.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -4. Further Information

    4. Further Information

    Besides the documentation, that is, this book, there are other +4. Further Information

    4. Further Information

    Besides the documentation, that is, this book, there are other resources about PostgreSQL:

    Wiki

    The PostgreSQL wiki contains the project's FAQ diff -Nru postgresql-10-10.10/doc/src/sgml/html/role-attributes.html postgresql-10-10.12/doc/src/sgml/html/role-attributes.html --- postgresql-10-10.10/doc/src/sgml/html/role-attributes.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/role-attributes.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -21.2. Role Attributes

    21.2. Role Attributes

    A database role can have a number of attributes that define its +21.2. Role Attributes

    21.2. Role Attributes

    A database role can have a number of attributes that define its privileges and interact with the client authentication system.

    login privilege

    Only roles that have the LOGIN attribute can be used diff -Nru postgresql-10-10.10/doc/src/sgml/html/role-membership.html postgresql-10-10.12/doc/src/sgml/html/role-membership.html --- postgresql-10-10.10/doc/src/sgml/html/role-membership.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/role-membership.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -21.3. Role Membership

    21.3. Role Membership

    It is frequently convenient to group users together to ease +21.3. Role Membership

    21.3. Role Membership

    It is frequently convenient to group users together to ease management of privileges: that way, privileges can be granted to, or revoked from, a group as a whole. In PostgreSQL this is done by creating a role that represents the group, and then diff -Nru postgresql-10-10.10/doc/src/sgml/html/role-removal.html postgresql-10-10.12/doc/src/sgml/html/role-removal.html --- postgresql-10-10.10/doc/src/sgml/html/role-removal.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/role-removal.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -21.4. Dropping Roles

    21.4. Dropping Roles

    Because roles can own database objects and can hold privileges +21.4. Dropping Roles

    21.4. Dropping Roles

    Because roles can own database objects and can hold privileges to access other objects, dropping a role is often not just a matter of a quick DROP ROLE. Any objects owned by the role must first be dropped or reassigned to other owners; and any permissions diff -Nru postgresql-10-10.10/doc/src/sgml/html/routine-reindex.html postgresql-10-10.12/doc/src/sgml/html/routine-reindex.html --- postgresql-10-10.10/doc/src/sgml/html/routine-reindex.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/routine-reindex.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -24.2. Routine Reindexing

    24.2. Routine Reindexing

    In some situations it is worthwhile to rebuild indexes periodically +24.2. Routine Reindexing

    24.2. Routine Reindexing

    In some situations it is worthwhile to rebuild indexes periodically with the REINDEX command or a series of individual rebuilding steps. diff -Nru postgresql-10-10.10/doc/src/sgml/html/routine-vacuuming.html postgresql-10-10.12/doc/src/sgml/html/routine-vacuuming.html --- postgresql-10-10.10/doc/src/sgml/html/routine-vacuuming.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/routine-vacuuming.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -24.1. Routine Vacuuming

    24.1. Routine Vacuuming

    PostgreSQL databases require periodic +24.1. Routine Vacuuming

    24.1. Routine Vacuuming

    PostgreSQL databases require periodic maintenance known as vacuuming. For many installations, it is sufficient to let vacuuming be performed by the autovacuum daemon, which is described in Section 24.1.6. You might @@ -518,4 +518,16 @@ per-table autovacuum_vacuum_cost_delay or autovacuum_vacuum_cost_limit storage parameters have been set are not considered in the balancing algorithm. -

    \ No newline at end of file +

    Autovacuum workers generally don't block other commands. If a process + attempts to acquire a lock that conflicts with the + SHARE UPDATE EXCLUSIVE lock held by autovacuum, lock + acquisition will interrupt the autovacuum. For conflicting lock modes, + see Table 13.2. However, if the autovacuum + is running to prevent transaction ID wraparound (i.e., the autovacuum query + name in the pg_stat_activity view ends with + (to prevent wraparound)), the autovacuum is not + automatically interrupted. +

    Warning

    Regularly running commands that acquire locks conflicting with a + SHARE UPDATE EXCLUSIVE lock (e.g., ANALYZE) can + effectively prevent autovacuums from ever completing. +

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/row-estimation-examples.html postgresql-10-10.12/doc/src/sgml/html/row-estimation-examples.html --- postgresql-10-10.10/doc/src/sgml/html/row-estimation-examples.html 2019-08-05 21:30:16.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/row-estimation-examples.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -68.1. Row Estimation Examples

    68.1. Row Estimation Examples

    The examples shown below use tables in the PostgreSQL +68.1. Row Estimation Examples

    68.1. Row Estimation Examples

    The examples shown below use tables in the PostgreSQL regression test database. The outputs shown are taken from version 8.3. The behavior of earlier (or later) versions might vary. diff -Nru postgresql-10-10.10/doc/src/sgml/html/rowtypes.html postgresql-10-10.12/doc/src/sgml/html/rowtypes.html --- postgresql-10-10.10/doc/src/sgml/html/rowtypes.html 2019-08-05 21:29:57.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rowtypes.html 2020-02-10 22:31:42.000000000 +0000 @@ -1,5 +1,5 @@ -8.16. Composite Types

    8.16. Composite Types

    A composite type represents the structure of a row or record; +8.16. Composite Types

    8.16. Composite Types

    A composite type represents the structure of a row or record; it is essentially just a list of field names and their data types. PostgreSQL allows composite types to be used in many of the same ways that simple types can be used. For example, a diff -Nru postgresql-10-10.10/doc/src/sgml/html/rules.html postgresql-10-10.12/doc/src/sgml/html/rules.html --- postgresql-10-10.10/doc/src/sgml/html/rules.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rules.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 40. The Rule System

    Chapter 40. The Rule System

    This chapter discusses the rule system in +Chapter 40. The Rule System

    Chapter 40. The Rule System

    This chapter discusses the rule system in PostgreSQL. Production rule systems are conceptually simple, but there are many subtle points involved in actually using them.

    Some other database systems define active database rules, which diff -Nru postgresql-10-10.10/doc/src/sgml/html/rules-materializedviews.html postgresql-10-10.12/doc/src/sgml/html/rules-materializedviews.html --- postgresql-10-10.10/doc/src/sgml/html/rules-materializedviews.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rules-materializedviews.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -40.3. Materialized Views

    40.3. Materialized Views

    Materialized views in PostgreSQL use the +40.3. Materialized Views

    40.3. Materialized Views

    Materialized views in PostgreSQL use the rule system like views do, but persist the results in a table-like form. The main differences between: diff -Nru postgresql-10-10.10/doc/src/sgml/html/rules-privileges.html postgresql-10-10.12/doc/src/sgml/html/rules-privileges.html --- postgresql-10-10.10/doc/src/sgml/html/rules-privileges.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rules-privileges.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -40.5. Rules and Privileges

    40.5. Rules and Privileges

    Due to rewriting of queries by the PostgreSQL +40.5. Rules and Privileges

    40.5. Rules and Privileges

    Due to rewriting of queries by the PostgreSQL rule system, other tables/views than those used in the original query get accessed. When update rules are used, this can include write access to tables.

    Rewrite rules don't have a separate owner. The owner of diff -Nru postgresql-10-10.10/doc/src/sgml/html/rules-status.html postgresql-10-10.12/doc/src/sgml/html/rules-status.html --- postgresql-10-10.10/doc/src/sgml/html/rules-status.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rules-status.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -40.6. Rules and Command Status

    40.6. Rules and Command Status

    The PostgreSQL server returns a command +40.6. Rules and Command Status

    40.6. Rules and Command Status

    The PostgreSQL server returns a command status string, such as INSERT 149592 1, for each command it receives. This is simple enough when there are no rules involved, but what happens when the query is rewritten by rules?

    Rules affect the command status as follows: diff -Nru postgresql-10-10.10/doc/src/sgml/html/rules-triggers.html postgresql-10-10.12/doc/src/sgml/html/rules-triggers.html --- postgresql-10-10.10/doc/src/sgml/html/rules-triggers.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rules-triggers.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -40.7. Rules Versus Triggers

    40.7. Rules Versus Triggers

    Many things that can be done using triggers can also be +40.7. Rules Versus Triggers

    40.7. Rules Versus Triggers

    Many things that can be done using triggers can also be implemented using the PostgreSQL rule system. One of the things that cannot be implemented by rules are some kinds of constraints, especially foreign keys. It is possible diff -Nru postgresql-10-10.10/doc/src/sgml/html/rules-update.html postgresql-10-10.12/doc/src/sgml/html/rules-update.html --- postgresql-10-10.10/doc/src/sgml/html/rules-update.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rules-update.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -40.4. Rules on INSERT, UPDATE, and DELETE

    40.4. Rules on INSERT, UPDATE, and DELETE

    Rules that are defined on INSERT, UPDATE, +40.4. Rules on INSERT, UPDATE, and DELETE

    40.4. Rules on INSERT, UPDATE, and DELETE

    Rules that are defined on INSERT, UPDATE, and DELETE are significantly different from the view rules described in the previous section. First, their CREATE RULE command allows more: diff -Nru postgresql-10-10.10/doc/src/sgml/html/rules-views.html postgresql-10-10.12/doc/src/sgml/html/rules-views.html --- postgresql-10-10.10/doc/src/sgml/html/rules-views.html 2019-08-05 21:30:05.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rules-views.html 2020-02-10 22:31:50.000000000 +0000 @@ -1,5 +1,5 @@ -40.2. Views and the Rule System

    40.2. Views and the Rule System

    Views in PostgreSQL are implemented +40.2. Views and the Rule System

    40.2. Views and the Rule System

    Views in PostgreSQL are implemented using the rule system. In fact, there is essentially no difference between: @@ -34,12 +34,7 @@ functionality. This is not such a simple example to start from and this makes things harder to get into. But it's better to have one example that covers all the points discussed step by step rather - than having many different ones that might mix up in mind.

    For the example, we need a little min function that -returns the lower of 2 integer values. We create that as: - -

    CREATE FUNCTION min(integer, integer) RETURNS integer AS $$
    -    SELECT CASE WHEN $1 < $2 THEN $1 ELSE $2 END
    -$$ LANGUAGE SQL STRICT;

    The real tables we need in the first two rule system descriptions + than having many different ones that might mix up in mind.

    The real tables we need in the first two rule system descriptions are these:

    CREATE TABLE shoe_data (
    @@ -93,7 +88,7 @@
                rsh.sh_avail,
                rsl.sl_name,
                rsl.sl_avail,
    -           min(rsh.sh_avail, rsl.sl_avail) AS total_avail
    +           least(rsh.sh_avail, rsl.sl_avail) AS total_avail
           FROM shoe rsh, shoelace rsl
          WHERE rsl.sl_color = rsh.slcolor
            AND rsl.sl_len_cm >= rsh.slminlen_cm
    @@ -230,7 +225,7 @@
                    rsh.sh_avail,
                    rsl.sl_name,
                    rsl.sl_avail,
    -               min(rsh.sh_avail, rsl.sl_avail) AS total_avail
    +               least(rsh.sh_avail, rsl.sl_avail) AS total_avail
               FROM shoe rsh, shoelace rsl
              WHERE rsl.sl_color = rsh.slcolor
                AND rsl.sl_len_cm >= rsh.slminlen_cm
    @@ -248,7 +243,7 @@
                    rsh.sh_avail,
                    rsl.sl_name,
                    rsl.sl_avail,
    -               min(rsh.sh_avail, rsl.sl_avail) AS total_avail
    +               least(rsh.sh_avail, rsl.sl_avail) AS total_avail
               FROM (SELECT sh.shoename,
                            sh.sh_avail,
                            sh.slcolor,
    @@ -271,16 +266,11 @@
                AND rsl.sl_len_cm >= rsh.slminlen_cm
                AND rsl.sl_len_cm <= rsh.slmaxlen_cm) shoe_ready
      WHERE shoe_ready.total_avail > 2;

    -

    It turns out that the planner will collapse this tree into a - two-level query tree: the bottommost SELECT - commands will be pulled up into the middle - SELECT since there's no need to process them - separately. But the middle SELECT will remain - separate from the top, because it contains aggregate functions. - If we pulled those up it would change the behavior of the topmost - SELECT, which we don't want. However, - collapsing the query tree is an optimization that the rewrite - system doesn't have to concern itself with. +

    This might look inefficient, but the planner will collapse this into a + single-level query tree by pulling up the subqueries, + and then it will plan the joins just as if we'd written them out + manually. So collapsing the query tree is an optimization that the + rewrite system doesn't have to concern itself with.

    40.2.2. View Rules in Non-SELECT Statements

    Two details of the query tree aren't touched in the description of view rules above. These are the command type and the result relation. In fact, the command type is not needed by view rules, but the result diff -Nru postgresql-10-10.10/doc/src/sgml/html/rule-system.html postgresql-10-10.12/doc/src/sgml/html/rule-system.html --- postgresql-10-10.10/doc/src/sgml/html/rule-system.html 2019-08-05 21:30:12.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/rule-system.html 2020-02-10 22:31:57.000000000 +0000 @@ -1,5 +1,5 @@ -50.4. The PostgreSQL Rule System

    50.4. The PostgreSQL Rule System

    PostgreSQL supports a powerful +50.4. The PostgreSQL Rule System

    50.4. The PostgreSQL Rule System

    PostgreSQL supports a powerful rule system for the specification of views and ambiguous view updates. Originally the PostgreSQL diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-autovacuum.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-autovacuum.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-autovacuum.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-autovacuum.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.10. Automatic Vacuuming

    19.10. Automatic Vacuuming

    These settings control the behavior of the autovacuum +19.10. Automatic Vacuuming

    19.10. Automatic Vacuuming

    These settings control the behavior of the autovacuum feature. Refer to Section 24.1.6 for more information. Note that many of these settings can be overridden on a per-table basis; see Storage Parameters. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-client.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-client.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-client.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-client.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.11. Client Connection Defaults

    19.11. Client Connection Defaults

    19.11.1. Statement Behavior

    client_min_messages (enum) +19.11. Client Connection Defaults

    19.11. Client Connection Defaults

    19.11.1. Statement Behavior

    client_min_messages (enum)

    Controls which message levels @@ -195,14 +195,14 @@ each lock acquisition attempt. The limit applies both to explicit locking requests (such as LOCK TABLE, or SELECT FOR UPDATE without NOWAIT) and to implicitly-acquired - locks. If log_min_error_statement is set to - ERROR or lower, the statement that timed out will be - logged. A value of zero (the default) turns this off. + locks. A value of zero (the default) turns this off.

    Unlike statement_timeout, this timeout can only occur while waiting for locks. Note that if statement_timeout is nonzero, it is rather pointless to set lock_timeout to the same or larger value, since the statement timeout would always - trigger first. + trigger first. If log_min_error_statement is set to + ERROR or lower, the statement that timed out will be + logged.

    Setting lock_timeout in postgresql.conf is not recommended because it would affect all sessions. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-compatible.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-compatible.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-compatible.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-compatible.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.13. Version and Platform Compatibility

    19.13. Version and Platform Compatibility

    19.13.1. Previous PostgreSQL Versions

    array_nulls (boolean) +19.13. Version and Platform Compatibility

    19.13. Version and Platform Compatibility

    19.13.1. Previous PostgreSQL Versions

    array_nulls (boolean)

    This controls whether the array input parser recognizes unquoted NULL as specifying a null array element. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-connection.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-connection.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-connection.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-connection.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -19.3. Connections and Authentication

    19.3. Connections and Authentication

    19.3.1. Connection Settings

    listen_addresses (string) +19.3. Connections and Authentication

    19.3. Connections and Authentication

    19.3.1. Connection Settings

    listen_addresses (string)

    Specifies the TCP/IP address(es) on which the server is to listen for connections from client applications. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-custom.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-custom.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-custom.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-custom.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.16. Customized Options

    19.16. Customized Options

    This feature was designed to allow parameters not normally known to +19.16. Customized Options

    19.16. Customized Options

    This feature was designed to allow parameters not normally known to PostgreSQL to be added by add-on modules (such as procedural languages). This allows extension modules to be configured in the standard ways. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-developer.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-developer.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-developer.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-developer.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.17. Developer Options

    19.17. Developer Options

    The following parameters are intended for work on the +19.17. Developer Options

    19.17. Developer Options

    The following parameters are intended for work on the PostgreSQL source code, and in some cases to assist with recovery of severely damaged databases. There should be no reason to use them on a production database. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-error-handling.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-error-handling.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-error-handling.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-error-handling.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.14. Error Handling

    19.14. Error Handling

    exit_on_error (boolean) +19.14. Error Handling

    19.14. Error Handling

    exit_on_error (boolean)

    If true, any error will terminate the current session. By default, this is set to false, so that only FATAL errors will terminate the diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-file-locations.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-file-locations.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-file-locations.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-file-locations.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -19.2. File Locations

    19.2. File Locations

    In addition to the postgresql.conf file +19.2. File Locations

    19.2. File Locations

    In addition to the postgresql.conf file already mentioned, PostgreSQL uses two other manually-edited configuration files, which control client authentication (their use is discussed in Chapter 20). By default, all three diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config.html postgresql-10-10.12/doc/src/sgml/html/runtime-config.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 19. Server Configuration

    Chapter 19. Server Configuration

    Table of Contents

    19.1. Setting Parameters
    19.1.1. Parameter Names and Values
    19.1.2. Parameter Interaction via the Configuration File
    19.1.3. Parameter Interaction via SQL
    19.1.4. Parameter Interaction via the Shell
    19.1.5. Managing Configuration File Contents
    19.2. File Locations
    19.3. Connections and Authentication
    19.3.1. Connection Settings
    19.3.2. Security and Authentication
    19.4. Resource Consumption
    19.4.1. Memory
    19.4.2. Disk
    19.4.3. Kernel Resource Usage
    19.4.4. Cost-based Vacuum Delay
    19.4.5. Background Writer
    19.4.6. Asynchronous Behavior
    19.5. Write Ahead Log
    19.5.1. Settings
    19.5.2. Checkpoints
    19.5.3. Archiving
    19.6. Replication
    19.6.1. Sending Server(s)
    19.6.2. Master Server
    19.6.3. Standby Servers
    19.6.4. Subscribers
    19.7. Query Planning
    19.7.1. Planner Method Configuration
    19.7.2. Planner Cost Constants
    19.7.3. Genetic Query Optimizer
    19.7.4. Other Planner Options
    19.8. Error Reporting and Logging
    19.8.1. Where To Log
    19.8.2. When To Log
    19.8.3. What To Log
    19.8.4. Using CSV-Format Log Output
    19.8.5. Process Title
    19.9. Run-time Statistics
    19.9.1. Query and Index Statistics Collector
    19.9.2. Statistics Monitoring
    19.10. Automatic Vacuuming
    19.11. Client Connection Defaults
    19.11.1. Statement Behavior
    19.11.2. Locale and Formatting
    19.11.3. Shared Library Preloading
    19.11.4. Other Defaults
    19.12. Lock Management
    19.13. Version and Platform Compatibility
    19.13.1. Previous PostgreSQL Versions
    19.13.2. Platform and Client Compatibility
    19.14. Error Handling
    19.15. Preset Options
    19.16. Customized Options
    19.17. Developer Options
    19.18. Short Options

    There are many configuration parameters that affect the behavior of +Chapter 19. Server Configuration

    Chapter 19. Server Configuration

    Table of Contents

    19.1. Setting Parameters
    19.1.1. Parameter Names and Values
    19.1.2. Parameter Interaction via the Configuration File
    19.1.3. Parameter Interaction via SQL
    19.1.4. Parameter Interaction via the Shell
    19.1.5. Managing Configuration File Contents
    19.2. File Locations
    19.3. Connections and Authentication
    19.3.1. Connection Settings
    19.3.2. Security and Authentication
    19.4. Resource Consumption
    19.4.1. Memory
    19.4.2. Disk
    19.4.3. Kernel Resource Usage
    19.4.4. Cost-based Vacuum Delay
    19.4.5. Background Writer
    19.4.6. Asynchronous Behavior
    19.5. Write Ahead Log
    19.5.1. Settings
    19.5.2. Checkpoints
    19.5.3. Archiving
    19.6. Replication
    19.6.1. Sending Server(s)
    19.6.2. Master Server
    19.6.3. Standby Servers
    19.6.4. Subscribers
    19.7. Query Planning
    19.7.1. Planner Method Configuration
    19.7.2. Planner Cost Constants
    19.7.3. Genetic Query Optimizer
    19.7.4. Other Planner Options
    19.8. Error Reporting and Logging
    19.8.1. Where To Log
    19.8.2. When To Log
    19.8.3. What To Log
    19.8.4. Using CSV-Format Log Output
    19.8.5. Process Title
    19.9. Run-time Statistics
    19.9.1. Query and Index Statistics Collector
    19.9.2. Statistics Monitoring
    19.10. Automatic Vacuuming
    19.11. Client Connection Defaults
    19.11.1. Statement Behavior
    19.11.2. Locale and Formatting
    19.11.3. Shared Library Preloading
    19.11.4. Other Defaults
    19.12. Lock Management
    19.13. Version and Platform Compatibility
    19.13.1. Previous PostgreSQL Versions
    19.13.2. Platform and Client Compatibility
    19.14. Error Handling
    19.15. Preset Options
    19.16. Customized Options
    19.17. Developer Options
    19.18. Short Options

    There are many configuration parameters that affect the behavior of the database system. In the first section of this chapter we describe how to interact with configuration parameters. The subsequent sections discuss each parameter in detail. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-locks.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-locks.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-locks.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-locks.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.12. Lock Management

    19.12. Lock Management

    deadlock_timeout (integer) +19.12. Lock Management

    19.12. Lock Management

    deadlock_timeout (integer) diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-logging.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-logging.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-logging.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-logging.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.8. Error Reporting and Logging

    19.8. Error Reporting and Logging

    19.8.1. Where To Log

    log_destination (string) +19.8. Error Reporting and Logging

    19.8. Error Reporting and Logging

    19.8.1. Where To Log

    log_destination (string)

    PostgreSQL supports several methods for logging server messages, including diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-preset.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-preset.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-preset.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-preset.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.15. Preset Options

    19.15. Preset Options

    The following parameters are read-only, and are determined +19.15. Preset Options

    19.15. Preset Options

    The following parameters are read-only, and are determined when PostgreSQL is compiled or when it is installed. As such, they have been excluded from the sample postgresql.conf file. These options report diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-query.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-query.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-query.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-query.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.7. Query Planning

    19.7. Query Planning

    19.7.1. Planner Method Configuration

    These configuration parameters provide a crude method of +19.7. Query Planning

    19.7. Query Planning

    19.7.1. Planner Method Configuration

    These configuration parameters provide a crude method of influencing the query plans chosen by the query optimizer. If the default plan chosen by the optimizer for a particular query is not optimal, a temporary solution is to use one diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-replication.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-replication.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-replication.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-replication.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.6. Replication

    19.6. Replication

    These settings control the behavior of the built-in +19.6. Replication

    19.6. Replication

    These settings control the behavior of the built-in streaming replication feature (see Section 26.2.5). Servers will be either a Master or a Standby server. Masters can send data, while Standby(s) diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-resource.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-resource.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-resource.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-resource.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.4. Resource Consumption

    19.4. Resource Consumption

    19.4.1. Memory

    shared_buffers (integer) +19.4. Resource Consumption

    19.4. Resource Consumption

    19.4.1. Memory

    shared_buffers (integer)

    Sets the amount of memory the database server uses for shared memory buffers. The default is typically 128 megabytes diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-short.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-short.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-short.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-short.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.18. Short Options

    19.18. Short Options

    For convenience there are also single letter command-line option +19.18. Short Options

    19.18. Short Options

    For convenience there are also single letter command-line option switches available for some parameters. They are described in Table 19.2. Some of these options exist for historical reasons, and their presence as a diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-statistics.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-statistics.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-statistics.html 2019-08-05 21:30:01.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-statistics.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.9. Run-time Statistics

    19.9. Run-time Statistics

    19.9.1. Query and Index Statistics Collector

    These parameters control server-wide statistics collection features. +19.9. Run-time Statistics

    19.9. Run-time Statistics

    19.9.1. Query and Index Statistics Collector

    These parameters control server-wide statistics collection features. When statistics collection is enabled, the data that is produced can be accessed via the pg_stat and pg_statio family of system views. diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime-config-wal.html postgresql-10-10.12/doc/src/sgml/html/runtime-config-wal.html --- postgresql-10-10.10/doc/src/sgml/html/runtime-config-wal.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime-config-wal.html 2020-02-10 22:31:46.000000000 +0000 @@ -1,5 +1,5 @@ -19.5. Write Ahead Log

    19.5. Write Ahead Log

    For additional information on tuning these settings, +19.5. Write Ahead Log

    19.5. Write Ahead Log

    For additional information on tuning these settings, see Section 30.4.

    19.5.1. Settings

    wal_level (enum) diff -Nru postgresql-10-10.10/doc/src/sgml/html/runtime.html postgresql-10-10.12/doc/src/sgml/html/runtime.html --- postgresql-10-10.10/doc/src/sgml/html/runtime.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/runtime.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 18. Server Setup and Operation

    Chapter 18. Server Setup and Operation

    This chapter discusses how to set up and run the database server +Chapter 18. Server Setup and Operation

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/sasl-authentication.html postgresql-10-10.12/doc/src/sgml/html/sasl-authentication.html --- postgresql-10-10.10/doc/src/sgml/html/sasl-authentication.html 2019-08-05 21:30:14.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sasl-authentication.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -52.3. SASL Authentication

    52.3. SASL Authentication

    SASL is a framework for authentication in connection-oriented +52.3. SASL Authentication

    52.3. SASL Authentication

    SASL is a framework for authentication in connection-oriented protocols. At the moment, PostgreSQL implements only one SASL authentication mechanism, SCRAM-SHA-256, but more might be added in the future. The below steps illustrate how SASL authentication is performed in diff -Nru postgresql-10-10.10/doc/src/sgml/html/seg.html postgresql-10-10.12/doc/src/sgml/html/seg.html --- postgresql-10-10.10/doc/src/sgml/html/seg.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/seg.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.35. seg

    F.35. seg

    This module implements a data type seg for +F.35. seg

    F.35. seg

    This module implements a data type seg for representing line segments, or floating point intervals. seg can represent uncertainty in the interval endpoints, making it especially useful for representing laboratory measurements. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sepgsql.html postgresql-10-10.12/doc/src/sgml/html/sepgsql.html --- postgresql-10-10.10/doc/src/sgml/html/sepgsql.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sepgsql.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.36. sepgsql

    F.36. sepgsql

    sepgsql is a loadable module that supports label-based +F.36. sepgsql

    F.36. sepgsql

    sepgsql is a loadable module that supports label-based mandatory access control (MAC) based on SELinux security policy.

    Warning

    The current implementation has significant limitations, and does not diff -Nru postgresql-10-10.10/doc/src/sgml/html/server-programming.html postgresql-10-10.12/doc/src/sgml/html/server-programming.html --- postgresql-10-10.10/doc/src/sgml/html/server-programming.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/server-programming.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -Part V. Server Programming

    Part V. Server Programming

    This part is about extending the server functionality with +Part V. Server Programming

    Part V. Server Programming

    This part is about extending the server functionality with user-defined functions, data types, triggers, etc. These are advanced topics which should probably be approached only after all the other user documentation about PostgreSQL has diff -Nru postgresql-10-10.10/doc/src/sgml/html/server-shutdown.html postgresql-10-10.12/doc/src/sgml/html/server-shutdown.html --- postgresql-10-10.10/doc/src/sgml/html/server-shutdown.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/server-shutdown.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.5. Shutting Down the Server

    18.5. Shutting Down the Server

    There are several ways to shut down the database server. You control +18.5. Shutting Down the Server

    18.5. Shutting Down the Server

    There are several ways to shut down the database server. You control the type of shutdown by sending different signals to the master postgres process. diff -Nru postgresql-10-10.10/doc/src/sgml/html/server-start.html postgresql-10-10.12/doc/src/sgml/html/server-start.html --- postgresql-10-10.10/doc/src/sgml/html/server-start.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/server-start.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.3. Starting the Database Server

    18.3. Starting the Database Server

    Before anyone can access the database, you must start the database +18.3. Starting the Database Server

    18.3. Starting the Database Server

    Before anyone can access the database, you must start the database server. The database server program is called postgres. The postgres program must know where to diff -Nru postgresql-10-10.10/doc/src/sgml/html/source-conventions.html postgresql-10-10.12/doc/src/sgml/html/source-conventions.html --- postgresql-10-10.10/doc/src/sgml/html/source-conventions.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/source-conventions.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,12 +1,12 @@ -53.4. Miscellaneous Coding Conventions

    53.4. Miscellaneous Coding Conventions

    C Standard

    Code in PostgreSQL should only rely on language +53.4. Miscellaneous Coding Conventions

    53.4. Miscellaneous Coding Conventions

    C Standard

    Code in PostgreSQL should only rely on language features available in the C89 standard. That means a conforming C89 compiler has to be able to compile postgres, at least aside from a few platform dependent pieces. Features from later revision of the C standard or compiler specific features can be used, if a fallback is provided.

    For example static inline and - _StaticAssert() are currently used, even + _Static_assert() are currently used, even though they are from newer revisions of the C standard. If not available we respectively fall back to defining the functions without inline, and to using a C89 compatible replacement that diff -Nru postgresql-10-10.10/doc/src/sgml/html/source-format.html postgresql-10-10.12/doc/src/sgml/html/source-format.html --- postgresql-10-10.10/doc/src/sgml/html/source-format.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/source-format.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -53.1. Formatting

    53.1. Formatting

    Source code formatting uses 4 column tab spacing, with +53.1. Formatting

    53.1. Formatting

    Source code formatting uses 4 column tab spacing, with tabs preserved (i.e., tabs are not expanded to spaces). Each logical indentation level is one additional tab stop.

    Layout rules (brace positioning, etc) follow BSD conventions. In diff -Nru postgresql-10-10.10/doc/src/sgml/html/source.html postgresql-10-10.12/doc/src/sgml/html/source.html --- postgresql-10-10.10/doc/src/sgml/html/source.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/source.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 53. PostgreSQL Coding Conventions

    \ No newline at end of file +Chapter 53. PostgreSQL Coding Conventions \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/sourcerepo.html postgresql-10-10.12/doc/src/sgml/html/sourcerepo.html --- postgresql-10-10.10/doc/src/sgml/html/sourcerepo.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sourcerepo.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -Appendix I. The Source Code Repository

    Appendix I. The Source Code Repository

    The PostgreSQL source code is stored and managed +Appendix I. The Source Code Repository

    Appendix I. The Source Code Repository

    The PostgreSQL source code is stored and managed using the Git version control system. A public mirror of the master repository is available; it is updated within a minute of any change to the master repository. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spgist-builtin-opclasses.html postgresql-10-10.12/doc/src/sgml/html/spgist-builtin-opclasses.html --- postgresql-10-10.10/doc/src/sgml/html/spgist-builtin-opclasses.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spgist-builtin-opclasses.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -63.2. Built-in Operator Classes

    63.2. Built-in Operator Classes

    The core PostgreSQL distribution +63.2. Built-in Operator Classes

    63.2. Built-in Operator Classes

    The core PostgreSQL distribution includes the SP-GiST operator classes shown in Table 63.1.

    Table 63.1. Built-in SP-GiST Operator Classes

    NameIndexed Data TypeIndexable Operators
    kd_point_opspoint << diff -Nru postgresql-10-10.10/doc/src/sgml/html/spgist-examples.html postgresql-10-10.12/doc/src/sgml/html/spgist-examples.html --- postgresql-10-10.10/doc/src/sgml/html/spgist-examples.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spgist-examples.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -63.5. Examples

    63.5. Examples

    The PostgreSQL source distribution includes +63.5. Examples

    63.5. Examples

    The PostgreSQL source distribution includes several examples of index operator classes for SP-GiST, as described in Table 63.1. Look into src/backend/access/spgist/ diff -Nru postgresql-10-10.10/doc/src/sgml/html/spgist-extensibility.html postgresql-10-10.12/doc/src/sgml/html/spgist-extensibility.html --- postgresql-10-10.10/doc/src/sgml/html/spgist-extensibility.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spgist-extensibility.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -63.3. Extensibility

    63.3. Extensibility

    SP-GiST offers an interface with a high level of +63.3. Extensibility

    63.3. Extensibility

    SP-GiST offers an interface with a high level of abstraction, requiring the access method developer to implement only methods specific to a given data type. The SP-GiST core is responsible for efficient disk mapping and searching the tree structure. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spgist.html postgresql-10-10.12/doc/src/sgml/html/spgist.html --- postgresql-10-10.10/doc/src/sgml/html/spgist.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spgist.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 63. SP-GiST Indexes

    \ No newline at end of file +Chapter 63. SP-GiST Indexes \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/spgist-implementation.html postgresql-10-10.12/doc/src/sgml/html/spgist-implementation.html --- postgresql-10-10.10/doc/src/sgml/html/spgist-implementation.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spgist-implementation.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -63.4. Implementation

    63.4. Implementation

    This section covers implementation details and other tricks that are +63.4. Implementation

    63.4. Implementation

    This section covers implementation details and other tricks that are useful for implementers of SP-GiST operator classes to know.

    63.4.1. SP-GiST Limits

    Individual leaf tuples and inner tuples must fit on a single index page diff -Nru postgresql-10-10.10/doc/src/sgml/html/spgist-intro.html postgresql-10-10.12/doc/src/sgml/html/spgist-intro.html --- postgresql-10-10.10/doc/src/sgml/html/spgist-intro.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spgist-intro.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -63.1. Introduction

    63.1. Introduction

    SP-GiST is an abbreviation for space-partitioned +63.1. Introduction

    63.1. Introduction

    SP-GiST is an abbreviation for space-partitioned GiST. SP-GiST supports partitioned search trees, which facilitate development of a wide range of different non-balanced data structures, such as quad-trees, k-d trees, and radix diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-examples.html postgresql-10-10.12/doc/src/sgml/html/spi-examples.html --- postgresql-10-10.10/doc/src/sgml/html/spi-examples.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-examples.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -46.5. Examples

    46.5. Examples

    This section contains a very simple example of SPI usage. The +46.5. Examples

    46.5. Examples

    This section contains a very simple example of SPI usage. The procedure execq takes an SQL command as its first argument and a row count as its second, executes the command using SPI_exec and returns the number of rows diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi.html postgresql-10-10.12/doc/src/sgml/html/spi.html --- postgresql-10-10.10/doc/src/sgml/html/spi.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 46. Server Programming Interface

    Chapter 46. Server Programming Interface

    Table of Contents

    46.1. Interface Functions
    SPI_connect — connect a procedure to the SPI manager
    SPI_finish — disconnect a procedure from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement +Chapter 46. Server Programming Interface

    Chapter 46. Server Programming Interface

    Table of Contents

    46.1. Interface Functions
    SPI_connect — connect a procedure to the SPI manager
    SPI_finish — disconnect a procedure from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement prepared by SPI_prepare
    SPI_getargtypeid — return the data type OID for an argument of a statement prepared by SPI_prepare
    SPI_is_cursor_plan — return true if a statement prepared by SPI_prepare can be used with diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-interface.html postgresql-10-10.12/doc/src/sgml/html/spi-interface.html --- postgresql-10-10.10/doc/src/sgml/html/spi-interface.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-interface.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -46.1. Interface Functions

    46.1. Interface Functions

    SPI_connect — connect a procedure to the SPI manager
    SPI_finish — disconnect a procedure from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement +46.1. Interface Functions

    46.1. Interface Functions

    SPI_connect — connect a procedure to the SPI manager
    SPI_finish — disconnect a procedure from the SPI manager
    SPI_execute — execute a command
    SPI_exec — execute a read/write command
    SPI_execute_with_args — execute a command with out-of-line parameters
    SPI_prepare — prepare a statement, without executing it yet
    SPI_prepare_cursor — prepare a statement, without executing it yet
    SPI_prepare_params — prepare a statement, without executing it yet
    SPI_getargcount — return the number of arguments needed by a statement prepared by SPI_prepare
    SPI_getargtypeid — return the data type OID for an argument of a statement prepared by SPI_prepare
    SPI_is_cursor_plan — return true if a statement prepared by SPI_prepare can be used with diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-interface-support.html postgresql-10-10.12/doc/src/sgml/html/spi-interface-support.html --- postgresql-10-10.10/doc/src/sgml/html/spi-interface-support.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-interface-support.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -46.2. Interface Support Functions

    46.2. Interface Support Functions

    SPI_fname — determine the column name for the specified column number
    SPI_fnumber — determine the column number for the specified column name
    SPI_getvalue — return the string value of the specified column
    SPI_getbinval — return the binary value of the specified column
    SPI_gettype — return the data type name of the specified column
    SPI_gettypeid — return the data type OID of the specified column
    SPI_getrelname — return the name of the specified relation
    SPI_getnspname — return the namespace of the specified relation

    The functions described here provide an interface for extracting +46.2. Interface Support Functions

    46.2. Interface Support Functions

    SPI_fname — determine the column name for the specified column number
    SPI_fnumber — determine the column number for the specified column name
    SPI_getvalue — return the string value of the specified column
    SPI_getbinval — return the binary value of the specified column
    SPI_gettype — return the data type name of the specified column
    SPI_gettypeid — return the data type OID of the specified column
    SPI_getrelname — return the name of the specified relation
    SPI_getnspname — return the namespace of the specified relation

    The functions described here provide an interface for extracting information from result sets returned by SPI_execute and other SPI functions.

    All functions described in this section can be used by both diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-memory.html postgresql-10-10.12/doc/src/sgml/html/spi-memory.html --- postgresql-10-10.10/doc/src/sgml/html/spi-memory.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-memory.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -46.3. Memory Management

    46.3. Memory Management

    SPI_palloc — allocate memory in the upper executor context
    SPI_repalloc — reallocate memory in the upper executor context
    SPI_pfree — free memory in the upper executor context
    SPI_copytuple — make a copy of a row in the upper executor context
    SPI_returntuple — prepare to return a tuple as a Datum
    SPI_modifytuple — create a row by replacing selected fields of a given row
    SPI_freetuple — free a row allocated in the upper executor context
    SPI_freetuptable — free a row set created by SPI_execute or a similar +46.3. Memory Management

    46.3. Memory Management

    SPI_palloc — allocate memory in the upper executor context
    SPI_repalloc — reallocate memory in the upper executor context
    SPI_pfree — free memory in the upper executor context
    SPI_copytuple — make a copy of a row in the upper executor context
    SPI_returntuple — prepare to return a tuple as a Datum
    SPI_modifytuple — create a row by replacing selected fields of a given row
    SPI_freetuple — free a row allocated in the upper executor context
    SPI_freetuptable — free a row set created by SPI_execute or a similar function
    SPI_freeplan — free a previously saved prepared statement

    PostgreSQL allocates memory within memory contexts, which provide a convenient method of diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-realloc.html postgresql-10-10.12/doc/src/sgml/html/spi-realloc.html --- postgresql-10-10.10/doc/src/sgml/html/spi-realloc.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-realloc.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_repalloc

    SPI_repalloc

    SPI_repalloc — reallocate memory in the upper executor context

    Synopsis

    void * SPI_repalloc(void * pointer, Size size)

    Description

    SPI_repalloc changes the size of a memory +SPI_repalloc

    SPI_repalloc

    SPI_repalloc — reallocate memory in the upper executor context

    Synopsis

    void * SPI_repalloc(void * pointer, Size size)

    Description

    SPI_repalloc changes the size of a memory segment previously allocated using SPI_palloc.

    This function is no longer different from plain repalloc. It's kept just for backward diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-connect.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-connect.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-connect.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-connect.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_connect

    SPI_connect

    SPI_connect — connect a procedure to the SPI manager

    Synopsis

    int SPI_connect(void)

    Description

    SPI_connect opens a connection from a +SPI_connect

    SPI_connect

    SPI_connect — connect a procedure to the SPI manager

    Synopsis

    int SPI_connect(void)

    Description

    SPI_connect opens a connection from a procedure invocation to the SPI manager. You must call this function if you want to execute commands through SPI. Some utility SPI functions can be called from unconnected procedures. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-copytuple.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-copytuple.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-copytuple.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-copytuple.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_copytuple

    SPI_copytuple

    SPI_copytuple — make a copy of a row in the upper executor context

    Synopsis

    HeapTuple SPI_copytuple(HeapTuple row)

    Description

    SPI_copytuple makes a copy of a row in the +SPI_copytuple

    SPI_copytuple

    SPI_copytuple — make a copy of a row in the upper executor context

    Synopsis

    HeapTuple SPI_copytuple(HeapTuple row)

    Description

    SPI_copytuple makes a copy of a row in the upper executor context. This is normally used to return a modified row from a trigger. In a function declared to return a composite type, use SPI_returntuple instead. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-close.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-close.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-close.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-close.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_close

    SPI_cursor_close

    SPI_cursor_close — close a cursor

    Synopsis

    void SPI_cursor_close(Portal portal)

    Description

    SPI_cursor_close closes a previously created +SPI_cursor_close

    SPI_cursor_close

    SPI_cursor_close — close a cursor

    Synopsis

    void SPI_cursor_close(Portal portal)

    Description

    SPI_cursor_close closes a previously created cursor and releases its portal storage.

    All open cursors are closed automatically at the end of a transaction. SPI_cursor_close need only be diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-fetch.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-fetch.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-fetch.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-fetch.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_fetch

    SPI_cursor_fetch

    SPI_cursor_fetch — fetch some rows from a cursor

    Synopsis

    void SPI_cursor_fetch(Portal portal, bool forward, long count)

    Description

    SPI_cursor_fetch fetches some rows from a +SPI_cursor_fetch

    SPI_cursor_fetch

    SPI_cursor_fetch — fetch some rows from a cursor

    Synopsis

    void SPI_cursor_fetch(Portal portal, bool forward, long count)

    Description

    SPI_cursor_fetch fetches some rows from a cursor. This is equivalent to a subset of the SQL command FETCH (see SPI_scroll_cursor_fetch for more functionality). diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-find.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-find.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-find.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-find.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_find

    SPI_cursor_find

    SPI_cursor_find — find an existing cursor by name

    Synopsis

    Portal SPI_cursor_find(const char * name)

    Description

    SPI_cursor_find finds an existing portal by +SPI_cursor_find

    SPI_cursor_find

    SPI_cursor_find — find an existing cursor by name

    Synopsis

    Portal SPI_cursor_find(const char * name)

    Description

    SPI_cursor_find finds an existing portal by name. This is primarily useful to resolve a cursor name returned as text by some other function.

    Arguments

    const char * name

    name of the portal diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-move.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-move.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-move.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-move.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_move

    SPI_cursor_move

    SPI_cursor_move — move a cursor

    Synopsis

    void SPI_cursor_move(Portal portal, bool forward, long count)

    Description

    SPI_cursor_move skips over some number of rows +SPI_cursor_move

    SPI_cursor_move

    SPI_cursor_move — move a cursor

    Synopsis

    void SPI_cursor_move(Portal portal, bool forward, long count)

    Description

    SPI_cursor_move skips over some number of rows in a cursor. This is equivalent to a subset of the SQL command MOVE (see SPI_scroll_cursor_move for more functionality). diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-open.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-open.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-open.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-open.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_open

    SPI_cursor_open

    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare

    Synopsis

    Portal SPI_cursor_open(const char * name, SPIPlanPtr plan,
    +SPI_cursor_open

    SPI_cursor_open

    SPI_cursor_open — set up a cursor using a statement created with SPI_prepare

    Synopsis

    Portal SPI_cursor_open(const char * name, SPIPlanPtr plan,
                            Datum * values, const char * nulls,
                            bool read_only)

    Description

    SPI_cursor_open sets up a cursor (internally, a portal) that will execute a statement prepared by diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-open-with-args.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-open-with-args.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-open-with-args.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-open-with-args.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_cursor_open_with_args

    SPI_cursor_open_with_args

    SPI_cursor_open_with_args — set up a cursor using a query and parameters

    Synopsis

    Portal SPI_cursor_open_with_args(const char *name,
    +SPI_cursor_open_with_args

    SPI_cursor_open_with_args

    SPI_cursor_open_with_args — set up a cursor using a query and parameters

    Synopsis

    Portal SPI_cursor_open_with_args(const char *name,
                                      const char *command,
                                      int nargs, Oid *argtypes,
                                      Datum *values, const char *nulls,
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html
    --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html	2019-08-05 21:30:06.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-cursor-open-with-paramlist.html	2020-02-10 22:31:51.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist — set up a cursor using parameters

    Synopsis

    Portal SPI_cursor_open_with_paramlist(const char *name,
    +SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist

    SPI_cursor_open_with_paramlist — set up a cursor using parameters

    Synopsis

    Portal SPI_cursor_open_with_paramlist(const char *name,
                                           SPIPlanPtr plan,
                                           ParamListInfo params,
                                           bool read_only)

    Description

    SPI_cursor_open_with_paramlist sets up a cursor diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-exec.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-exec.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-exec.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-exec.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_exec

    SPI_exec

    SPI_exec — execute a read/write command

    Synopsis

    int SPI_exec(const char * command, long count)

    Description

    SPI_exec is the same as +SPI_exec

    SPI_exec

    SPI_exec — execute a read/write command

    Synopsis

    int SPI_exec(const char * command, long count)

    Description

    SPI_exec is the same as SPI_execute, with the latter's read_only parameter always taken as false. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-execp.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-execp.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-execp.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-execp.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execp

    SPI_execp

    SPI_execp — execute a statement in read/write mode

    Synopsis

    int SPI_execp(SPIPlanPtr plan, Datum * values, const char * nulls, long count)

    Description

    SPI_execp is the same as +SPI_execp

    SPI_execp

    SPI_execp — execute a statement in read/write mode

    Synopsis

    int SPI_execp(SPIPlanPtr plan, Datum * values, const char * nulls, long count)

    Description

    SPI_execp is the same as SPI_execute_plan, with the latter's read_only parameter always taken as false. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execute

    SPI_execute

    SPI_execute — execute a command

    Synopsis

    int SPI_execute(const char * command, bool read_only, long count)

    Description

    SPI_execute executes the specified SQL command +SPI_execute

    SPI_execute

    SPI_execute — execute a command

    Synopsis

    int SPI_execute(const char * command, bool read_only, long count)

    Description

    SPI_execute executes the specified SQL command for count rows. If read_only is true, the command must be read-only, and execution overhead is somewhat reduced. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute-plan.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute-plan.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute-plan.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute-plan.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execute_plan

    SPI_execute_plan

    SPI_execute_plan — execute a statement prepared by SPI_prepare

    Synopsis

    int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
    +SPI_execute_plan

    SPI_execute_plan

    SPI_execute_plan — execute a statement prepared by SPI_prepare

    Synopsis

    int SPI_execute_plan(SPIPlanPtr plan, Datum * values, const char * nulls,
                          bool read_only, long count)

    Description

    SPI_execute_plan executes a statement prepared by SPI_prepare or one of its siblings. read_only and diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute-plan-with-paramlist.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare

    Synopsis

    int SPI_execute_plan_with_paramlist(SPIPlanPtr plan,
    +SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist

    SPI_execute_plan_with_paramlist — execute a statement prepared by SPI_prepare

    Synopsis

    int SPI_execute_plan_with_paramlist(SPIPlanPtr plan,
                                         ParamListInfo params,
                                         bool read_only,
                                         long count)

    Description

    SPI_execute_plan_with_paramlist executes a statement diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute-with-args.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute-with-args.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-execute-with-args.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-execute-with-args.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_execute_with_args

    SPI_execute_with_args

    SPI_execute_with_args — execute a command with out-of-line parameters

    Synopsis

    int SPI_execute_with_args(const char *command,
    +SPI_execute_with_args

    SPI_execute_with_args

    SPI_execute_with_args — execute a command with out-of-line parameters

    Synopsis

    int SPI_execute_with_args(const char *command,
                               int nargs, Oid *argtypes,
                               Datum *values, const char *nulls,
                               bool read_only, long count)

    Description

    SPI_execute_with_args executes a command that might diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-finish.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-finish.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-finish.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-finish.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_finish

    SPI_finish

    SPI_finish — disconnect a procedure from the SPI manager

    Synopsis

    int SPI_finish(void)

    Description

    SPI_finish closes an existing connection to +SPI_finish

    SPI_finish

    SPI_finish — disconnect a procedure from the SPI manager

    Synopsis

    int SPI_finish(void)

    Description

    SPI_finish closes an existing connection to the SPI manager. You must call this function after completing the SPI operations needed during your procedure's current invocation. You do not need to worry about making this happen, however, if you diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-fname.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-fname.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-fname.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-fname.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_fname

    SPI_fname

    SPI_fname — determine the column name for the specified column number

    Synopsis

    char * SPI_fname(TupleDesc rowdesc, int colnumber)

    Description

    SPI_fname returns a copy of the column name of the +SPI_fname

    SPI_fname

    SPI_fname — determine the column name for the specified column number

    Synopsis

    char * SPI_fname(TupleDesc rowdesc, int colnumber)

    Description

    SPI_fname returns a copy of the column name of the specified column. (You can use pfree to release the copy of the name when you don't need it anymore.)

    Arguments

    TupleDesc rowdesc

    input row description diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-fnumber.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-fnumber.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-fnumber.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-fnumber.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_fnumber

    SPI_fnumber

    SPI_fnumber — determine the column number for the specified column name

    Synopsis

    int SPI_fnumber(TupleDesc rowdesc, const char * colname)

    Description

    SPI_fnumber returns the column number for the +SPI_fnumber

    SPI_fnumber

    SPI_fnumber — determine the column number for the specified column name

    Synopsis

    int SPI_fnumber(TupleDesc rowdesc, const char * colname)

    Description

    SPI_fnumber returns the column number for the column with the specified name.

    If colname refers to a system column (e.g., oid) then the appropriate negative column number will diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-freeplan.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-freeplan.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-freeplan.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-freeplan.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_freeplan

    SPI_freeplan

    SPI_freeplan — free a previously saved prepared statement

    Synopsis

    int SPI_freeplan(SPIPlanPtr plan)

    Description

    SPI_freeplan releases a prepared statement +SPI_freeplan

    SPI_freeplan

    SPI_freeplan — free a previously saved prepared statement

    Synopsis

    int SPI_freeplan(SPIPlanPtr plan)

    Description

    SPI_freeplan releases a prepared statement previously returned by SPI_prepare or saved by SPI_keepplan or SPI_saveplan.

    Arguments

    SPIPlanPtr plan

    pointer to statement to free diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-freetuple.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-freetuple.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-freetuple.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-freetuple.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_freetuple

    SPI_freetuple

    SPI_freetuple — free a row allocated in the upper executor context

    Synopsis

    void SPI_freetuple(HeapTuple row)

    Description

    SPI_freetuple frees a row previously allocated +SPI_freetuple

    SPI_freetuple

    SPI_freetuple — free a row allocated in the upper executor context

    Synopsis

    void SPI_freetuple(HeapTuple row)

    Description

    SPI_freetuple frees a row previously allocated in the upper executor context.

    This function is no longer different from plain heap_freetuple. It's kept just for backward diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-freetupletable.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-freetupletable.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-freetupletable.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-freetupletable.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_freetuptable

    SPI_freetuptable

    SPI_freetuptable — free a row set created by SPI_execute or a similar +SPI_freetuptable

    SPI_freetuptable

    SPI_freetuptable — free a row set created by SPI_execute or a similar function

    Synopsis

    void SPI_freetuptable(SPITupleTable * tuptable)

    Description

    SPI_freetuptable frees a row set created by a prior SPI command execution function, such as SPI_execute. Therefore, this function is often called diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-getargcount.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-getargcount.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-getargcount.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-getargcount.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getargcount

    SPI_getargcount

    SPI_getargcount — return the number of arguments needed by a statement +SPI_getargcount

    SPI_getargcount

    SPI_getargcount — return the number of arguments needed by a statement prepared by SPI_prepare

    Synopsis

    int SPI_getargcount(SPIPlanPtr plan)

    Description

    SPI_getargcount returns the number of arguments needed to execute a statement prepared by SPI_prepare.

    Arguments

    SPIPlanPtr plan

    prepared statement (returned by SPI_prepare) diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-getargtypeid.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-getargtypeid.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-getargtypeid.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-getargtypeid.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getargtypeid

    SPI_getargtypeid

    SPI_getargtypeid — return the data type OID for an argument of +SPI_getargtypeid

    SPI_getargtypeid

    SPI_getargtypeid — return the data type OID for an argument of a statement prepared by SPI_prepare

    Synopsis

    Oid SPI_getargtypeid(SPIPlanPtr plan, int argIndex)

    Description

    SPI_getargtypeid returns the OID representing the type for the argIndex'th argument of a statement prepared by SPI_prepare. First argument is at index zero. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-getbinval.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-getbinval.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-getbinval.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-getbinval.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getbinval

    SPI_getbinval

    SPI_getbinval — return the binary value of the specified column

    Synopsis

    Datum SPI_getbinval(HeapTuple row, TupleDesc rowdesc, int colnumber,
    +SPI_getbinval

    SPI_getbinval

    SPI_getbinval — return the binary value of the specified column

    Synopsis

    Datum SPI_getbinval(HeapTuple row, TupleDesc rowdesc, int colnumber,
                         bool * isnull)

    Description

    SPI_getbinval returns the value of the specified column in the internal form (as type Datum).

    This function does not allocate new space for the datum. In the diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-getnspname.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-getnspname.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-getnspname.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-getnspname.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getnspname

    SPI_getnspname

    SPI_getnspname — return the namespace of the specified relation

    Synopsis

    char * SPI_getnspname(Relation rel)

    Description

    SPI_getnspname returns a copy of the name of +SPI_getnspname

    SPI_getnspname

    SPI_getnspname — return the namespace of the specified relation

    Synopsis

    char * SPI_getnspname(Relation rel)

    Description

    SPI_getnspname returns a copy of the name of the namespace that the specified Relation belongs to. This is equivalent to the relation's schema. You should pfree the return value of this function when diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-getrelname.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-getrelname.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-getrelname.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-getrelname.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getrelname

    SPI_getrelname

    SPI_getrelname — return the name of the specified relation

    Synopsis

    char * SPI_getrelname(Relation rel)

    Description

    SPI_getrelname returns a copy of the name of the +SPI_getrelname

    SPI_getrelname

    SPI_getrelname — return the name of the specified relation

    Synopsis

    char * SPI_getrelname(Relation rel)

    Description

    SPI_getrelname returns a copy of the name of the specified relation. (You can use pfree to release the copy of the name when you don't need it anymore.)

    Arguments

    Relation rel

    input relation diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-gettype.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-gettype.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-gettype.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-gettype.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_gettype

    SPI_gettype

    SPI_gettype — return the data type name of the specified column

    Synopsis

    char * SPI_gettype(TupleDesc rowdesc, int colnumber)

    Description

    SPI_gettype returns a copy of the data type name of the +SPI_gettype

    SPI_gettype

    SPI_gettype — return the data type name of the specified column

    Synopsis

    char * SPI_gettype(TupleDesc rowdesc, int colnumber)

    Description

    SPI_gettype returns a copy of the data type name of the specified column. (You can use pfree to release the copy of the name when you don't need it anymore.)

    Arguments

    TupleDesc rowdesc

    input row description diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-gettypeid.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-gettypeid.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-gettypeid.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-gettypeid.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_gettypeid

    SPI_gettypeid

    SPI_gettypeid — return the data type OID of the specified column

    Synopsis

    Oid SPI_gettypeid(TupleDesc rowdesc, int colnumber)

    Description

    SPI_gettypeid returns the +SPI_gettypeid

    SPI_gettypeid

    SPI_gettypeid — return the data type OID of the specified column

    Synopsis

    Oid SPI_gettypeid(TupleDesc rowdesc, int colnumber)

    Description

    SPI_gettypeid returns the OID of the data type of the specified column.

    Arguments

    TupleDesc rowdesc

    input row description

    int colnumber

    column number (count starts at 1) diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-getvalue.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-getvalue.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-getvalue.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-getvalue.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_getvalue

    SPI_getvalue

    SPI_getvalue — return the string value of the specified column

    Synopsis

    char * SPI_getvalue(HeapTuple row, TupleDesc rowdesc, int colnumber)

    Description

    SPI_getvalue returns the string representation +SPI_getvalue

    SPI_getvalue

    SPI_getvalue — return the string value of the specified column

    Synopsis

    char * SPI_getvalue(HeapTuple row, TupleDesc rowdesc, int colnumber)

    Description

    SPI_getvalue returns the string representation of the value of the specified column.

    The result is returned in memory allocated using palloc. (You can use diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-is-cursor-plan.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-is-cursor-plan.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-is-cursor-plan.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-is-cursor-plan.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_is_cursor_plan

    SPI_is_cursor_plan

    SPI_is_cursor_plan — return true if a statement +SPI_is_cursor_plan

    SPI_is_cursor_plan

    SPI_is_cursor_plan — return true if a statement prepared by SPI_prepare can be used with SPI_cursor_open

    Synopsis

    bool SPI_is_cursor_plan(SPIPlanPtr plan)

    Description

    SPI_is_cursor_plan returns true if a statement prepared by SPI_prepare can be passed diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-keepplan.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-keepplan.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-keepplan.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-keepplan.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_keepplan

    SPI_keepplan

    SPI_keepplan — save a prepared statement

    Synopsis

    int SPI_keepplan(SPIPlanPtr plan)

    Description

    SPI_keepplan saves a passed statement (prepared by +SPI_keepplan

    SPI_keepplan

    SPI_keepplan — save a prepared statement

    Synopsis

    int SPI_keepplan(SPIPlanPtr plan)

    Description

    SPI_keepplan saves a passed statement (prepared by SPI_prepare) so that it will not be freed by SPI_finish nor by the transaction manager. This gives you the ability to reuse prepared statements in the subsequent diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-modifytuple.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-modifytuple.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-modifytuple.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-modifytuple.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_modifytuple

    SPI_modifytuple

    SPI_modifytuple — create a row by replacing selected fields of a given row

    Synopsis

    HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, int ncols,
    +SPI_modifytuple

    SPI_modifytuple

    SPI_modifytuple — create a row by replacing selected fields of a given row

    Synopsis

    HeapTuple SPI_modifytuple(Relation rel, HeapTuple row, int ncols,
                               int * colnum, Datum * values, const char * nulls)

    Description

    SPI_modifytuple creates a new row by substituting new values for selected columns, copying the original row's columns at other positions. The input row is not modified. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-palloc.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-palloc.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-palloc.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-palloc.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_palloc

    SPI_palloc

    SPI_palloc — allocate memory in the upper executor context

    Synopsis

    void * SPI_palloc(Size size)

    Description

    SPI_palloc allocates memory in the upper +SPI_palloc

    SPI_palloc

    SPI_palloc — allocate memory in the upper executor context

    Synopsis

    void * SPI_palloc(Size size)

    Description

    SPI_palloc allocates memory in the upper executor context.

    This function can only be used while connected to SPI. Otherwise, it throws an error. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-pfree.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-pfree.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-pfree.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-pfree.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_pfree

    SPI_pfree

    SPI_pfree — free memory in the upper executor context

    Synopsis

    void SPI_pfree(void * pointer)

    Description

    SPI_pfree frees memory previously allocated +SPI_pfree

    SPI_pfree

    SPI_pfree — free memory in the upper executor context

    Synopsis

    void SPI_pfree(void * pointer)

    Description

    SPI_pfree frees memory previously allocated using SPI_palloc or SPI_repalloc.

    This function is no longer different from plain diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-prepare-cursor.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-prepare-cursor.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-prepare-cursor.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-prepare-cursor.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_prepare_cursor

    SPI_prepare_cursor

    SPI_prepare_cursor — prepare a statement, without executing it yet

    Synopsis

    SPIPlanPtr SPI_prepare_cursor(const char * command, int nargs,
    +SPI_prepare_cursor

    SPI_prepare_cursor

    SPI_prepare_cursor — prepare a statement, without executing it yet

    Synopsis

    SPIPlanPtr SPI_prepare_cursor(const char * command, int nargs,
                                   Oid * argtypes, int cursorOptions)

    Description

    SPI_prepare_cursor is identical to SPI_prepare, except that it also allows specification of the planner's cursor options parameter. This is a bit mask diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-prepare.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-prepare.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-prepare.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-prepare.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_prepare

    SPI_prepare

    SPI_prepare — prepare a statement, without executing it yet

    Synopsis

    SPIPlanPtr SPI_prepare(const char * command, int nargs, Oid * argtypes)

    Description

    SPI_prepare creates and returns a prepared +SPI_prepare

    SPI_prepare

    SPI_prepare — prepare a statement, without executing it yet

    Synopsis

    SPIPlanPtr SPI_prepare(const char * command, int nargs, Oid * argtypes)

    Description

    SPI_prepare creates and returns a prepared statement for the specified command, but doesn't execute the command. The prepared statement can later be executed repeatedly using SPI_execute_plan. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-prepare-params.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-prepare-params.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-prepare-params.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-prepare-params.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_prepare_params

    SPI_prepare_params

    SPI_prepare_params — prepare a statement, without executing it yet

    Synopsis

    SPIPlanPtr SPI_prepare_params(const char * command,
    +SPI_prepare_params

    SPI_prepare_params

    SPI_prepare_params — prepare a statement, without executing it yet

    Synopsis

    SPIPlanPtr SPI_prepare_params(const char * command,
                                   ParserSetupHook parserSetup,
                                   void * parserSetupArg,
                                   int cursorOptions)

    Description

    SPI_prepare_params creates and returns a prepared diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-register-relation.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-register-relation.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-register-relation.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-register-relation.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_register_relation

    SPI_register_relation

    SPI_register_relation — make an ephemeral named relation available by name in SPI queries

    Synopsis

    int SPI_register_relation(EphemeralNamedRelation enr)

    Description

    SPI_register_relation makes an ephemeral named +SPI_register_relation

    SPI_register_relation

    SPI_register_relation — make an ephemeral named relation available by name in SPI queries

    Synopsis

    int SPI_register_relation(EphemeralNamedRelation enr)

    Description

    SPI_register_relation makes an ephemeral named relation, with associated information, available to queries planned and executed through the current SPI connection.

    Arguments

    EphemeralNamedRelation enr

    the ephemeral named relation registry entry diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-register-trigger-data.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-register-trigger-data.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-register-trigger-data.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-register-trigger-data.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_register_trigger_data

    SPI_register_trigger_data

    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries

    Synopsis

    int SPI_register_trigger_data(TriggerData *tdata)

    Description

    SPI_register_trigger_data makes any ephemeral +SPI_register_trigger_data

    SPI_register_trigger_data

    SPI_register_trigger_data — make ephemeral trigger data available in SPI queries

    Synopsis

    int SPI_register_trigger_data(TriggerData *tdata)

    Description

    SPI_register_trigger_data makes any ephemeral relations captured by a trigger available to queries planned and executed through the current SPI connection. Currently, this means the transition tables captured by an AFTER trigger defined with a diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-returntuple.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-returntuple.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-returntuple.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-returntuple.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_returntuple

    SPI_returntuple

    SPI_returntuple — prepare to return a tuple as a Datum

    Synopsis

    HeapTupleHeader SPI_returntuple(HeapTuple row, TupleDesc rowdesc)

    Description

    SPI_returntuple makes a copy of a row in +SPI_returntuple

    SPI_returntuple

    SPI_returntuple — prepare to return a tuple as a Datum

    Synopsis

    HeapTupleHeader SPI_returntuple(HeapTuple row, TupleDesc rowdesc)

    Description

    SPI_returntuple makes a copy of a row in the upper executor context, returning it in the form of a row type Datum. The returned pointer need only be converted to Datum via PointerGetDatum before returning. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-saveplan.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-saveplan.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-saveplan.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-saveplan.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_saveplan

    SPI_saveplan

    SPI_saveplan — save a prepared statement

    Synopsis

    SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

    Description

    SPI_saveplan copies a passed statement (prepared by +SPI_saveplan

    SPI_saveplan

    SPI_saveplan — save a prepared statement

    Synopsis

    SPIPlanPtr SPI_saveplan(SPIPlanPtr plan)

    Description

    SPI_saveplan copies a passed statement (prepared by SPI_prepare) into memory that will not be freed by SPI_finish nor by the transaction manager, and returns a pointer to the copied statement. This gives you the diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-scroll-cursor-fetch.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch — fetch some rows from a cursor

    Synopsis

    void SPI_scroll_cursor_fetch(Portal portal, FetchDirection direction,
    +SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch

    SPI_scroll_cursor_fetch — fetch some rows from a cursor

    Synopsis

    void SPI_scroll_cursor_fetch(Portal portal, FetchDirection direction,
                                  long count)

    Description

    SPI_scroll_cursor_fetch fetches some rows from a cursor. This is equivalent to the SQL command FETCH.

    Arguments

    Portal portal

    portal containing the cursor diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-scroll-cursor-move.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-scroll-cursor-move.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-scroll-cursor-move.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-scroll-cursor-move.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_scroll_cursor_move

    SPI_scroll_cursor_move

    SPI_scroll_cursor_move — move a cursor

    Synopsis

    void SPI_scroll_cursor_move(Portal portal, FetchDirection direction,
    +SPI_scroll_cursor_move

    SPI_scroll_cursor_move

    SPI_scroll_cursor_move — move a cursor

    Synopsis

    void SPI_scroll_cursor_move(Portal portal, FetchDirection direction,
                                 long count)

    Description

    SPI_scroll_cursor_move skips over some number of rows in a cursor. This is equivalent to the SQL command MOVE. diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-spi-unregister-relation.html postgresql-10-10.12/doc/src/sgml/html/spi-spi-unregister-relation.html --- postgresql-10-10.10/doc/src/sgml/html/spi-spi-unregister-relation.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-spi-unregister-relation.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -SPI_unregister_relation

    SPI_unregister_relation

    SPI_unregister_relation — remove an ephemeral named relation from the registry

    Synopsis

    int SPI_unregister_relation(const char * name)

    Description

    SPI_unregister_relation removes an ephemeral named +SPI_unregister_relation

    SPI_unregister_relation

    SPI_unregister_relation — remove an ephemeral named relation from the registry

    Synopsis

    int SPI_unregister_relation(const char * name)

    Description

    SPI_unregister_relation removes an ephemeral named relation from the registry for the current connection.

    Arguments

    const char * name

    the relation registry entry name

    Return Value

    If the execution of the command was successful then the following diff -Nru postgresql-10-10.10/doc/src/sgml/html/spi-visibility.html postgresql-10-10.12/doc/src/sgml/html/spi-visibility.html --- postgresql-10-10.10/doc/src/sgml/html/spi-visibility.html 2019-08-05 21:30:06.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/spi-visibility.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -46.4. Visibility of Data Changes

    46.4. Visibility of Data Changes

    The following rules govern the visibility of data changes in +46.4. Visibility of Data Changes

    46.4. Visibility of Data Changes

    The following rules govern the visibility of data changes in functions that use SPI (or any other C function):

    • During the execution of an SQL command, any data changes made by diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-abort.html postgresql-10-10.12/doc/src/sgml/html/sql-abort.html --- postgresql-10-10.10/doc/src/sgml/html/sql-abort.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-abort.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -ABORT

      ABORT

      ABORT — abort the current transaction

      Synopsis

      ABORT [ WORK | TRANSACTION ]

      Description

      ABORT rolls back the current transaction and causes +ABORT

      ABORT

      ABORT — abort the current transaction

      Synopsis

      ABORT [ WORK | TRANSACTION ]

      Description

      ABORT rolls back the current transaction and causes all the updates made by the transaction to be discarded. This command is identical in behavior to the standard SQL command diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alteraggregate.html postgresql-10-10.12/doc/src/sgml/html/sql-alteraggregate.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alteraggregate.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alteraggregate.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER AGGREGATE

      ALTER AGGREGATE

      ALTER AGGREGATE — change the definition of an aggregate function

      Synopsis

      ALTER AGGREGATE name ( aggregate_signature ) RENAME TO new_name
      +ALTER AGGREGATE

      ALTER AGGREGATE

      ALTER AGGREGATE — change the definition of an aggregate function

      Synopsis

      ALTER AGGREGATE name ( aggregate_signature ) RENAME TO new_name
       ALTER AGGREGATE name ( aggregate_signature )
                       OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
       ALTER AGGREGATE name ( aggregate_signature ) SET SCHEMA new_schema
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altercollation.html postgresql-10-10.12/doc/src/sgml/html/sql-altercollation.html
      --- postgresql-10-10.10/doc/src/sgml/html/sql-altercollation.html	2019-08-05 21:30:07.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/sql-altercollation.html	2020-02-10 22:31:51.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -ALTER COLLATION

      ALTER COLLATION

      ALTER COLLATION — change the definition of a collation

      Synopsis

      ALTER COLLATION name REFRESH VERSION
      +ALTER COLLATION

      ALTER COLLATION

      ALTER COLLATION — change the definition of a collation

      Synopsis

      ALTER COLLATION name REFRESH VERSION
       
       ALTER COLLATION name RENAME TO new_name
       ALTER COLLATION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterconversion.html postgresql-10-10.12/doc/src/sgml/html/sql-alterconversion.html
      --- postgresql-10-10.10/doc/src/sgml/html/sql-alterconversion.html	2019-08-05 21:30:07.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterconversion.html	2020-02-10 22:31:51.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -ALTER CONVERSION

      ALTER CONVERSION

      ALTER CONVERSION — change the definition of a conversion

      Synopsis

      ALTER CONVERSION name RENAME TO new_name
      +ALTER CONVERSION

      ALTER CONVERSION

      ALTER CONVERSION — change the definition of a conversion

      Synopsis

      ALTER CONVERSION name RENAME TO new_name
       ALTER CONVERSION name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
       ALTER CONVERSION name SET SCHEMA new_schema

      Description

      ALTER CONVERSION changes the definition of a conversion. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterdatabase.html postgresql-10-10.12/doc/src/sgml/html/sql-alterdatabase.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alterdatabase.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterdatabase.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER DATABASE

      ALTER DATABASE

      ALTER DATABASE — change a database

      Synopsis

      ALTER DATABASE name [ [ WITH ] option [ ... ] ]
      +ALTER DATABASE

      ALTER DATABASE

      ALTER DATABASE — change a database

      Synopsis

      ALTER DATABASE name [ [ WITH ] option [ ... ] ]
       
       where option can be:
       
      diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterdefaultprivileges.html postgresql-10-10.12/doc/src/sgml/html/sql-alterdefaultprivileges.html
      --- postgresql-10-10.10/doc/src/sgml/html/sql-alterdefaultprivileges.html	2019-08-05 21:30:07.000000000 +0000
      +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterdefaultprivileges.html	2020-02-10 22:31:51.000000000 +0000
      @@ -1,5 +1,5 @@
       
      -ALTER DEFAULT PRIVILEGES

      ALTER DEFAULT PRIVILEGES

      ALTER DEFAULT PRIVILEGES — define default access privileges

      Synopsis

      ALTER DEFAULT PRIVILEGES
      +ALTER DEFAULT PRIVILEGES

      ALTER DEFAULT PRIVILEGES

      ALTER DEFAULT PRIVILEGES — define default access privileges

      Synopsis

      ALTER DEFAULT PRIVILEGES
           [ FOR { ROLE | USER } target_role [, ...] ]
           [ IN SCHEMA schema_name [, ...] ]
           abbreviated_grant_or_revoke
      @@ -67,23 +67,28 @@
         

      You can change default privileges only for objects that will be created by yourself or by roles that you are a member of. The privileges can be set globally (i.e., for all objects created in the current database), - or just for objects created in specified schemas. Default privileges - that are specified per-schema are added to whatever the global default - privileges are for the particular object type. + or just for objects created in specified schemas.

      As explained under GRANT, the default privileges for any object type normally grant all grantable permissions to the object owner, and may grant some privileges to PUBLIC as well. However, this behavior can be changed by altering the global default privileges with ALTER DEFAULT PRIVILEGES. -

      Parameters

      target_role

      The name of an existing role of which the current role is a member. +

      Default privileges that are specified per-schema are added to whatever + the global default privileges are for the particular object type. + This means you cannot revoke privileges per-schema if they are granted + globally (either by default, or according to a previous ALTER + DEFAULT PRIVILEGES command that did not specify a schema). + Per-schema REVOKE is only useful to reverse the + effects of a previous per-schema GRANT. +

      Parameters

      target_role

      The name of an existing role of which the current role is a member. If FOR ROLE is omitted, the current role is assumed.

      schema_name

      The name of an existing schema. If specified, the default privileges are altered for objects later created in that schema. If IN SCHEMA is omitted, the global default privileges are altered. - IN SCHEMA is not allowed when using ON SCHEMAS - as schemas can't be nested. + IN SCHEMA is not allowed when setting privileges + for schemas, since schemas can't be nested.

      role_name

      The name of an existing role to grant or revoke privileges for. This parameter, and all the other parameters in abbreviated_grant_or_revoke, @@ -114,7 +119,13 @@ ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE INSERT ON TABLES FROM webuser;

      Remove the public EXECUTE permission that is normally granted on functions, for all functions subsequently created by role admin: - -

      ALTER DEFAULT PRIVILEGES FOR ROLE admin REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;

      Compatibility

      There is no ALTER DEFAULT PRIVILEGES statement in the SQL +

      ALTER DEFAULT PRIVILEGES FOR ROLE admin REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;

      + Note however that you cannot accomplish that effect + with a command limited to a single schema. This command has no effect, + unless it is undoing a matching GRANT: +

      ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;

      + That's because per-schema default privileges can only add privileges to + the global setting, not remove privileges granted by it. +

      Compatibility

      There is no ALTER DEFAULT PRIVILEGES statement in the SQL standard.

      See Also

      GRANT, REVOKE
      \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterdomain.html postgresql-10-10.12/doc/src/sgml/html/sql-alterdomain.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alterdomain.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterdomain.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER DOMAIN

      ALTER DOMAIN

      ALTER DOMAIN — change the definition of a domain +ALTER DOMAIN

      ALTER DOMAIN

      ALTER DOMAIN — change the definition of a domain

      Synopsis

      ALTER DOMAIN name
           { SET DEFAULT expression | DROP DEFAULT }
       ALTER DOMAIN name
      @@ -40,8 +40,8 @@
             does not exist, no error is thrown. In this case a notice is issued instead.
            

    RENAME CONSTRAINT

    This form changes the name of a constraint on a domain.

    VALIDATE CONSTRAINT

    This form validates a constraint previously added as - NOT VALID, that is, verify that all data in columns using the - domain satisfy the specified constraint. + NOT VALID, that is, it verifies that all values in + table columns of the domain type satisfy the specified constraint.

    OWNER

    This form changes the owner of the domain to the specified user.

    RENAME

    This form changes the name of the domain.

    SET SCHEMA

    This form changes the schema of the domain. Any constraints @@ -58,7 +58,7 @@ alter.

    domain_constraint

    New domain constraint for the domain.

    constraint_name

    Name of an existing constraint to drop or rename. -

    NOT VALID

    Do not verify existing column data for constraint validity. +

    NOT VALID

    Do not verify existing stored data for constraint validity.

    CASCADE

    Automatically drop objects that depend on the constraint, and in turn all objects that depend on those objects (see Section 5.13). @@ -69,7 +69,19 @@

    new_owner

    The user name of the new owner of the domain.

    new_schema

    The new schema for the domain.

    -

    Notes

    Currently, ALTER DOMAIN ADD CONSTRAINT, ALTER +

    Notes

    Although ALTER DOMAIN ADD CONSTRAINT attempts to verify + that existing stored data satisfies the new constraint, this check is not + bulletproof, because the command cannot see table rows that + are newly inserted or updated and not yet committed. If there is a hazard + that concurrent operations might insert bad data, the way to proceed is to + add the constraint using the NOT VALID option, commit + that command, wait until all transactions started before that commit have + finished, and then issue ALTER DOMAIN VALIDATE + CONSTRAINT to search for data violating the constraint. This + method is reliable because once the constraint is committed, all new + transactions are guaranteed to enforce it against new values of the domain + type. +

    Currently, ALTER DOMAIN ADD CONSTRAINT, ALTER DOMAIN VALIDATE CONSTRAINT, and ALTER DOMAIN SET NOT NULL will fail if the validated named domain or any derived domain is used within a composite-type column of any diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altereventtrigger.html postgresql-10-10.12/doc/src/sgml/html/sql-altereventtrigger.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altereventtrigger.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altereventtrigger.html 2020-02-10 22:31:51.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER — change the definition of an event trigger

    Synopsis

    ALTER EVENT TRIGGER name DISABLE
    +ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER

    ALTER EVENT TRIGGER — change the definition of an event trigger

    Synopsis

    ALTER EVENT TRIGGER name DISABLE
     ALTER EVENT TRIGGER name ENABLE [ REPLICA | ALWAYS ]
     ALTER EVENT TRIGGER name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
     ALTER EVENT TRIGGER name RENAME TO new_name

    Description

    ALTER EVENT TRIGGER changes properties of an diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterextension.html postgresql-10-10.12/doc/src/sgml/html/sql-alterextension.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alterextension.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterextension.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER EXTENSION

    ALTER EXTENSION

    ALTER EXTENSION — change the definition of an extension +ALTER EXTENSION

    ALTER EXTENSION

    ALTER EXTENSION — change the definition of an extension

    Synopsis

    ALTER EXTENSION name UPDATE [ TO new_version ]
     ALTER EXTENSION name SET SCHEMA new_schema
     ALTER EXTENSION name ADD member_object
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterforeigndatawrapper.html postgresql-10-10.12/doc/src/sgml/html/sql-alterforeigndatawrapper.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterforeigndatawrapper.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterforeigndatawrapper.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER — change the definition of a foreign-data wrapper

    Synopsis

    ALTER FOREIGN DATA WRAPPER name
    +ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER

    ALTER FOREIGN DATA WRAPPER — change the definition of a foreign-data wrapper

    Synopsis

    ALTER FOREIGN DATA WRAPPER name
         [ HANDLER handler_function | NO HANDLER ]
         [ VALIDATOR validator_function | NO VALIDATOR ]
         [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ]) ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterforeigntable.html postgresql-10-10.12/doc/src/sgml/html/sql-alterforeigntable.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterforeigntable.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterforeigntable.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE — change the definition of a foreign table

    Synopsis

    ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    +ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE

    ALTER FOREIGN TABLE — change the definition of a foreign table

    Synopsis

    ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
         action [, ... ]
     ALTER FOREIGN TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
         RENAME [ COLUMN ] column_name TO new_column_name
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterfunction.html postgresql-10-10.12/doc/src/sgml/html/sql-alterfunction.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterfunction.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterfunction.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER FUNCTION

    ALTER FUNCTION

    ALTER FUNCTION — change the definition of a function

    Synopsis

    ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
    +ALTER FUNCTION

    ALTER FUNCTION

    ALTER FUNCTION — change the definition of a function

    Synopsis

    ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
         action [ ... ] [ RESTRICT ]
     ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]
         RENAME TO new_name
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altergroup.html postgresql-10-10.12/doc/src/sgml/html/sql-altergroup.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-altergroup.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-altergroup.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER GROUP

    ALTER GROUP

    ALTER GROUP — change role name or membership

    Synopsis

    ALTER GROUP role_specification ADD USER user_name [, ... ]
    +ALTER GROUP

    ALTER GROUP

    ALTER GROUP — change role name or membership

    Synopsis

    ALTER GROUP role_specification ADD USER user_name [, ... ]
     ALTER GROUP role_specification DROP USER user_name [, ... ]
     
     where role_specification can be:
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterindex.html postgresql-10-10.12/doc/src/sgml/html/sql-alterindex.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterindex.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterindex.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER INDEX

    ALTER INDEX

    ALTER INDEX — change the definition of an index

    Synopsis

    ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
    +ALTER INDEX

    ALTER INDEX

    ALTER INDEX — change the definition of an index

    Synopsis

    ALTER INDEX [ IF EXISTS ] name RENAME TO new_name
     ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name
     ALTER INDEX name DEPENDS ON EXTENSION extension_name
     ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter = value [, ... ] )
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterlanguage.html postgresql-10-10.12/doc/src/sgml/html/sql-alterlanguage.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterlanguage.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterlanguage.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER LANGUAGE

    ALTER LANGUAGE

    ALTER LANGUAGE — change the definition of a procedural language

    Synopsis

    ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO new_name
    +ALTER LANGUAGE

    ALTER LANGUAGE

    ALTER LANGUAGE — change the definition of a procedural language

    Synopsis

    ALTER [ PROCEDURAL ] LANGUAGE name RENAME TO new_name
     ALTER [ PROCEDURAL ] LANGUAGE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

    Description

    ALTER LANGUAGE changes the definition of a procedural language. The only functionality is to rename the language or assign a new owner. You must be superuser or owner of the language to diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterlargeobject.html postgresql-10-10.12/doc/src/sgml/html/sql-alterlargeobject.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alterlargeobject.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterlargeobject.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER LARGE OBJECT

    ALTER LARGE OBJECT

    ALTER LARGE OBJECT — change the definition of a large object

    Synopsis

    ALTER LARGE OBJECT large_object_oid OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

    Description

    ALTER LARGE OBJECT changes the definition of a +ALTER LARGE OBJECT

    ALTER LARGE OBJECT

    ALTER LARGE OBJECT — change the definition of a large object

    Synopsis

    ALTER LARGE OBJECT large_object_oid OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

    Description

    ALTER LARGE OBJECT changes the definition of a large object.

    You must own the large object to use ALTER LARGE OBJECT. To alter the owner, you must also be a direct or indirect member of the new diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altermaterializedview.html postgresql-10-10.12/doc/src/sgml/html/sql-altermaterializedview.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altermaterializedview.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altermaterializedview.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW — change the definition of a materialized view

    Synopsis

    ALTER MATERIALIZED VIEW [ IF EXISTS ] name
    +ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW

    ALTER MATERIALIZED VIEW — change the definition of a materialized view

    Synopsis

    ALTER MATERIALIZED VIEW [ IF EXISTS ] name
         action [, ... ]
     ALTER MATERIALIZED VIEW name
         DEPENDS ON EXTENSION extension_name
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alteropclass.html postgresql-10-10.12/doc/src/sgml/html/sql-alteropclass.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alteropclass.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alteropclass.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS — change the definition of an operator class

    Synopsis

    ALTER OPERATOR CLASS name USING index_method
    +ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS

    ALTER OPERATOR CLASS — change the definition of an operator class

    Synopsis

    ALTER OPERATOR CLASS name USING index_method
         RENAME TO new_name
     
     ALTER OPERATOR CLASS name USING index_method
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alteroperator.html postgresql-10-10.12/doc/src/sgml/html/sql-alteroperator.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alteroperator.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alteroperator.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER OPERATOR

    ALTER OPERATOR

    ALTER OPERATOR — change the definition of an operator

    Synopsis

    ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } )
    +ALTER OPERATOR

    ALTER OPERATOR

    ALTER OPERATOR — change the definition of an operator

    Synopsis

    ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } )
         OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
     
     ALTER OPERATOR name ( { left_type | NONE } , { right_type | NONE } )
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alteropfamily.html postgresql-10-10.12/doc/src/sgml/html/sql-alteropfamily.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alteropfamily.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alteropfamily.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY — change the definition of an operator family

    Synopsis

    ALTER OPERATOR FAMILY name USING index_method ADD
    +ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY

    ALTER OPERATOR FAMILY — change the definition of an operator family

    Synopsis

    ALTER OPERATOR FAMILY name USING index_method ADD
       {  OPERATOR strategy_number operator_name ( op_type, op_type )
                   [ FOR SEARCH | FOR ORDER BY sort_family_name ]
        | FUNCTION support_number [ ( op_type [ , op_type ] ) ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterpolicy.html postgresql-10-10.12/doc/src/sgml/html/sql-alterpolicy.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterpolicy.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterpolicy.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER POLICY

    ALTER POLICY

    ALTER POLICY — change the definition of a row level security policy

    Synopsis

    ALTER POLICY name ON table_name RENAME TO new_name
    +ALTER POLICY

    ALTER POLICY

    ALTER POLICY — change the definition of a row level security policy

    Synopsis

    ALTER POLICY name ON table_name RENAME TO new_name
     
     ALTER POLICY name ON table_name
         [ TO { role_name | PUBLIC | CURRENT_USER | SESSION_USER } [, ...] ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterpublication.html postgresql-10-10.12/doc/src/sgml/html/sql-alterpublication.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterpublication.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterpublication.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER PUBLICATION

    ALTER PUBLICATION

    ALTER PUBLICATION — change the definition of a publication

    Synopsis

    ALTER PUBLICATION name ADD TABLE [ ONLY ] table_name [ * ] [, ...]
    +ALTER PUBLICATION

    ALTER PUBLICATION

    ALTER PUBLICATION — change the definition of a publication

    Synopsis

    ALTER PUBLICATION name ADD TABLE [ ONLY ] table_name [ * ] [, ...]
     ALTER PUBLICATION name SET TABLE [ ONLY ] table_name [ * ] [, ...]
     ALTER PUBLICATION name DROP TABLE [ ONLY ] table_name [ * ] [, ...]
     ALTER PUBLICATION name SET ( publication_parameter [= value] [, ... ] )
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterrole.html postgresql-10-10.12/doc/src/sgml/html/sql-alterrole.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterrole.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterrole.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER ROLE

    ALTER ROLE

    ALTER ROLE — change a database role

    Synopsis

    ALTER ROLE role_specification [ WITH ] option [ ... ]
    +ALTER ROLE

    ALTER ROLE

    ALTER ROLE — change a database role

    Synopsis

    ALTER ROLE role_specification [ WITH ] option [ ... ]
     
     where option can be:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterrule.html postgresql-10-10.12/doc/src/sgml/html/sql-alterrule.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterrule.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterrule.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER RULE

    ALTER RULE

    ALTER RULE — change the definition of a rule

    Synopsis

    ALTER RULE name ON table_name RENAME TO new_name

    Description

    ALTER RULE changes properties of an existing +ALTER RULE

    ALTER RULE

    ALTER RULE — change the definition of a rule

    Synopsis

    ALTER RULE name ON table_name RENAME TO new_name

    Description

    ALTER RULE changes properties of an existing rule. Currently, the only available action is to change the rule's name.

    To use ALTER RULE, you must own the table or view that the rule applies to. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterschema.html postgresql-10-10.12/doc/src/sgml/html/sql-alterschema.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alterschema.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterschema.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SCHEMA

    ALTER SCHEMA

    ALTER SCHEMA — change the definition of a schema

    Synopsis

    ALTER SCHEMA name RENAME TO new_name
    +ALTER SCHEMA

    ALTER SCHEMA

    ALTER SCHEMA — change the definition of a schema

    Synopsis

    ALTER SCHEMA name RENAME TO new_name
     ALTER SCHEMA name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }

    Description

    ALTER SCHEMA changes the definition of a schema.

    You must own the schema to use ALTER SCHEMA. To rename a schema you must also have the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altersequence.html postgresql-10-10.12/doc/src/sgml/html/sql-altersequence.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altersequence.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altersequence.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SEQUENCE

    ALTER SEQUENCE

    ALTER SEQUENCE — change the definition of a sequence generator +ALTER SEQUENCE

    ALTER SEQUENCE

    ALTER SEQUENCE — change the definition of a sequence generator

    Synopsis

    ALTER SEQUENCE [ IF EXISTS ] name
         [ AS data_type ]
         [ INCREMENT [ BY ] increment ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterserver.html postgresql-10-10.12/doc/src/sgml/html/sql-alterserver.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterserver.html	2019-08-05 21:30:07.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterserver.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER SERVER

    ALTER SERVER

    ALTER SERVER — change the definition of a foreign server

    Synopsis

    ALTER SERVER name [ VERSION 'new_version' ]
    +ALTER SERVER

    ALTER SERVER

    ALTER SERVER — change the definition of a foreign server

    Synopsis

    ALTER SERVER name [ VERSION 'new_version' ]
         [ OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) ]
     ALTER SERVER name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
     ALTER SERVER name RENAME TO new_name

    Description

    ALTER SERVER changes the definition of a foreign diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterstatistics.html postgresql-10-10.12/doc/src/sgml/html/sql-alterstatistics.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alterstatistics.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterstatistics.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER STATISTICS

    ALTER STATISTICS

    ALTER STATISTICS — change the definition of an extended statistics object +ALTER STATISTICS

    ALTER STATISTICS

    ALTER STATISTICS — change the definition of an extended statistics object

    Synopsis

    ALTER STATISTICS name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
     ALTER STATISTICS name RENAME TO new_name
     ALTER STATISTICS name SET SCHEMA new_schema

    Description

    ALTER STATISTICS changes the parameters of an existing diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altersubscription.html postgresql-10-10.12/doc/src/sgml/html/sql-altersubscription.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altersubscription.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altersubscription.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION — change the definition of a subscription

    Synopsis

    ALTER SUBSCRIPTION name CONNECTION 'conninfo'
    +ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION

    ALTER SUBSCRIPTION — change the definition of a subscription

    Synopsis

    ALTER SUBSCRIPTION name CONNECTION 'conninfo'
     ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...] [ WITH ( set_publication_option [= value] [, ... ] ) ]
     ALTER SUBSCRIPTION name REFRESH PUBLICATION [ WITH ( refresh_option [= value] [, ... ] ) ]
     ALTER SUBSCRIPTION name ENABLE
    @@ -41,7 +41,8 @@
     
           

    copy_data (boolean)

    Specifies whether the existing data in the publications that are being subscribed to should be copied once the replication starts. - The default is true. + The default is true. (Previously subscribed + tables are not copied.)

    ENABLE

    Enables the previously disabled subscription, starting the logical replication worker at the end of transaction. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altersystem.html postgresql-10-10.12/doc/src/sgml/html/sql-altersystem.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altersystem.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altersystem.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER SYSTEM

    ALTER SYSTEM

    ALTER SYSTEM — change a server configuration parameter

    Synopsis

    ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }
    +ALTER SYSTEM

    ALTER SYSTEM

    ALTER SYSTEM — change a server configuration parameter

    Synopsis

    ALTER SYSTEM SET configuration_parameter { TO | = } { value | 'value' | DEFAULT }
     
     ALTER SYSTEM RESET configuration_parameter
     ALTER SYSTEM RESET ALL

    Description

    ALTER SYSTEM is used for changing server configuration diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertable.html postgresql-10-10.12/doc/src/sgml/html/sql-altertable.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altertable.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertable.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TABLE

    ALTER TABLE

    ALTER TABLE — change the definition of a table

    Synopsis

    ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
    +ALTER TABLE

    ALTER TABLE

    ALTER TABLE — change the definition of a table

    Synopsis

    ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
         action [, ... ]
     ALTER TABLE [ IF EXISTS ] [ ONLY ] name [ * ]
         RENAME [ COLUMN ] column_name TO new_column_name
    @@ -184,16 +184,19 @@
           CREATE TABLE, plus the option NOT
           VALID, which is currently only allowed for foreign key
           and CHECK constraints.
    -      If the constraint is marked NOT VALID, the
    -      potentially-lengthy initial check to verify that all rows in the table
    -      satisfy the constraint is skipped.  The constraint will still be
    +     

    Normally, this form will cause a scan of the table to verify that all + existing rows in the table satisfy the new constraint. But if + the NOT VALID option is used, this + potentially-lengthy scan is skipped. The constraint will still be enforced against subsequent inserts or updates (that is, they'll fail unless there is a matching row in the referenced table, in the case - of foreign keys; and they'll fail unless the new row matches the - specified check constraints). But the + of foreign keys, or they'll fail unless the new row matches the + specified check condition). But the database will not assume that the constraint holds for all rows in the table, until it is validated by using the VALIDATE CONSTRAINT option. + See Notes below for more information + about using the NOT VALID option.

    ADD table_constraint_using_index

    This form adds a new PRIMARY KEY or UNIQUE constraint to a table based on an existing unique index. All the columns of the index will be included in the constraint. @@ -222,19 +225,12 @@ official constraint using this syntax. See the example below.

    ALTER CONSTRAINT

    This form alters the attributes of a constraint that was previously created. Currently only foreign key constraints may be altered. -

    VALIDATE CONSTRAINT

    This form validates a foreign key or check constraint that was previously created - as NOT VALID, by scanning the table to ensure there - are no rows for which the constraint is not satisfied. - Nothing happens if the constraint is already marked valid. -

    Validation can be a long process on larger tables. The value of separating - validation from initial creation is that you can defer validation to less - busy times, or can be used to give additional time to correct pre-existing - errors while preventing new errors. Note also that validation on its own - does not prevent normal write commands against the table while it runs. -

    Validation acquires only a SHARE UPDATE EXCLUSIVE lock - on the table being altered. If the constraint is a foreign key then - a ROW SHARE lock is also required on - the table referenced by the constraint. +

    VALIDATE CONSTRAINT

    This form validates a foreign key or check constraint that was + previously created as NOT VALID, by scanning the + table to ensure there are no rows for which the constraint is not + satisfied. Nothing happens if the constraint is already marked valid. + (See Notes below for an explanation of the + usefulness of this command.)

    DROP CONSTRAINT [ IF EXISTS ]

    This form drops the specified constraint on a table. If IF EXISTS is specified and the constraint does not exist, no error is thrown. In this case a notice is issued instead. @@ -332,9 +328,7 @@ affected.

    SHARE UPDATE EXCLUSIVE lock will be taken for fillfactor and autovacuum storage parameters, as well as the - following planner related parameters: - effective_io_concurrency, parallel_workers, seq_page_cost, - random_page_cost, n_distinct and n_distinct_inherited. + planner parameter parallel_workers.

    Note

    While CREATE TABLE allows OIDS to be specified in the WITH (storage_parameter) syntax, ALTER TABLE does not treat OIDS as a @@ -405,20 +399,21 @@ FOREIGN KEY constraints are not considered. If any of the CHECK constraints of the table being attached is marked NO INHERIT, the command will fail; - such a constraint must be recreated without the NO INHERIT - clause. + such constraints must be recreated without the + NO INHERIT clause.

    If the new partition is a regular table, a full table scan is performed - to check that no existing row in the table violates the partition - constraint. It is possible to avoid this scan by adding a valid - CHECK constraint to the table that would allow only - the rows satisfying the desired partition constraint before running this - command. It will be determined using such a constraint that the table - need not be scanned to validate the partition constraint. This does not - work, however, if any of the partition keys is an expression and the - partition does not accept NULL values. If attaching - a list partition that will not accept NULL values, - also add NOT NULL constraint to the partition key - column, unless it's an expression. + to check that existing rows in the table do not violate the partition + constraint. It is possible to avoid this scan by adding a valid + CHECK constraint to the table that allows only + rows satisfying the desired partition constraint before running this + command. The CHECK constraint will be used to + determine that the table need not be scanned to validate the partition + constraint. This does not work, however, if any of the partition keys + is an expression and the partition does not accept + NULL values. If attaching a list partition that will + not accept NULL values, also add + NOT NULL constraint to the partition key column, + unless it's an expression.

    If the new partition is a foreign table, nothing is done to verify that all the rows in the foreign table obey the partition constraint. (See the discussion in CREATE FOREIGN TABLE about @@ -491,7 +486,7 @@

    partition_name

    The name of the table to attach as a new partition or to detach from this table.

    partition_bound_spec

    The partition bound specification for a new partition. Refer to CREATE TABLE for more details on the syntax of the same. -

    Notes

    The key word COLUMN is noise and can be omitted. +

    Notes

    The key word COLUMN is noise and can be omitted.

    When a column is added with ADD COLUMN, all existing rows in the table are initialized with the column's default value (NULL if no DEFAULT clause is specified). @@ -517,6 +512,29 @@

    The main reason for providing the option to specify multiple changes in a single ALTER TABLE is that multiple table scans or rewrites can thereby be combined into a single pass over the table. +

    Scanning a large table to verify a new foreign key or check constraint + can take a long time, and other updates to the table are locked out + until the ALTER TABLE ADD CONSTRAINT command is + committed. The main purpose of the NOT VALID + constraint option is to reduce the impact of adding a constraint on + concurrent updates. With NOT VALID, + the ADD CONSTRAINT command does not scan the table + and can be committed immediately. After that, a VALIDATE + CONSTRAINT command can be issued to verify that existing rows + satisfy the constraint. The validation step does not need to lock out + concurrent updates, since it knows that other transactions will be + enforcing the constraint for rows that they insert or update; only + pre-existing rows need to be checked. Hence, validation acquires only + a SHARE UPDATE EXCLUSIVE lock on the table being + altered. (If the constraint is a foreign key then a ROW + SHARE lock is also required on the table referenced by the + constraint.) In addition to improving concurrency, it can be useful to + use NOT VALID and VALIDATE + CONSTRAINT in cases where the table is known to contain + pre-existing violations. Once the constraint is in place, no new + violations can be inserted, and the existing problems can be corrected + at leisure until VALIDATE CONSTRAINT finally + succeeds.

    The DROP COLUMN form does not physically remove the column, but simply makes it invisible to SQL operations. Subsequent insert and update operations in the table will store a null value for the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertablespace.html postgresql-10-10.12/doc/src/sgml/html/sql-altertablespace.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altertablespace.html 2019-08-05 21:30:07.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertablespace.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TABLESPACE

    ALTER TABLESPACE

    ALTER TABLESPACE — change the definition of a tablespace

    Synopsis

    ALTER TABLESPACE name RENAME TO new_name
    +ALTER TABLESPACE

    ALTER TABLESPACE

    ALTER TABLESPACE — change the definition of a tablespace

    Synopsis

    ALTER TABLESPACE name RENAME TO new_name
     ALTER TABLESPACE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
     ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] )
     ALTER TABLESPACE name RESET ( tablespace_option [, ... ] )

    Description

    ALTER TABLESPACE can be used to change the definition of diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertrigger.html postgresql-10-10.12/doc/src/sgml/html/sql-altertrigger.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altertrigger.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertrigger.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TRIGGER

    ALTER TRIGGER

    ALTER TRIGGER — change the definition of a trigger

    Synopsis

    ALTER TRIGGER name ON table_name RENAME TO new_name
    +ALTER TRIGGER

    ALTER TRIGGER

    ALTER TRIGGER — change the definition of a trigger

    Synopsis

    ALTER TRIGGER name ON table_name RENAME TO new_name
     ALTER TRIGGER name ON table_name DEPENDS ON EXTENSION extension_name

    Description

    ALTER TRIGGER changes properties of an existing trigger. The RENAME clause changes the name of the given trigger without otherwise changing the trigger diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertsconfig.html postgresql-10-10.12/doc/src/sgml/html/sql-altertsconfig.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altertsconfig.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertsconfig.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION — change the definition of a text search configuration

    Synopsis

    ALTER TEXT SEARCH CONFIGURATION name
    +ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION

    ALTER TEXT SEARCH CONFIGURATION — change the definition of a text search configuration

    Synopsis

    ALTER TEXT SEARCH CONFIGURATION name
         ADD MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ]
     ALTER TEXT SEARCH CONFIGURATION name
         ALTER MAPPING FOR token_type [, ... ] WITH dictionary_name [, ... ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertsdictionary.html postgresql-10-10.12/doc/src/sgml/html/sql-altertsdictionary.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-altertsdictionary.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertsdictionary.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY — change the definition of a text search dictionary

    Synopsis

    ALTER TEXT SEARCH DICTIONARY name (
    +ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY

    ALTER TEXT SEARCH DICTIONARY — change the definition of a text search dictionary

    Synopsis

    ALTER TEXT SEARCH DICTIONARY name (
         option [ = value ] [, ... ]
     )
     ALTER TEXT SEARCH DICTIONARY name RENAME TO new_name
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertsparser.html postgresql-10-10.12/doc/src/sgml/html/sql-altertsparser.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-altertsparser.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertsparser.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER — change the definition of a text search parser

    Synopsis

    ALTER TEXT SEARCH PARSER name RENAME TO new_name
    +ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER

    ALTER TEXT SEARCH PARSER — change the definition of a text search parser

    Synopsis

    ALTER TEXT SEARCH PARSER name RENAME TO new_name
     ALTER TEXT SEARCH PARSER name SET SCHEMA new_schema

    Description

    ALTER TEXT SEARCH PARSER changes the definition of a text search parser. Currently, the only supported functionality is to change the parser's name. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertstemplate.html postgresql-10-10.12/doc/src/sgml/html/sql-altertstemplate.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altertstemplate.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertstemplate.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE — change the definition of a text search template

    Synopsis

    ALTER TEXT SEARCH TEMPLATE name RENAME TO new_name
    +ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE

    ALTER TEXT SEARCH TEMPLATE — change the definition of a text search template

    Synopsis

    ALTER TEXT SEARCH TEMPLATE name RENAME TO new_name
     ALTER TEXT SEARCH TEMPLATE name SET SCHEMA new_schema

    Description

    ALTER TEXT SEARCH TEMPLATE changes the definition of a text search template. Currently, the only supported functionality is to change the template's name. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-altertype.html postgresql-10-10.12/doc/src/sgml/html/sql-altertype.html --- postgresql-10-10.10/doc/src/sgml/html/sql-altertype.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-altertype.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER TYPE

    ALTER TYPE

    ALTER TYPE — change the definition of a type +ALTER TYPE

    ALTER TYPE

    ALTER TYPE — change the definition of a type

    Synopsis

    ALTER TYPE name action [, ... ]
     ALTER TYPE name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
     ALTER TYPE name RENAME ATTRIBUTE attribute_name TO new_attribute_name [ CASCADE | RESTRICT ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alteruser.html postgresql-10-10.12/doc/src/sgml/html/sql-alteruser.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alteruser.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alteruser.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER USER

    ALTER USER

    ALTER USER — change a database role

    Synopsis

    ALTER USER role_specification [ WITH ] option [ ... ]
    +ALTER USER

    ALTER USER

    ALTER USER — change a database role

    Synopsis

    ALTER USER role_specification [ WITH ] option [ ... ]
     
     where option can be:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterusermapping.html postgresql-10-10.12/doc/src/sgml/html/sql-alterusermapping.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-alterusermapping.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterusermapping.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ALTER USER MAPPING

    ALTER USER MAPPING

    ALTER USER MAPPING — change the definition of a user mapping

    Synopsis

    ALTER USER MAPPING FOR { user_name | USER | CURRENT_USER | SESSION_USER | PUBLIC }
    +ALTER USER MAPPING

    ALTER USER MAPPING

    ALTER USER MAPPING — change the definition of a user mapping

    Synopsis

    ALTER USER MAPPING FOR { user_name | USER | CURRENT_USER | SESSION_USER | PUBLIC }
         SERVER server_name
         OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] )

    Description

    ALTER USER MAPPING changes the definition of a user mapping. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-alterview.html postgresql-10-10.12/doc/src/sgml/html/sql-alterview.html --- postgresql-10-10.10/doc/src/sgml/html/sql-alterview.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-alterview.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -ALTER VIEW

    ALTER VIEW

    ALTER VIEW — change the definition of a view

    Synopsis

    ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
    +ALTER VIEW

    ALTER VIEW

    ALTER VIEW — change the definition of a view

    Synopsis

    ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name SET DEFAULT expression
     ALTER VIEW [ IF EXISTS ] name ALTER [ COLUMN ] column_name DROP DEFAULT
     ALTER VIEW [ IF EXISTS ] name OWNER TO { new_owner | CURRENT_USER | SESSION_USER }
     ALTER VIEW [ IF EXISTS ] name RENAME TO new_name
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-analyze.html postgresql-10-10.12/doc/src/sgml/html/sql-analyze.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-analyze.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-analyze.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ANALYZE

    ANALYZE

    ANALYZE — collect statistics about a database

    Synopsis

    ANALYZE [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]

    Description

    ANALYZE collects statistics about the contents +ANALYZE

    ANALYZE

    ANALYZE — collect statistics about a database

    Synopsis

    ANALYZE [ VERBOSE ] [ table_name [ ( column_name [, ...] ) ] ]

    Description

    ANALYZE collects statistics about the contents of tables in the database, and stores the results in the pg_statistic system catalog. Subsequently, the query planner uses these statistics to help determine the most efficient execution plans for @@ -19,7 +19,14 @@

    Outputs

    When VERBOSE is specified, ANALYZE emits progress messages to indicate which table is currently being processed. Various statistics about the tables are printed as well. -

    Notes

    Foreign tables are analyzed only when explicitly selected. Not all +

    Notes

    To analyze a table, one must ordinarily be the table's owner or a + superuser. However, database owners are allowed to + analyze all tables in their databases, except shared catalogs. + (The restriction for shared catalogs means that a true database-wide + ANALYZE can only be performed by a superuser.) + ANALYZE will skip over any tables that the calling user + does not have permission to analyze. +

    Foreign tables are analyzed only when explicitly selected. Not all foreign data wrappers support ANALYZE. If the table's wrapper does not support ANALYZE, the command prints a warning and does nothing. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-begin.html postgresql-10-10.12/doc/src/sgml/html/sql-begin.html --- postgresql-10-10.10/doc/src/sgml/html/sql-begin.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-begin.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -BEGIN

    BEGIN

    BEGIN — start a transaction block

    Synopsis

    BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
    +BEGIN

    BEGIN

    BEGIN — start a transaction block

    Synopsis

    BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
     
     where transaction_mode is one of:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-checkpoint.html postgresql-10-10.12/doc/src/sgml/html/sql-checkpoint.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-checkpoint.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-checkpoint.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CHECKPOINT

    CHECKPOINT

    CHECKPOINT — force a write-ahead log checkpoint

    Synopsis

    CHECKPOINT

    Description

    A checkpoint is a point in the write-ahead log sequence at which +CHECKPOINT

    CHECKPOINT

    CHECKPOINT — force a write-ahead log checkpoint

    Synopsis

    CHECKPOINT

    Description

    A checkpoint is a point in the write-ahead log sequence at which all data files have been updated to reflect the information in the log. All data files will be flushed to disk. Refer to Section 30.4 for more details about what happens diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-close.html postgresql-10-10.12/doc/src/sgml/html/sql-close.html --- postgresql-10-10.10/doc/src/sgml/html/sql-close.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-close.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -CLOSE

    CLOSE

    CLOSE — close a cursor

    Synopsis

    CLOSE { name | ALL }

    Description

    CLOSE frees the resources associated with an open cursor. +CLOSE

    CLOSE

    CLOSE — close a cursor

    Synopsis

    CLOSE { name | ALL }

    Description

    CLOSE frees the resources associated with an open cursor. After the cursor is closed, no subsequent operations are allowed on it. A cursor should be closed when it is no longer needed. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-cluster.html postgresql-10-10.12/doc/src/sgml/html/sql-cluster.html --- postgresql-10-10.10/doc/src/sgml/html/sql-cluster.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-cluster.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -CLUSTER

    CLUSTER

    CLUSTER — cluster a table according to an index

    Synopsis

    CLUSTER [VERBOSE] table_name [ USING index_name ]
    +CLUSTER

    CLUSTER

    CLUSTER — cluster a table according to an index

    Synopsis

    CLUSTER [VERBOSE] table_name [ USING index_name ]
     CLUSTER [VERBOSE]

    Description

    CLUSTER instructs PostgreSQL to cluster the table specified by table_name diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-commands.html postgresql-10-10.12/doc/src/sgml/html/sql-commands.html --- postgresql-10-10.10/doc/src/sgml/html/sql-commands.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-commands.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -SQL Commands

    SQL Commands


    This part contains reference information for the +SQL Commands

    SQL Commands


    This part contains reference information for the SQL commands supported by PostgreSQL. By SQL the language in general is meant; information about the standards diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-comment.html postgresql-10-10.12/doc/src/sgml/html/sql-comment.html --- postgresql-10-10.10/doc/src/sgml/html/sql-comment.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-comment.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -COMMENT

    COMMENT

    COMMENT — define or change the comment of an object

    Synopsis

    COMMENT ON
    +COMMENT

    COMMENT

    COMMENT — define or change the comment of an object

    Synopsis

    COMMENT ON
     {
       ACCESS METHOD object_name |
       AGGREGATE aggregate_name ( aggregate_signature ) |
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-commit.html postgresql-10-10.12/doc/src/sgml/html/sql-commit.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-commit.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-commit.html	2020-02-10 22:31:52.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -COMMIT

    COMMIT

    COMMIT — commit the current transaction

    Synopsis

    COMMIT [ WORK | TRANSACTION ]

    Description

    COMMIT commits the current transaction. All +COMMIT

    COMMIT

    COMMIT — commit the current transaction

    Synopsis

    COMMIT [ WORK | TRANSACTION ]

    Description

    COMMIT commits the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs.

    Parameters

    WORK
    TRANSACTION

    Optional key words. They have no effect. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-commit-prepared.html postgresql-10-10.12/doc/src/sgml/html/sql-commit-prepared.html --- postgresql-10-10.10/doc/src/sgml/html/sql-commit-prepared.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-commit-prepared.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -COMMIT PREPARED

    COMMIT PREPARED

    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit

    Synopsis

    COMMIT PREPARED transaction_id

    Description

    COMMIT PREPARED commits a transaction that is in +COMMIT PREPARED

    COMMIT PREPARED

    COMMIT PREPARED — commit a transaction that was earlier prepared for two-phase commit

    Synopsis

    COMMIT PREPARED transaction_id

    Description

    COMMIT PREPARED commits a transaction that is in prepared state.

    Parameters

    transaction_id

    The transaction identifier of the transaction that is to be committed. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-copy.html postgresql-10-10.12/doc/src/sgml/html/sql-copy.html --- postgresql-10-10.10/doc/src/sgml/html/sql-copy.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-copy.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -COPY

    COPY

    COPY — copy data between a file and a table

    Synopsis

    COPY table_name [ ( column_name [, ...] ) ]
    +COPY

    COPY

    COPY — copy data between a file and a table

    Synopsis

    COPY table_name [ ( column_name [, ...] ) ]
         FROM { 'filename' | PROGRAM 'command' | STDIN }
         [ [ WITH ] ( option [, ...] ) ]
     
    @@ -27,11 +27,11 @@
        data from a file to a table (appending the data to
        whatever is in the table already).  COPY TO
        can also copy the results of a SELECT query.
    -  

    If a list of columns is specified, COPY will - only copy the data in the specified columns to or from the file. - If there are any columns in the table that are not in the column list, - COPY FROM will insert the default values for - those columns. +

    If a column list is specified, COPY TO copies only + the data in the specified columns to the file. For COPY + FROM, each field in the file is inserted, in order, into the + specified column. Table columns not specified in the COPY + FROM column list will receive their default values.

    COPY with a file name instructs the PostgreSQL server to directly read from or write to a file. The file must be accessible by the @@ -473,11 +473,11 @@ [ [ WITH ] [ BINARY ] [ OIDS ] - [ DELIMITER [ AS ] 'delimiter' ] + [ DELIMITER [ AS ] 'delimiter_character' ] [ NULL [ AS ] 'null string' ] [ CSV [ HEADER ] - [ QUOTE [ AS ] 'quote' ] - [ ESCAPE [ AS ] 'escape' ] + [ QUOTE [ AS ] 'quote_character' ] + [ ESCAPE [ AS ] 'escape_character' ] [ FORCE NOT NULL column_name [, ...] ] ] ] COPY { table_name [ ( column_name [, ...] ) ] | ( query ) } @@ -485,11 +485,11 @@ [ [ WITH ] [ BINARY ] [ OIDS ] - [ DELIMITER [ AS ] 'delimiter' ] + [ DELIMITER [ AS ] 'delimiter_character' ] [ NULL [ AS ] 'null string' ] [ CSV [ HEADER ] - [ QUOTE [ AS ] 'quote' ] - [ ESCAPE [ AS ] 'escape' ] + [ QUOTE [ AS ] 'quote_character' ] + [ ESCAPE [ AS ] 'escape_character' ] [ FORCE QUOTE { column_name [, ...] | * } ] ] ]

    Note that in this syntax, BINARY and CSV are @@ -500,10 +500,10 @@

    COPY [ BINARY ] table_name [ WITH OIDS ]
         FROM { 'filename' | STDIN }
    -    [ [USING] DELIMITERS 'delimiter' ]
    -    [ WITH NULL AS 'null string' ]
    +    [ [USING] DELIMITERS 'delimiter_character' ]
    +    [ WITH NULL AS 'null_string' ]
     
     COPY [ BINARY ] table_name [ WITH OIDS ]
         TO { 'filename' | STDOUT }
    -    [ [USING] DELIMITERS 'delimiter' ]
    -    [ WITH NULL AS 'null string' ]
    \ No newline at end of file + [ [USING] DELIMITERS 'delimiter_character' ] + [ WITH NULL AS 'null_string' ]
    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-create-access-method.html postgresql-10-10.12/doc/src/sgml/html/sql-create-access-method.html --- postgresql-10-10.10/doc/src/sgml/html/sql-create-access-method.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-create-access-method.html 2020-02-10 22:31:52.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE ACCESS METHOD

    CREATE ACCESS METHOD

    CREATE ACCESS METHOD — define a new access method

    Synopsis

    CREATE ACCESS METHOD name
    +CREATE ACCESS METHOD

    CREATE ACCESS METHOD

    CREATE ACCESS METHOD — define a new access method

    Synopsis

    CREATE ACCESS METHOD name
         TYPE access_method_type
         HANDLER handler_function

    Description

    CREATE ACCESS METHOD creates a new access method.

    The access method name must be unique within the database. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createaggregate.html postgresql-10-10.12/doc/src/sgml/html/sql-createaggregate.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createaggregate.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createaggregate.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE AGGREGATE

    CREATE AGGREGATE

    CREATE AGGREGATE — define a new aggregate function

    Synopsis

    CREATE AGGREGATE name ( [ argmode ] [ argname ] arg_data_type [ , ... ] ) (
    +CREATE AGGREGATE

    CREATE AGGREGATE

    CREATE AGGREGATE — define a new aggregate function

    Synopsis

    CREATE AGGREGATE name ( [ argmode ] [ argname ] arg_data_type [ , ... ] ) (
         SFUNC = sfunc,
         STYPE = state_data_type
         [ , SSPACE = state_data_size ]
    @@ -134,7 +134,7 @@
        as described in Section 37.10.1.  This requires
        specifying the MSFUNC, MINVFUNC,
        and MSTYPE parameters, and optionally
    -   the MSPACE, MFINALFUNC, MFINALFUNC_EXTRA,
    +   the MSSPACE, MFINALFUNC, MFINALFUNC_EXTRA,
        and MINITCOND parameters.  Except for MINVFUNC,
        these parameters work like the corresponding simple-aggregate parameters
        without M; they define a separate implementation of the
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createcast.html postgresql-10-10.12/doc/src/sgml/html/sql-createcast.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createcast.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createcast.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE CAST

    CREATE CAST

    CREATE CAST — define a new cast

    Synopsis

    CREATE CAST (source_type AS target_type)
    +CREATE CAST

    CREATE CAST

    CREATE CAST — define a new cast

    Synopsis

    CREATE CAST (source_type AS target_type)
         WITH FUNCTION function_name [ (argument_type [, ...]) ]
         [ AS ASSIGNMENT | AS IMPLICIT ]
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createcollation.html postgresql-10-10.12/doc/src/sgml/html/sql-createcollation.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createcollation.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createcollation.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE COLLATION

    CREATE COLLATION

    CREATE COLLATION — define a new collation

    Synopsis

    CREATE COLLATION [ IF NOT EXISTS ] name (
    +CREATE COLLATION

    CREATE COLLATION

    CREATE COLLATION — define a new collation

    Synopsis

    CREATE COLLATION [ IF NOT EXISTS ] name (
         [ LOCALE = locale, ]
         [ LC_COLLATE = lc_collate, ]
         [ LC_CTYPE = lc_ctype, ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createconversion.html postgresql-10-10.12/doc/src/sgml/html/sql-createconversion.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createconversion.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createconversion.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE CONVERSION

    CREATE CONVERSION

    CREATE CONVERSION — define a new encoding conversion

    Synopsis

    CREATE [ DEFAULT ] CONVERSION name
    +CREATE CONVERSION

    CREATE CONVERSION

    CREATE CONVERSION — define a new encoding conversion

    Synopsis

    CREATE [ DEFAULT ] CONVERSION name
         FOR source_encoding TO dest_encoding FROM function_name

    Description

    CREATE CONVERSION defines a new conversion between character set encodings. Also, conversions that are marked DEFAULT can be used for automatic encoding diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createdatabase.html postgresql-10-10.12/doc/src/sgml/html/sql-createdatabase.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createdatabase.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createdatabase.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE DATABASE

    CREATE DATABASE

    CREATE DATABASE — create a new database

    Synopsis

    CREATE DATABASE name
    +CREATE DATABASE

    CREATE DATABASE

    CREATE DATABASE — create a new database

    Synopsis

    CREATE DATABASE name
         [ [ WITH ] [ OWNER [=] user_name ]
                [ TEMPLATE [=] template ]
                [ ENCODING [=] encoding ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createdomain.html postgresql-10-10.12/doc/src/sgml/html/sql-createdomain.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createdomain.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createdomain.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE DOMAIN

    CREATE DOMAIN

    CREATE DOMAIN — define a new domain

    Synopsis

    CREATE DOMAIN name [ AS ] data_type
    +CREATE DOMAIN

    CREATE DOMAIN

    CREATE DOMAIN — define a new domain

    Synopsis

    CREATE DOMAIN name [ AS ] data_type
         [ COLLATE collation ]
         [ DEFAULT expression ]
         [ constraint [ ... ] ]
    @@ -80,6 +80,24 @@
        therefore is to design a domain's constraints so that a null value is allowed,
        and then to apply column NOT NULL constraints to columns of
        the domain type as needed, rather than directly to the domain type.
    +  

    PostgreSQL assumes that + CHECK constraints' conditions are immutable, that is, + they will always give the same result for the same input value. This + assumption is what justifies examining CHECK + constraints only when a value is first converted to be of a domain type, + and not at other times. (This is essentially the same as the treatment + of table CHECK constraints, as described in + Section 5.3.1.) +

    An example of a common way to break this assumption is to reference a + user-defined function in a CHECK expression, and then + change the behavior of that + function. PostgreSQL does not disallow that, + but it will not notice if there are stored values of the domain type that + now violate the CHECK constraint. That would cause a + subsequent database dump and reload to fail. The recommended way to + handle such a change is to drop the constraint (using ALTER + DOMAIN), adjust the function definition, and re-add the + constraint, thereby rechecking it against stored data.

    Examples

    This example creates the us_postal_code data type and then uses the type in a table definition. A regular expression test is used to verify that the value looks like a valid US postal code: diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createeventtrigger.html postgresql-10-10.12/doc/src/sgml/html/sql-createeventtrigger.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createeventtrigger.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createeventtrigger.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER — define a new event trigger

    Synopsis

    CREATE EVENT TRIGGER name
    +CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER

    CREATE EVENT TRIGGER — define a new event trigger

    Synopsis

    CREATE EVENT TRIGGER name
         ON event
         [ WHEN filter_variable IN (filter_value [, ... ]) [ AND ... ] ]
         EXECUTE PROCEDURE function_name()

    Description

    CREATE EVENT TRIGGER creates a new event trigger. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createextension.html postgresql-10-10.12/doc/src/sgml/html/sql-createextension.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createextension.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createextension.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE EXTENSION

    CREATE EXTENSION

    CREATE EXTENSION — install an extension

    Synopsis

    CREATE EXTENSION [ IF NOT EXISTS ] extension_name
    +CREATE EXTENSION

    CREATE EXTENSION

    CREATE EXTENSION — install an extension

    Synopsis

    CREATE EXTENSION [ IF NOT EXISTS ] extension_name
         [ WITH ] [ SCHEMA schema_name ]
                  [ VERSION version ]
                  [ FROM old_version ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createforeigndatawrapper.html postgresql-10-10.12/doc/src/sgml/html/sql-createforeigndatawrapper.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createforeigndatawrapper.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createforeigndatawrapper.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper

    Synopsis

    CREATE FOREIGN DATA WRAPPER name
    +CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER

    CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper

    Synopsis

    CREATE FOREIGN DATA WRAPPER name
         [ HANDLER handler_function | NO HANDLER ]
         [ VALIDATOR validator_function | NO VALIDATOR ]
         [ OPTIONS ( option 'value' [, ... ] ) ]

    Description

    CREATE FOREIGN DATA WRAPPER creates a new diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createforeigntable.html postgresql-10-10.12/doc/src/sgml/html/sql-createforeigntable.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createforeigntable.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createforeigntable.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE — define a new foreign table

    Synopsis

    CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
    +CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE

    CREATE FOREIGN TABLE — define a new foreign table

    Synopsis

    CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name ( [
       { column_name data_type [ OPTIONS ( option 'value' [, ... ] ) ] [ COLLATE collation ] [ column_constraint [ ... ] ]
         | table_constraint }
         [, ... ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createfunction.html postgresql-10-10.12/doc/src/sgml/html/sql-createfunction.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createfunction.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createfunction.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE FUNCTION

    CREATE FUNCTION

    CREATE FUNCTION — define a new function

    Synopsis

    CREATE [ OR REPLACE ] FUNCTION
    +CREATE FUNCTION

    CREATE FUNCTION

    CREATE FUNCTION — define a new function

    Synopsis

    CREATE [ OR REPLACE ] FUNCTION
         name ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
         [ RETURNS rettype
           | RETURNS TABLE ( column_name column_type [, ...] ) ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-creategroup.html postgresql-10-10.12/doc/src/sgml/html/sql-creategroup.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-creategroup.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-creategroup.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE GROUP

    CREATE GROUP

    CREATE GROUP — define a new database role

    Synopsis

    CREATE GROUP name [ [ WITH ] option [ ... ] ]
    +CREATE GROUP

    CREATE GROUP

    CREATE GROUP — define a new database role

    Synopsis

    CREATE GROUP name [ [ WITH ] option [ ... ] ]
     
     where option can be:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createindex.html postgresql-10-10.12/doc/src/sgml/html/sql-createindex.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createindex.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createindex.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE INDEX

    CREATE INDEX

    CREATE INDEX — define a new index

    Synopsis

    CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON table_name [ USING method ]
    +CREATE INDEX

    CREATE INDEX

    CREATE INDEX — define a new index

    Synopsis

    CREATE [ UNIQUE ] INDEX [ CONCURRENTLY ] [ [ IF NOT EXISTS ] name ] ON table_name [ USING method ]
         ( { column_name | ( expression ) } [ COLLATE collation ] [ opclass ] [ ASC | DESC ] [ NULLS { FIRST | LAST } ] [, ...] )
         [ WITH ( storage_parameter = value [, ... ] ) ]
         [ TABLESPACE tablespace_name ]
    @@ -54,6 +54,9 @@
             locks out writes (but not reads) on the table until it's done.
             There are several caveats to be aware of when using this option
             — see Building Indexes Concurrently.
    +       

    For temporary tables, CREATE INDEX is always + non-concurrent, as no other session can access them, and + non-concurrent index creation is cheaper.

    IF NOT EXISTS

    Do not throw an error if a relation with the same name already exists. A notice is issued in this case. Note that there is no guarantee that the existing index is anything like the one that would have been created. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createlanguage.html postgresql-10-10.12/doc/src/sgml/html/sql-createlanguage.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createlanguage.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createlanguage.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE LANGUAGE

    CREATE LANGUAGE

    CREATE LANGUAGE — define a new procedural language

    Synopsis

    CREATE [ OR REPLACE ] [ PROCEDURAL ] LANGUAGE name
    +CREATE LANGUAGE

    CREATE LANGUAGE

    CREATE LANGUAGE — define a new procedural language

    Synopsis

    CREATE [ OR REPLACE ] [ PROCEDURAL ] LANGUAGE name
     CREATE [ OR REPLACE ] [ TRUSTED ] [ PROCEDURAL ] LANGUAGE name
         HANDLER call_handler [ INLINE inline_handler ] [ VALIDATOR valfunction ]

    Description

    CREATE LANGUAGE registers a new procedural language with a PostgreSQL diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-creatematerializedview.html postgresql-10-10.12/doc/src/sgml/html/sql-creatematerializedview.html --- postgresql-10-10.10/doc/src/sgml/html/sql-creatematerializedview.html 2019-08-05 21:30:08.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-creatematerializedview.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW — define a new materialized view

    Synopsis

    CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
    +CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW

    CREATE MATERIALIZED VIEW — define a new materialized view

    Synopsis

    CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name
         [ (column_name [, ...] ) ]
         [ WITH ( storage_parameter [= value] [, ... ] ) ]
         [ TABLESPACE tablespace_name ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createopclass.html postgresql-10-10.12/doc/src/sgml/html/sql-createopclass.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createopclass.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createopclass.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS — define a new operator class

    Synopsis

    CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type
    +CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS

    CREATE OPERATOR CLASS — define a new operator class

    Synopsis

    CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type
       USING index_method [ FAMILY family_name ] AS
       {  OPERATOR strategy_number operator_name [ ( op_type, op_type ) ] [ FOR SEARCH | FOR ORDER BY sort_family_name ]
        | FUNCTION support_number [ ( op_type [ , op_type ] ) ] function_name ( argument_type [, ...] )
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createoperator.html postgresql-10-10.12/doc/src/sgml/html/sql-createoperator.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createoperator.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createoperator.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE OPERATOR

    CREATE OPERATOR

    CREATE OPERATOR — define a new operator

    Synopsis

    CREATE OPERATOR name (
    +CREATE OPERATOR

    CREATE OPERATOR

    CREATE OPERATOR — define a new operator

    Synopsis

    CREATE OPERATOR name (
         PROCEDURE = function_name
         [, LEFTARG = left_type ] [, RIGHTARG = right_type ]
         [, COMMUTATOR = com_op ] [, NEGATOR = neg_op ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createopfamily.html postgresql-10-10.12/doc/src/sgml/html/sql-createopfamily.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createopfamily.html	2019-08-05 21:30:08.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createopfamily.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY — define a new operator family

    Synopsis

    CREATE OPERATOR FAMILY name USING index_method

    Description

    CREATE OPERATOR FAMILY creates a new operator family. +CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY

    CREATE OPERATOR FAMILY — define a new operator family

    Synopsis

    CREATE OPERATOR FAMILY name USING index_method

    Description

    CREATE OPERATOR FAMILY creates a new operator family. An operator family defines a collection of related operator classes, and perhaps some additional operators and support functions that are compatible with these operator classes but not essential for the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createpolicy.html postgresql-10-10.12/doc/src/sgml/html/sql-createpolicy.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createpolicy.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createpolicy.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE POLICY

    CREATE POLICY

    CREATE POLICY — define a new row level security policy for a table

    Synopsis

    CREATE POLICY name ON table_name
    +CREATE POLICY

    CREATE POLICY

    CREATE POLICY — define a new row level security policy for a table

    Synopsis

    CREATE POLICY name ON table_name
         [ AS { PERMISSIVE | RESTRICTIVE } ]
         [ FOR { ALL | SELECT | INSERT | UPDATE | DELETE } ]
         [ TO { role_name | PUBLIC | CURRENT_USER | SESSION_USER } [, ...] ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createpublication.html postgresql-10-10.12/doc/src/sgml/html/sql-createpublication.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createpublication.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createpublication.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE PUBLICATION

    CREATE PUBLICATION

    CREATE PUBLICATION — define a new publication

    Synopsis

    CREATE PUBLICATION name
    +CREATE PUBLICATION

    CREATE PUBLICATION

    CREATE PUBLICATION — define a new publication

    Synopsis

    CREATE PUBLICATION name
         [ FOR TABLE [ ONLY ] table_name [ * ] [, ...]
           | FOR ALL TABLES ]
         [ WITH ( publication_parameter [= value] [, ... ] ) ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createrole.html postgresql-10-10.12/doc/src/sgml/html/sql-createrole.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createrole.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createrole.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE ROLE

    CREATE ROLE

    CREATE ROLE — define a new database role

    Synopsis

    CREATE ROLE name [ [ WITH ] option [ ... ] ]
    +CREATE ROLE

    CREATE ROLE

    CREATE ROLE — define a new database role

    Synopsis

    CREATE ROLE name [ [ WITH ] option [ ... ] ]
     
     where option can be:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createrule.html postgresql-10-10.12/doc/src/sgml/html/sql-createrule.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createrule.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createrule.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE RULE

    CREATE RULE

    CREATE RULE — define a new rewrite rule

    Synopsis

    CREATE [ OR REPLACE ] RULE name AS ON event
    +CREATE RULE

    CREATE RULE

    CREATE RULE — define a new rewrite rule

    Synopsis

    CREATE [ OR REPLACE ] RULE name AS ON event
         TO table_name [ WHERE condition ]
         DO [ ALSO | INSTEAD ] { NOTHING | command | ( command ; command ... ) }
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createschema.html postgresql-10-10.12/doc/src/sgml/html/sql-createschema.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createschema.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createschema.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE SCHEMA

    CREATE SCHEMA

    CREATE SCHEMA — define a new schema

    Synopsis

    CREATE SCHEMA schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ]
    +CREATE SCHEMA

    CREATE SCHEMA

    CREATE SCHEMA — define a new schema

    Synopsis

    CREATE SCHEMA schema_name [ AUTHORIZATION role_specification ] [ schema_element [ ... ] ]
     CREATE SCHEMA AUTHORIZATION role_specification [ schema_element [ ... ] ]
     CREATE SCHEMA IF NOT EXISTS schema_name [ AUTHORIZATION role_specification ]
     CREATE SCHEMA IF NOT EXISTS AUTHORIZATION role_specification
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createsequence.html postgresql-10-10.12/doc/src/sgml/html/sql-createsequence.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createsequence.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createsequence.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE SEQUENCE

    CREATE SEQUENCE

    CREATE SEQUENCE — define a new sequence generator

    Synopsis

    CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] name
    +CREATE SEQUENCE

    CREATE SEQUENCE

    CREATE SEQUENCE — define a new sequence generator

    Synopsis

    CREATE [ TEMPORARY | TEMP ] SEQUENCE [ IF NOT EXISTS ] name
         [ AS data_type ]
         [ INCREMENT [ BY ] increment ]
         [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createserver.html postgresql-10-10.12/doc/src/sgml/html/sql-createserver.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createserver.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createserver.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE SERVER

    CREATE SERVER

    CREATE SERVER — define a new foreign server

    Synopsis

    CREATE SERVER [IF NOT EXISTS] server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ]
    +CREATE SERVER

    CREATE SERVER

    CREATE SERVER — define a new foreign server

    Synopsis

    CREATE SERVER [IF NOT EXISTS] server_name [ TYPE 'server_type' ] [ VERSION 'server_version' ]
         FOREIGN DATA WRAPPER fdw_name
         [ OPTIONS ( option 'value' [, ... ] ) ]

    Description

    CREATE SERVER defines a new foreign server. The user who defines the server becomes its owner. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createstatistics.html postgresql-10-10.12/doc/src/sgml/html/sql-createstatistics.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createstatistics.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createstatistics.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE STATISTICS

    CREATE STATISTICS

    CREATE STATISTICS — define extended statistics

    Synopsis

    CREATE STATISTICS [ IF NOT EXISTS ] statistics_name
    +CREATE STATISTICS

    CREATE STATISTICS

    CREATE STATISTICS — define extended statistics

    Synopsis

    CREATE STATISTICS [ IF NOT EXISTS ] statistics_name
         [ ( statistics_kind [, ... ] ) ]
         ON column_name, column_name [, ...]
         FROM table_name

    Description

    CREATE STATISTICS will create a new extended statistics diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createsubscription.html postgresql-10-10.12/doc/src/sgml/html/sql-createsubscription.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createsubscription.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createsubscription.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION — define a new subscription

    Synopsis

    CREATE SUBSCRIPTION subscription_name
    +CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION

    CREATE SUBSCRIPTION — define a new subscription

    Synopsis

    CREATE SUBSCRIPTION subscription_name
         CONNECTION 'conninfo'
         PUBLICATION publication_name [, ...]
         [ WITH ( subscription_parameter [= value] [, ... ] ) ]

    Description

    CREATE SUBSCRIPTION adds a new subscription for the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtableas.html postgresql-10-10.12/doc/src/sgml/html/sql-createtableas.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createtableas.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtableas.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TABLE AS

    CREATE TABLE AS

    CREATE TABLE AS — define a new table from the results of a query

    Synopsis

    CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
    +CREATE TABLE AS

    CREATE TABLE AS

    CREATE TABLE AS — define a new table from the results of a query

    Synopsis

    CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name
         [ (column_name [, ...] ) ]
         [ WITH ( storage_parameter [= value] [, ... ] ) | WITH OIDS | WITHOUT OIDS ]
         [ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtable.html postgresql-10-10.12/doc/src/sgml/html/sql-createtable.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createtable.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtable.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE TABLE

    CREATE TABLE

    CREATE TABLE — define a new table

    Synopsis

    CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
    +CREATE TABLE

    CREATE TABLE

    CREATE TABLE — define a new table

    Synopsis

    CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } | UNLOGGED ] TABLE [ IF NOT EXISTS ] table_name ( [
       { column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]
         | table_constraint
         | LIKE source_table [ like_option ... ] }
    @@ -217,7 +217,8 @@
           additional CHECK constraints; additional constraints with
           the same name and condition as in the parent will be merged with the
           parent constraint.  Defaults may be specified separately for each
    -      partition.
    +      partition. But note that a partition's default value is not applied
    +      when inserting a tuple through a partitioned table.
          

    Rows inserted into a partitioned table will be automatically routed to the correct partition. If no suitable partition exists, an error will occur. Also, if updating a row in a given partition would require it @@ -366,7 +367,8 @@ appearing in a table constraint can reference multiple columns.

    Currently, CHECK expressions cannot contain subqueries nor refer to variables other than columns of the - current row. The system column tableoid + current row (see Section 5.3.1). + The system column tableoid may be referenced, but not any other system column.

    A constraint marked with NO INHERIT will not propagate to child tables. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtablespace.html postgresql-10-10.12/doc/src/sgml/html/sql-createtablespace.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createtablespace.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtablespace.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TABLESPACE

    CREATE TABLESPACE

    CREATE TABLESPACE — define a new tablespace

    Synopsis

    CREATE TABLESPACE tablespace_name
    +CREATE TABLESPACE

    CREATE TABLESPACE

    CREATE TABLESPACE — define a new tablespace

    Synopsis

    CREATE TABLESPACE tablespace_name
         [ OWNER { new_owner | CURRENT_USER | SESSION_USER } ]
         LOCATION 'directory'
         [ WITH ( tablespace_option = value [, ... ] ) ]

    Description

    CREATE TABLESPACE registers a new cluster-wide diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtransform.html postgresql-10-10.12/doc/src/sgml/html/sql-createtransform.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createtransform.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtransform.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TRANSFORM

    CREATE TRANSFORM

    CREATE TRANSFORM — define a new transform

    Synopsis

    CREATE [ OR REPLACE ] TRANSFORM FOR type_name LANGUAGE lang_name (
    +CREATE TRANSFORM

    CREATE TRANSFORM

    CREATE TRANSFORM — define a new transform

    Synopsis

    CREATE [ OR REPLACE ] TRANSFORM FOR type_name LANGUAGE lang_name (
         FROM SQL WITH FUNCTION from_sql_function_name [ (argument_type [, ...]) ],
         TO SQL WITH FUNCTION to_sql_function_name [ (argument_type [, ...]) ]
     );

    Description

    CREATE TRANSFORM defines a new transform. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtrigger.html postgresql-10-10.12/doc/src/sgml/html/sql-createtrigger.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createtrigger.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtrigger.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TRIGGER

    CREATE TRIGGER

    CREATE TRIGGER — define a new trigger

    Synopsis

    CREATE [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
    +CREATE TRIGGER

    CREATE TRIGGER

    CREATE TRIGGER — define a new trigger

    Synopsis

    CREATE [ CONSTRAINT ] TRIGGER name { BEFORE | AFTER | INSTEAD OF } { event [ OR ... ] }
         ON table_name
         [ FROM referenced_table_name ]
         [ NOT DEFERRABLE | [ DEFERRABLE ] [ INITIALLY IMMEDIATE | INITIALLY DEFERRED ] ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtsconfig.html postgresql-10-10.12/doc/src/sgml/html/sql-createtsconfig.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createtsconfig.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtsconfig.html	2020-02-10 22:31:53.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration

    Synopsis

    CREATE TEXT SEARCH CONFIGURATION name (
    +CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION

    CREATE TEXT SEARCH CONFIGURATION — define a new text search configuration

    Synopsis

    CREATE TEXT SEARCH CONFIGURATION name (
         PARSER = parser_name |
         COPY = source_config
     )

    Description

    CREATE TEXT SEARCH CONFIGURATION creates a new text diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtsdictionary.html postgresql-10-10.12/doc/src/sgml/html/sql-createtsdictionary.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createtsdictionary.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtsdictionary.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary

    Synopsis

    CREATE TEXT SEARCH DICTIONARY name (
    +CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY

    CREATE TEXT SEARCH DICTIONARY — define a new text search dictionary

    Synopsis

    CREATE TEXT SEARCH DICTIONARY name (
         TEMPLATE = template
         [, option = value [, ... ]]
     )

    Description

    CREATE TEXT SEARCH DICTIONARY creates a new text search diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtsparser.html postgresql-10-10.12/doc/src/sgml/html/sql-createtsparser.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createtsparser.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtsparser.html 2020-02-10 22:31:53.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER — define a new text search parser

    Synopsis

    CREATE TEXT SEARCH PARSER name (
    +CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER

    CREATE TEXT SEARCH PARSER — define a new text search parser

    Synopsis

    CREATE TEXT SEARCH PARSER name (
         START = start_function ,
         GETTOKEN = gettoken_function ,
         END = end_function ,
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtstemplate.html postgresql-10-10.12/doc/src/sgml/html/sql-createtstemplate.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createtstemplate.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtstemplate.html	2020-02-10 22:31:54.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE — define a new text search template

    Synopsis

    CREATE TEXT SEARCH TEMPLATE name (
    +CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE

    CREATE TEXT SEARCH TEMPLATE — define a new text search template

    Synopsis

    CREATE TEXT SEARCH TEMPLATE name (
         [ INIT = init_function , ]
         LEXIZE = lexize_function
     )

    Description

    CREATE TEXT SEARCH TEMPLATE creates a new text search diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createtype.html postgresql-10-10.12/doc/src/sgml/html/sql-createtype.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createtype.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createtype.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE TYPE

    CREATE TYPE

    CREATE TYPE — define a new data type

    Synopsis

    CREATE TYPE name AS
    +CREATE TYPE

    CREATE TYPE

    CREATE TYPE — define a new data type

    Synopsis

    CREATE TYPE name AS
         ( [ attribute_name data_type [ COLLATE collation ] [, ... ] ] )
     
     CREATE TYPE name AS ENUM
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createuser.html postgresql-10-10.12/doc/src/sgml/html/sql-createuser.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createuser.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createuser.html	2020-02-10 22:31:54.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE USER

    CREATE USER

    CREATE USER — define a new database role

    Synopsis

    CREATE USER name [ [ WITH ] option [ ... ] ]
    +CREATE USER

    CREATE USER

    CREATE USER — define a new database role

    Synopsis

    CREATE USER name [ [ WITH ] option [ ... ] ]
     
     where option can be:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createusermapping.html postgresql-10-10.12/doc/src/sgml/html/sql-createusermapping.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-createusermapping.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-createusermapping.html	2020-02-10 22:31:54.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -CREATE USER MAPPING

    CREATE USER MAPPING

    CREATE USER MAPPING — define a new mapping of a user to a foreign server

    Synopsis

    CREATE USER MAPPING [IF NOT EXISTS] FOR { user_name | USER | CURRENT_USER | PUBLIC }
    +CREATE USER MAPPING

    CREATE USER MAPPING

    CREATE USER MAPPING — define a new mapping of a user to a foreign server

    Synopsis

    CREATE USER MAPPING [IF NOT EXISTS] FOR { user_name | USER | CURRENT_USER | PUBLIC }
         SERVER server_name
         [ OPTIONS ( option 'value' [ , ... ] ) ]

    Description

    CREATE USER MAPPING defines a mapping of a user to a foreign server. A user mapping typically encapsulates diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-createview.html postgresql-10-10.12/doc/src/sgml/html/sql-createview.html --- postgresql-10-10.10/doc/src/sgml/html/sql-createview.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-createview.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -CREATE VIEW

    CREATE VIEW

    CREATE VIEW — define a new view

    Synopsis

    CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
    +CREATE VIEW

    CREATE VIEW

    CREATE VIEW — define a new view

    Synopsis

    CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
         [ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
         AS query
         [ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

    Description

    CREATE VIEW defines a view of a query. The view diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-deallocate.html postgresql-10-10.12/doc/src/sgml/html/sql-deallocate.html --- postgresql-10-10.10/doc/src/sgml/html/sql-deallocate.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-deallocate.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DEALLOCATE

    DEALLOCATE

    DEALLOCATE — deallocate a prepared statement

    Synopsis

    DEALLOCATE [ PREPARE ] { name | ALL }

    Description

    DEALLOCATE is used to deallocate a previously +DEALLOCATE

    DEALLOCATE

    DEALLOCATE — deallocate a prepared statement

    Synopsis

    DEALLOCATE [ PREPARE ] { name | ALL }

    Description

    DEALLOCATE is used to deallocate a previously prepared SQL statement. If you do not explicitly deallocate a prepared statement, it is deallocated when the session ends.

    For more information on prepared statements, see PREPARE. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-declare.html postgresql-10-10.12/doc/src/sgml/html/sql-declare.html --- postgresql-10-10.10/doc/src/sgml/html/sql-declare.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-declare.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

    DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
    +DECLARE

    DECLARE

    DECLARE — define a cursor

    Synopsis

    DECLARE name [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
         CURSOR [ { WITH | WITHOUT } HOLD ] FOR query

    Description

    DECLARE allows a user to create cursors, which can be used to retrieve a small number of rows at a time out of a larger query. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-delete.html postgresql-10-10.12/doc/src/sgml/html/sql-delete.html --- postgresql-10-10.10/doc/src/sgml/html/sql-delete.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-delete.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DELETE

    DELETE

    DELETE — delete rows of a table

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    +DELETE

    DELETE

    DELETE — delete rows of a table

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
     DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ]
         [ USING using_list ]
         [ WHERE condition | WHERE CURRENT OF cursor_name ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-discard.html postgresql-10-10.12/doc/src/sgml/html/sql-discard.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-discard.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-discard.html	2020-02-10 22:31:54.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -DISCARD

    DISCARD

    DISCARD — discard session state

    Synopsis

    DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }

    Description

    DISCARD releases internal resources associated with a +DISCARD

    DISCARD

    DISCARD — discard session state

    Synopsis

    DISCARD { ALL | PLANS | SEQUENCES | TEMPORARY | TEMP }

    Description

    DISCARD releases internal resources associated with a database session. This command is useful for partially or fully resetting the session's state. There are several subcommands to release different types of resources; the DISCARD ALL diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-do.html postgresql-10-10.12/doc/src/sgml/html/sql-do.html --- postgresql-10-10.10/doc/src/sgml/html/sql-do.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-do.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DO

    DO

    DO — execute an anonymous code block

    Synopsis

    DO [ LANGUAGE lang_name ] code

    Description

    DO executes an anonymous code block, or in other +DO

    DO

    DO — execute an anonymous code block

    Synopsis

    DO [ LANGUAGE lang_name ] code

    Description

    DO executes an anonymous code block, or in other words a transient anonymous function in a procedural language.

    The code block is treated as though it were the body of a function with no parameters, returning void. It is parsed and diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-drop-access-method.html postgresql-10-10.12/doc/src/sgml/html/sql-drop-access-method.html --- postgresql-10-10.10/doc/src/sgml/html/sql-drop-access-method.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-drop-access-method.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP ACCESS METHOD

    DROP ACCESS METHOD

    DROP ACCESS METHOD — remove an access method

    Synopsis

    DROP ACCESS METHOD [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP ACCESS METHOD removes an existing access method. +DROP ACCESS METHOD

    DROP ACCESS METHOD

    DROP ACCESS METHOD — remove an access method

    Synopsis

    DROP ACCESS METHOD [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP ACCESS METHOD removes an existing access method. Only superusers can drop access methods.

    Parameters

    IF EXISTS

    Do not throw an error if the access method does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropaggregate.html postgresql-10-10.12/doc/src/sgml/html/sql-dropaggregate.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropaggregate.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropaggregate.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP AGGREGATE

    DROP AGGREGATE

    DROP AGGREGATE — remove an aggregate function

    Synopsis

    DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]
    +DROP AGGREGATE

    DROP AGGREGATE

    DROP AGGREGATE — remove an aggregate function

    Synopsis

    DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]
     
     where aggregate_signature is:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropcast.html postgresql-10-10.12/doc/src/sgml/html/sql-dropcast.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-dropcast.html	2019-08-05 21:30:09.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropcast.html	2020-02-10 22:31:54.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -DROP CAST

    DROP CAST

    DROP CAST — remove a cast

    Synopsis

    DROP CAST [ IF EXISTS ] (source_type AS target_type) [ CASCADE | RESTRICT ]

    Description

    DROP CAST removes a previously defined cast. +DROP CAST

    DROP CAST

    DROP CAST — remove a cast

    Synopsis

    DROP CAST [ IF EXISTS ] (source_type AS target_type) [ CASCADE | RESTRICT ]

    Description

    DROP CAST removes a previously defined cast.

    To be able to drop a cast, you must own the source or the target data type. These are the same privileges that are required to create a cast. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropcollation.html postgresql-10-10.12/doc/src/sgml/html/sql-dropcollation.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropcollation.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropcollation.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP COLLATION

    DROP COLLATION

    DROP COLLATION — remove a collation

    Synopsis

    DROP COLLATION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP COLLATION removes a previously defined collation. +DROP COLLATION

    DROP COLLATION

    DROP COLLATION — remove a collation

    Synopsis

    DROP COLLATION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP COLLATION removes a previously defined collation. To be able to drop a collation, you must own the collation.

    Parameters

    IF EXISTS

    Do not throw an error if the collation does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropconversion.html postgresql-10-10.12/doc/src/sgml/html/sql-dropconversion.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropconversion.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropconversion.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP CONVERSION

    DROP CONVERSION

    DROP CONVERSION — remove a conversion

    Synopsis

    DROP CONVERSION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP CONVERSION removes a previously defined conversion. +DROP CONVERSION

    DROP CONVERSION

    DROP CONVERSION — remove a conversion

    Synopsis

    DROP CONVERSION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP CONVERSION removes a previously defined conversion. To be able to drop a conversion, you must own the conversion.

    Parameters

    IF EXISTS

    Do not throw an error if the conversion does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropdatabase.html postgresql-10-10.12/doc/src/sgml/html/sql-dropdatabase.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropdatabase.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropdatabase.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP DATABASE

    DROP DATABASE

    DROP DATABASE — remove a database

    Synopsis

    DROP DATABASE [ IF EXISTS ] name

    Description

    DROP DATABASE drops a database. It removes the +DROP DATABASE

    DROP DATABASE

    DROP DATABASE — remove a database

    Synopsis

    DROP DATABASE [ IF EXISTS ] name

    Description

    DROP DATABASE drops a database. It removes the catalog entries for the database and deletes the directory containing the data. It can only be executed by the database owner. Also, it cannot be executed while you or anyone else are connected diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropdomain.html postgresql-10-10.12/doc/src/sgml/html/sql-dropdomain.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropdomain.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropdomain.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP DOMAIN

    DROP DOMAIN

    DROP DOMAIN — remove a domain

    Synopsis

    DROP DOMAIN [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP DOMAIN removes a domain. Only the owner of +DROP DOMAIN

    DROP DOMAIN

    DROP DOMAIN — remove a domain

    Synopsis

    DROP DOMAIN [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP DOMAIN removes a domain. Only the owner of a domain can remove it.

    Parameters

    IF EXISTS

    Do not throw an error if the domain does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropeventtrigger.html postgresql-10-10.12/doc/src/sgml/html/sql-dropeventtrigger.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropeventtrigger.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropeventtrigger.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP EVENT TRIGGER

    DROP EVENT TRIGGER

    DROP EVENT TRIGGER — remove an event trigger

    Synopsis

    DROP EVENT TRIGGER [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP EVENT TRIGGER removes an existing event trigger. +DROP EVENT TRIGGER

    DROP EVENT TRIGGER

    DROP EVENT TRIGGER — remove an event trigger

    Synopsis

    DROP EVENT TRIGGER [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP EVENT TRIGGER removes an existing event trigger. To execute this command, the current user must be the owner of the event trigger.

    Parameters

    IF EXISTS

    Do not throw an error if the event trigger does not exist. A notice diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropextension.html postgresql-10-10.12/doc/src/sgml/html/sql-dropextension.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropextension.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropextension.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP EXTENSION

    DROP EXTENSION

    DROP EXTENSION — remove an extension

    Synopsis

    DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP EXTENSION removes extensions from the database. +DROP EXTENSION

    DROP EXTENSION

    DROP EXTENSION — remove an extension

    Synopsis

    DROP EXTENSION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP EXTENSION removes extensions from the database. Dropping an extension causes its component objects to be dropped as well.

    You must own the extension to use DROP EXTENSION.

    Parameters

    IF EXISTS

    Do not throw an error if the extension does not exist. A notice is issued diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropforeigndatawrapper.html postgresql-10-10.12/doc/src/sgml/html/sql-dropforeigndatawrapper.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropforeigndatawrapper.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropforeigndatawrapper.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper

    Synopsis

    DROP FOREIGN DATA WRAPPER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP FOREIGN DATA WRAPPER removes an existing +DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER

    DROP FOREIGN DATA WRAPPER — remove a foreign-data wrapper

    Synopsis

    DROP FOREIGN DATA WRAPPER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP FOREIGN DATA WRAPPER removes an existing foreign-data wrapper. To execute this command, the current user must be the owner of the foreign-data wrapper.

    Parameters

    IF EXISTS

    Do not throw an error if the foreign-data wrapper does not diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropforeigntable.html postgresql-10-10.12/doc/src/sgml/html/sql-dropforeigntable.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropforeigntable.html 2019-08-05 21:30:09.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropforeigntable.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP FOREIGN TABLE

    DROP FOREIGN TABLE

    DROP FOREIGN TABLE — remove a foreign table

    Synopsis

    DROP FOREIGN TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP FOREIGN TABLE removes a foreign table. +DROP FOREIGN TABLE

    DROP FOREIGN TABLE

    DROP FOREIGN TABLE — remove a foreign table

    Synopsis

    DROP FOREIGN TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP FOREIGN TABLE removes a foreign table. Only the owner of a foreign table can remove it.

    Parameters

    IF EXISTS

    Do not throw an error if the foreign table does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropfunction.html postgresql-10-10.12/doc/src/sgml/html/sql-dropfunction.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropfunction.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropfunction.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP FUNCTION

    DROP FUNCTION

    DROP FUNCTION — remove a function

    Synopsis

    DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
    +DROP FUNCTION

    DROP FUNCTION

    DROP FUNCTION — remove a function

    Synopsis

    DROP FUNCTION [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
         [ CASCADE | RESTRICT ]

    Description

    DROP FUNCTION removes the definition of an existing function. To execute this command the user must be the owner of the function. The argument types to the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropgroup.html postgresql-10-10.12/doc/src/sgml/html/sql-dropgroup.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropgroup.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropgroup.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP GROUP

    DROP GROUP

    DROP GROUP — remove a database role

    Synopsis

    DROP GROUP [ IF EXISTS ] name [, ...]

    Description

    DROP GROUP is now an alias for +DROP GROUP

    DROP GROUP

    DROP GROUP — remove a database role

    Synopsis

    DROP GROUP [ IF EXISTS ] name [, ...]

    Description

    DROP GROUP is now an alias for DROP ROLE.

    Compatibility

    There is no DROP GROUP statement in the SQL standard.

    See Also

    DROP ROLE
    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropindex.html postgresql-10-10.12/doc/src/sgml/html/sql-dropindex.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropindex.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropindex.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP INDEX

    DROP INDEX

    DROP INDEX — remove an index

    Synopsis

    DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP INDEX drops an existing index from the database +DROP INDEX

    DROP INDEX

    DROP INDEX — remove an index

    Synopsis

    DROP INDEX [ CONCURRENTLY ] [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP INDEX drops an existing index from the database system. To execute this command you must be the owner of the index.

    Parameters

    CONCURRENTLY

    Drop the index without locking out concurrent selects, inserts, updates, @@ -14,6 +14,9 @@ Also, regular DROP INDEX commands can be performed within a transaction block, but DROP INDEX CONCURRENTLY cannot. +

    For temporary tables, DROP INDEX is always + non-concurrent, as no other session can access them, and + non-concurrent index drop is cheaper.

    IF EXISTS

    Do not throw an error if the index does not exist. A notice is issued in this case.

    name

    The name (optionally schema-qualified) of an index to remove. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droplanguage.html postgresql-10-10.12/doc/src/sgml/html/sql-droplanguage.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droplanguage.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droplanguage.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP LANGUAGE

    DROP LANGUAGE

    DROP LANGUAGE — remove a procedural language

    Synopsis

    DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP LANGUAGE removes the definition of a +DROP LANGUAGE

    DROP LANGUAGE

    DROP LANGUAGE — remove a procedural language

    Synopsis

    DROP [ PROCEDURAL ] LANGUAGE [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP LANGUAGE removes the definition of a previously registered procedural language. You must be a superuser or the owner of the language to use DROP LANGUAGE.

    Note

    As of PostgreSQL 9.1, most procedural diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropmaterializedview.html postgresql-10-10.12/doc/src/sgml/html/sql-dropmaterializedview.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropmaterializedview.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropmaterializedview.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW — remove a materialized view

    Synopsis

    DROP MATERIALIZED VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP MATERIALIZED VIEW drops an existing materialized +DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW

    DROP MATERIALIZED VIEW — remove a materialized view

    Synopsis

    DROP MATERIALIZED VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP MATERIALIZED VIEW drops an existing materialized view. To execute this command you must be the owner of the materialized view.

    Parameters

    IF EXISTS

    Do not throw an error if the materialized view does not exist. A notice diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropopclass.html postgresql-10-10.12/doc/src/sgml/html/sql-dropopclass.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropopclass.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropopclass.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OPERATOR CLASS

    DROP OPERATOR CLASS

    DROP OPERATOR CLASS — remove an operator class

    Synopsis

    DROP OPERATOR CLASS [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]

    Description

    DROP OPERATOR CLASS drops an existing operator class. +DROP OPERATOR CLASS

    DROP OPERATOR CLASS

    DROP OPERATOR CLASS — remove an operator class

    Synopsis

    DROP OPERATOR CLASS [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]

    Description

    DROP OPERATOR CLASS drops an existing operator class. To execute this command you must be the owner of the operator class.

    DROP OPERATOR CLASS does not drop any of the operators or functions referenced by the class. If there are any indexes depending diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropoperator.html postgresql-10-10.12/doc/src/sgml/html/sql-dropoperator.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropoperator.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropoperator.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OPERATOR

    DROP OPERATOR

    DROP OPERATOR — remove an operator

    Synopsis

    DROP OPERATOR [ IF EXISTS ] name ( { left_type | NONE } , { right_type | NONE } ) [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP OPERATOR drops an existing operator from +DROP OPERATOR

    DROP OPERATOR

    DROP OPERATOR — remove an operator

    Synopsis

    DROP OPERATOR [ IF EXISTS ] name ( { left_type | NONE } , { right_type | NONE } ) [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP OPERATOR drops an existing operator from the database system. To execute this command you must be the owner of the operator.

    Parameters

    IF EXISTS

    Do not throw an error if the operator does not exist. A notice is issued diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropopfamily.html postgresql-10-10.12/doc/src/sgml/html/sql-dropopfamily.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropopfamily.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropopfamily.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY — remove an operator family

    Synopsis

    DROP OPERATOR FAMILY [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]

    Description

    DROP OPERATOR FAMILY drops an existing operator family. +DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY

    DROP OPERATOR FAMILY — remove an operator family

    Synopsis

    DROP OPERATOR FAMILY [ IF EXISTS ] name USING index_method [ CASCADE | RESTRICT ]

    Description

    DROP OPERATOR FAMILY drops an existing operator family. To execute this command you must be the owner of the operator family.

    DROP OPERATOR FAMILY includes dropping any operator classes contained in the family, but it does not drop any of the operators diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-drop-owned.html postgresql-10-10.12/doc/src/sgml/html/sql-drop-owned.html --- postgresql-10-10.10/doc/src/sgml/html/sql-drop-owned.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-drop-owned.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP OWNED

    DROP OWNED

    DROP OWNED — remove database objects owned by a database role

    Synopsis

    DROP OWNED BY { name | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP OWNED drops all the objects within the current +DROP OWNED

    DROP OWNED

    DROP OWNED — remove database objects owned by a database role

    Synopsis

    DROP OWNED BY { name | CURRENT_USER | SESSION_USER } [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP OWNED drops all the objects within the current database that are owned by one of the specified roles. Any privileges granted to the given roles on objects in the current database or on shared objects (databases, tablespaces) will also be diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droppolicy.html postgresql-10-10.12/doc/src/sgml/html/sql-droppolicy.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droppolicy.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droppolicy.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP POLICY

    DROP POLICY

    DROP POLICY — remove a row level security policy from a table

    Synopsis

    DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]

    Description

    DROP POLICY removes the specified policy from the table. +DROP POLICY

    DROP POLICY

    DROP POLICY — remove a row level security policy from a table

    Synopsis

    DROP POLICY [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]

    Description

    DROP POLICY removes the specified policy from the table. Note that if the last policy is removed for a table and the table still has row level security enabled via ALTER TABLE, then the default-deny policy will be used. ALTER TABLE ... DISABLE ROW diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droppublication.html postgresql-10-10.12/doc/src/sgml/html/sql-droppublication.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droppublication.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droppublication.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP PUBLICATION

    DROP PUBLICATION

    DROP PUBLICATION — remove a publication

    Synopsis

    DROP PUBLICATION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP PUBLICATION removes an existing publication from +DROP PUBLICATION

    DROP PUBLICATION

    DROP PUBLICATION — remove a publication

    Synopsis

    DROP PUBLICATION [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP PUBLICATION removes an existing publication from the database.

    A publication can only be dropped by its owner or a superuser.

    Parameters

    IF EXISTS

    Do not throw an error if the publication does not exist. A notice is diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droprole.html postgresql-10-10.12/doc/src/sgml/html/sql-droprole.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droprole.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droprole.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP ROLE

    DROP ROLE

    DROP ROLE — remove a database role

    Synopsis

    DROP ROLE [ IF EXISTS ] name [, ...]

    Description

    DROP ROLE removes the specified role(s). +DROP ROLE

    DROP ROLE

    DROP ROLE — remove a database role

    Synopsis

    DROP ROLE [ IF EXISTS ] name [, ...]

    Description

    DROP ROLE removes the specified role(s). To drop a superuser role, you must be a superuser yourself; to drop non-superuser roles, you must have CREATEROLE privilege. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droprule.html postgresql-10-10.12/doc/src/sgml/html/sql-droprule.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droprule.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droprule.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP RULE

    DROP RULE

    DROP RULE — remove a rewrite rule

    Synopsis

    DROP RULE [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]

    Description

    DROP RULE drops a rewrite rule. +DROP RULE

    DROP RULE

    DROP RULE — remove a rewrite rule

    Synopsis

    DROP RULE [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]

    Description

    DROP RULE drops a rewrite rule.

    Parameters

    IF EXISTS

    Do not throw an error if the rule does not exist. A notice is issued in this case.

    name

    The name of the rule to drop. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropschema.html postgresql-10-10.12/doc/src/sgml/html/sql-dropschema.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropschema.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropschema.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SCHEMA

    DROP SCHEMA

    DROP SCHEMA — remove a schema

    Synopsis

    DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP SCHEMA removes schemas from the database. +DROP SCHEMA

    DROP SCHEMA

    DROP SCHEMA — remove a schema

    Synopsis

    DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP SCHEMA removes schemas from the database.

    A schema can only be dropped by its owner or a superuser. Note that the owner can drop the schema (and thereby all contained objects) even if they do not own some of the objects within the schema. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropsequence.html postgresql-10-10.12/doc/src/sgml/html/sql-dropsequence.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropsequence.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropsequence.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SEQUENCE

    DROP SEQUENCE

    DROP SEQUENCE — remove a sequence

    Synopsis

    DROP SEQUENCE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP SEQUENCE removes sequence number +DROP SEQUENCE

    DROP SEQUENCE

    DROP SEQUENCE — remove a sequence

    Synopsis

    DROP SEQUENCE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP SEQUENCE removes sequence number generators. A sequence can only be dropped by its owner or a superuser.

    Parameters

    IF EXISTS

    Do not throw an error if the sequence does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropserver.html postgresql-10-10.12/doc/src/sgml/html/sql-dropserver.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropserver.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropserver.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SERVER

    DROP SERVER

    DROP SERVER — remove a foreign server descriptor

    Synopsis

    DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP SERVER removes an existing foreign server +DROP SERVER

    DROP SERVER

    DROP SERVER — remove a foreign server descriptor

    Synopsis

    DROP SERVER [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP SERVER removes an existing foreign server descriptor. To execute this command, the current user must be the owner of the server.

    Parameters

    IF EXISTS

    Do not throw an error if the server does not exist. A notice is diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropstatistics.html postgresql-10-10.12/doc/src/sgml/html/sql-dropstatistics.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropstatistics.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropstatistics.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP STATISTICS

    DROP STATISTICS

    DROP STATISTICS — remove extended statistics

    Synopsis

    DROP STATISTICS [ IF EXISTS ] name [, ...]

    Description

    DROP STATISTICS removes statistics object(s) from the +DROP STATISTICS

    DROP STATISTICS

    DROP STATISTICS — remove extended statistics

    Synopsis

    DROP STATISTICS [ IF EXISTS ] name [, ...]

    Description

    DROP STATISTICS removes statistics object(s) from the database. Only the statistics object's owner, the schema owner, or a superuser can drop a statistics object.

    Parameters

    IF EXISTS

    Do not throw an error if the statistics object does not exist. A notice diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropsubscription.html postgresql-10-10.12/doc/src/sgml/html/sql-dropsubscription.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropsubscription.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropsubscription.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP SUBSCRIPTION

    DROP SUBSCRIPTION

    DROP SUBSCRIPTION — remove a subscription

    Synopsis

    DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP SUBSCRIPTION removes a subscription from the +DROP SUBSCRIPTION

    DROP SUBSCRIPTION

    DROP SUBSCRIPTION — remove a subscription

    Synopsis

    DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP SUBSCRIPTION removes a subscription from the database cluster.

    A subscription can only be dropped by a superuser.

    DROP SUBSCRIPTION cannot be executed inside a diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptable.html postgresql-10-10.12/doc/src/sgml/html/sql-droptable.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptable.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptable.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TABLE

    DROP TABLE

    DROP TABLE — remove a table

    Synopsis

    DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP TABLE removes tables from the database. +DROP TABLE

    DROP TABLE

    DROP TABLE — remove a table

    Synopsis

    DROP TABLE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP TABLE removes tables from the database. Only the table owner, the schema owner, and superuser can drop a table. To empty a table of rows without destroying the table, use DELETE diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptablespace.html postgresql-10-10.12/doc/src/sgml/html/sql-droptablespace.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptablespace.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptablespace.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TABLESPACE

    DROP TABLESPACE

    DROP TABLESPACE — remove a tablespace

    Synopsis

    DROP TABLESPACE [ IF EXISTS ] name

    Description

    DROP TABLESPACE removes a tablespace from the system. +DROP TABLESPACE

    DROP TABLESPACE

    DROP TABLESPACE — remove a tablespace

    Synopsis

    DROP TABLESPACE [ IF EXISTS ] name

    Description

    DROP TABLESPACE removes a tablespace from the system.

    A tablespace can only be dropped by its owner or a superuser. The tablespace must be empty of all database objects before it can be dropped. It is possible that objects in other databases might still reside diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptransform.html postgresql-10-10.12/doc/src/sgml/html/sql-droptransform.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptransform.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptransform.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TRANSFORM

    DROP TRANSFORM

    DROP TRANSFORM — remove a transform

    Synopsis

    DROP TRANSFORM [ IF EXISTS ] FOR type_name LANGUAGE lang_name [ CASCADE | RESTRICT ]

    Description

    DROP TRANSFORM removes a previously defined transform. +DROP TRANSFORM

    DROP TRANSFORM

    DROP TRANSFORM — remove a transform

    Synopsis

    DROP TRANSFORM [ IF EXISTS ] FOR type_name LANGUAGE lang_name [ CASCADE | RESTRICT ]

    Description

    DROP TRANSFORM removes a previously defined transform.

    To be able to drop a transform, you must own the type and the language. These are the same privileges that are required to create a transform.

    Parameters

    IF EXISTS

    Do not throw an error if the transform does not exist. A notice is issued diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptrigger.html postgresql-10-10.12/doc/src/sgml/html/sql-droptrigger.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptrigger.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptrigger.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TRIGGER

    DROP TRIGGER

    DROP TRIGGER — remove a trigger

    Synopsis

    DROP TRIGGER [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]

    Description

    DROP TRIGGER removes an existing +DROP TRIGGER

    DROP TRIGGER

    DROP TRIGGER — remove a trigger

    Synopsis

    DROP TRIGGER [ IF EXISTS ] name ON table_name [ CASCADE | RESTRICT ]

    Description

    DROP TRIGGER removes an existing trigger definition. To execute this command, the current user must be the owner of the table for which the trigger is defined.

    Parameters

    IF EXISTS

    Do not throw an error if the trigger does not exist. A notice is issued diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptsconfig.html postgresql-10-10.12/doc/src/sgml/html/sql-droptsconfig.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptsconfig.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptsconfig.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration

    Synopsis

    DROP TEXT SEARCH CONFIGURATION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH CONFIGURATION drops an existing text +DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION

    DROP TEXT SEARCH CONFIGURATION — remove a text search configuration

    Synopsis

    DROP TEXT SEARCH CONFIGURATION [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH CONFIGURATION drops an existing text search configuration. To execute this command you must be the owner of the configuration.

    Parameters

    IF EXISTS

    Do not throw an error if the text search configuration does not exist. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptsdictionary.html postgresql-10-10.12/doc/src/sgml/html/sql-droptsdictionary.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptsdictionary.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptsdictionary.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary

    Synopsis

    DROP TEXT SEARCH DICTIONARY [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH DICTIONARY drops an existing text +DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY

    DROP TEXT SEARCH DICTIONARY — remove a text search dictionary

    Synopsis

    DROP TEXT SEARCH DICTIONARY [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH DICTIONARY drops an existing text search dictionary. To execute this command you must be the owner of the dictionary.

    Parameters

    IF EXISTS

    Do not throw an error if the text search dictionary does not exist. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptsparser.html postgresql-10-10.12/doc/src/sgml/html/sql-droptsparser.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptsparser.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptsparser.html 2020-02-10 22:31:54.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER — remove a text search parser

    Synopsis

    DROP TEXT SEARCH PARSER [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH PARSER drops an existing text search +DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER

    DROP TEXT SEARCH PARSER — remove a text search parser

    Synopsis

    DROP TEXT SEARCH PARSER [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH PARSER drops an existing text search parser. You must be a superuser to use this command.

    Parameters

    IF EXISTS

    Do not throw an error if the text search parser does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptstemplate.html postgresql-10-10.12/doc/src/sgml/html/sql-droptstemplate.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptstemplate.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptstemplate.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE — remove a text search template

    Synopsis

    DROP TEXT SEARCH TEMPLATE [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH TEMPLATE drops an existing text search +DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE

    DROP TEXT SEARCH TEMPLATE — remove a text search template

    Synopsis

    DROP TEXT SEARCH TEMPLATE [ IF EXISTS ] name [ CASCADE | RESTRICT ]

    Description

    DROP TEXT SEARCH TEMPLATE drops an existing text search template. You must be a superuser to use this command.

    Parameters

    IF EXISTS

    Do not throw an error if the text search template does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-droptype.html postgresql-10-10.12/doc/src/sgml/html/sql-droptype.html --- postgresql-10-10.10/doc/src/sgml/html/sql-droptype.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-droptype.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -DROP TYPE

    DROP TYPE

    DROP TYPE — remove a data type

    Synopsis

    DROP TYPE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP TYPE removes a user-defined data type. +DROP TYPE

    DROP TYPE

    DROP TYPE — remove a data type

    Synopsis

    DROP TYPE [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP TYPE removes a user-defined data type. Only the owner of a type can remove it.

    Parameters

    IF EXISTS

    Do not throw an error if the type does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropuser.html postgresql-10-10.12/doc/src/sgml/html/sql-dropuser.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropuser.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropuser.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -DROP USER

    DROP USER

    DROP USER — remove a database role

    Synopsis

    DROP USER [ IF EXISTS ] name [, ...]

    Description

    DROP USER is simply an alternate spelling of +DROP USER

    DROP USER

    DROP USER — remove a database role

    Synopsis

    DROP USER [ IF EXISTS ] name [, ...]

    Description

    DROP USER is simply an alternate spelling of DROP ROLE.

    Compatibility

    The DROP USER statement is a PostgreSQL extension. The SQL standard diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropusermapping.html postgresql-10-10.12/doc/src/sgml/html/sql-dropusermapping.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropusermapping.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropusermapping.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -DROP USER MAPPING

    DROP USER MAPPING

    DROP USER MAPPING — remove a user mapping for a foreign server

    Synopsis

    DROP USER MAPPING [ IF EXISTS ] FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name

    Description

    DROP USER MAPPING removes an existing user +DROP USER MAPPING

    DROP USER MAPPING

    DROP USER MAPPING — remove a user mapping for a foreign server

    Synopsis

    DROP USER MAPPING [ IF EXISTS ] FOR { user_name | USER | CURRENT_USER | PUBLIC } SERVER server_name

    Description

    DROP USER MAPPING removes an existing user mapping from foreign server.

    The owner of a foreign server can drop user mappings for that server for any user. Also, a user can drop a user mapping for their own diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-dropview.html postgresql-10-10.12/doc/src/sgml/html/sql-dropview.html --- postgresql-10-10.10/doc/src/sgml/html/sql-dropview.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-dropview.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -DROP VIEW

    DROP VIEW

    DROP VIEW — remove a view

    Synopsis

    DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP VIEW drops an existing view. To execute +DROP VIEW

    DROP VIEW

    DROP VIEW — remove a view

    Synopsis

    DROP VIEW [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

    Description

    DROP VIEW drops an existing view. To execute this command you must be the owner of the view.

    Parameters

    IF EXISTS

    Do not throw an error if the view does not exist. A notice is issued in this case. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-end.html postgresql-10-10.12/doc/src/sgml/html/sql-end.html --- postgresql-10-10.10/doc/src/sgml/html/sql-end.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-end.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -END

    END

    END — commit the current transaction

    Synopsis

    END [ WORK | TRANSACTION ]

    Description

    END commits the current transaction. All changes +END

    END

    END — commit the current transaction

    Synopsis

    END [ WORK | TRANSACTION ]

    Description

    END commits the current transaction. All changes made by the transaction become visible to others and are guaranteed to be durable if a crash occurs. This command is a PostgreSQL extension diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-execute.html postgresql-10-10.12/doc/src/sgml/html/sql-execute.html --- postgresql-10-10.10/doc/src/sgml/html/sql-execute.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-execute.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -EXECUTE

    EXECUTE

    EXECUTE — execute a prepared statement

    Synopsis

    EXECUTE name [ ( parameter [, ...] ) ]

    Description

    EXECUTE is used to execute a previously prepared +EXECUTE

    EXECUTE

    EXECUTE — execute a prepared statement

    Synopsis

    EXECUTE name [ ( parameter [, ...] ) ]

    Description

    EXECUTE is used to execute a previously prepared statement. Since prepared statements only exist for the duration of a session, the prepared statement must have been created by a PREPARE statement executed earlier in the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-explain.html postgresql-10-10.12/doc/src/sgml/html/sql-explain.html --- postgresql-10-10.10/doc/src/sgml/html/sql-explain.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-explain.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -EXPLAIN

    EXPLAIN

    EXPLAIN — show the execution plan of a statement

    Synopsis

    EXPLAIN [ ( option [, ...] ) ] statement
    +EXPLAIN

    EXPLAIN

    EXPLAIN — show the execution plan of a statement

    Synopsis

    EXPLAIN [ ( option [, ...] ) ] statement
     EXPLAIN [ ANALYZE ] [ VERBOSE ] statement
     
     where option can be one of:
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-expressions.html postgresql-10-10.12/doc/src/sgml/html/sql-expressions.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-expressions.html	2019-08-05 21:29:56.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-expressions.html	2020-02-10 22:31:41.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -4.2. Value Expressions

    4.2. Value Expressions

    Value expressions are used in a variety of contexts, such +4.2. Value Expressions

    4.2. Value Expressions

    Value expressions are used in a variety of contexts, such as in the target list of the SELECT command, as new column values in INSERT or UPDATE, or in search conditions in a number of diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-fetch.html postgresql-10-10.12/doc/src/sgml/html/sql-fetch.html --- postgresql-10-10.10/doc/src/sgml/html/sql-fetch.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-fetch.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -FETCH

    FETCH

    FETCH — retrieve rows from a query using a cursor

    Synopsis

    FETCH [ direction [ FROM | IN ] ] cursor_name
    +FETCH

    FETCH

    FETCH — retrieve rows from a query using a cursor

    Synopsis

    FETCH [ direction [ FROM | IN ] ] cursor_name
     
     where direction can be empty or one of:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-grant.html postgresql-10-10.12/doc/src/sgml/html/sql-grant.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-grant.html	2019-08-05 21:30:10.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-grant.html	2020-02-10 22:31:55.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -GRANT

    GRANT

    GRANT — define access privileges

    Synopsis

    GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
    +GRANT

    GRANT

    GRANT — define access privileges

    Synopsis

    GRANT { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
         [, ...] | ALL [ PRIVILEGES ] }
         ON { [ TABLE ] table_name [, ...]
              | ALL TABLES IN SCHEMA schema_name [, ...] }
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql.html postgresql-10-10.12/doc/src/sgml/html/sql.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql.html	2019-08-05 21:30:00.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql.html	2020-02-10 22:31:45.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -Part II. The SQL Language

    Part II. The SQL Language

    This part describes the use of the SQL language +Part II. The SQL Language

    Part II. The SQL Language

    This part describes the use of the SQL language in PostgreSQL. We start with describing the general syntax of SQL, then explain how to create the structures to hold data, how to populate diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-importforeignschema.html postgresql-10-10.12/doc/src/sgml/html/sql-importforeignschema.html --- postgresql-10-10.10/doc/src/sgml/html/sql-importforeignschema.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-importforeignschema.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server

    Synopsis

    IMPORT FOREIGN SCHEMA remote_schema
    +IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA

    IMPORT FOREIGN SCHEMA — import table definitions from a foreign server

    Synopsis

    IMPORT FOREIGN SCHEMA remote_schema
         [ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
         FROM SERVER server_name
         INTO local_schema
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-insert.html postgresql-10-10.12/doc/src/sgml/html/sql-insert.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-insert.html	2019-08-05 21:30:10.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-insert.html	2020-02-10 22:31:55.000000000 +0000
    @@ -1,7 +1,7 @@
     
    -INSERT

    INSERT

    INSERT — create new rows in a table

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    +INSERT

    INSERT

    INSERT — create new rows in a table

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
     INSERT INTO table_name [ AS alias ] [ ( column_name [, ...] ) ]
    -    [ OVERRIDING { SYSTEM | USER} VALUE ]
    +    [ OVERRIDING { SYSTEM | USER } VALUE ]
         { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
         [ ON CONFLICT [ conflict_target ] conflict_action ]
         [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-keywords-appendix.html postgresql-10-10.12/doc/src/sgml/html/sql-keywords-appendix.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-keywords-appendix.html	2019-08-05 21:30:17.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-keywords-appendix.html	2020-02-10 22:32:01.000000000 +0000
    @@ -1,7 +1,7 @@
     
    -Appendix C. SQL Key Words

    Appendix C. SQL Key Words

    Table C.1 lists all tokens that are key words +Appendix C. SQL Key Words

    Appendix C. SQL Key Words

    Table C.1 lists all tokens that are key words in the SQL standard and in PostgreSQL - 10.10. Background information can be found in Section 4.1.1. + 10.12. Background information can be found in Section 4.1.1. (For space reasons, only the latest two versions of the SQL standard, and SQL-92 for historical comparison, are included. The differences between those and the other intermediate standard versions are small.) diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-listen.html postgresql-10-10.12/doc/src/sgml/html/sql-listen.html --- postgresql-10-10.10/doc/src/sgml/html/sql-listen.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-listen.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -LISTEN

    LISTEN

    LISTEN — listen for a notification

    Synopsis

    LISTEN channel

    Description

    LISTEN registers the current session as a +LISTEN

    LISTEN

    LISTEN — listen for a notification

    Synopsis

    LISTEN channel

    Description

    LISTEN registers the current session as a listener on the notification channel named channel. If the current session is already registered as a listener for this notification channel, nothing is done. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-load.html postgresql-10-10.12/doc/src/sgml/html/sql-load.html --- postgresql-10-10.10/doc/src/sgml/html/sql-load.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-load.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -LOAD

    LOAD

    LOAD — load a shared library file

    Synopsis

    LOAD 'filename'

    Description

    This command loads a shared library file into the PostgreSQL +LOAD

    LOAD

    LOAD — load a shared library file

    Synopsis

    LOAD 'filename'

    Description

    This command loads a shared library file into the PostgreSQL server's address space. If the file has been loaded already, the command does nothing. Shared library files that contain C functions are automatically loaded whenever one of their functions is called. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-lock.html postgresql-10-10.12/doc/src/sgml/html/sql-lock.html --- postgresql-10-10.10/doc/src/sgml/html/sql-lock.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-lock.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -LOCK

    LOCK

    LOCK — lock a table

    Synopsis

    LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ]
    +LOCK

    LOCK

    LOCK — lock a table

    Synopsis

    LOCK [ TABLE ] [ ONLY ] name [ * ] [, ...] [ IN lockmode MODE ] [ NOWAIT ]
     
     where lockmode is one of:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-move.html postgresql-10-10.12/doc/src/sgml/html/sql-move.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-move.html	2019-08-05 21:30:10.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-move.html	2020-02-10 22:31:55.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -MOVE

    MOVE

    MOVE — position a cursor

    Synopsis

    MOVE [ direction [ FROM | IN ] ] cursor_name
    +MOVE

    MOVE

    MOVE — position a cursor

    Synopsis

    MOVE [ direction [ FROM | IN ] ] cursor_name
     
     where direction can be empty or one of:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-notify.html postgresql-10-10.12/doc/src/sgml/html/sql-notify.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-notify.html	2019-08-05 21:30:10.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-notify.html	2020-02-10 22:31:55.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -NOTIFY

    NOTIFY

    NOTIFY — generate a notification

    Synopsis

    NOTIFY channel [ , payload ]

    Description

    The NOTIFY command sends a notification event together +NOTIFY

    NOTIFY

    NOTIFY — generate a notification

    Synopsis

    NOTIFY channel [ , payload ]

    Description

    The NOTIFY command sends a notification event together with an optional payload string to each client application that has previously executed LISTEN channel diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-prepare.html postgresql-10-10.12/doc/src/sgml/html/sql-prepare.html --- postgresql-10-10.10/doc/src/sgml/html/sql-prepare.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-prepare.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

    PREPARE name [ ( data_type [, ...] ) ] AS statement

    Description

    PREPARE creates a prepared statement. A prepared +PREPARE

    PREPARE

    PREPARE — prepare a statement for execution

    Synopsis

    PREPARE name [ ( data_type [, ...] ) ] AS statement

    Description

    PREPARE creates a prepared statement. A prepared statement is a server-side object that can be used to optimize performance. When the PREPARE statement is executed, the specified statement is parsed, analyzed, and rewritten. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-prepare-transaction.html postgresql-10-10.12/doc/src/sgml/html/sql-prepare-transaction.html --- postgresql-10-10.10/doc/src/sgml/html/sql-prepare-transaction.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-prepare-transaction.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -PREPARE TRANSACTION

    PREPARE TRANSACTION

    PREPARE TRANSACTION — prepare the current transaction for two-phase commit

    Synopsis

    PREPARE TRANSACTION transaction_id

    Description

    PREPARE TRANSACTION prepares the current transaction +PREPARE TRANSACTION

    PREPARE TRANSACTION

    PREPARE TRANSACTION — prepare the current transaction for two-phase commit

    Synopsis

    PREPARE TRANSACTION transaction_id

    Description

    PREPARE TRANSACTION prepares the current transaction for two-phase commit. After this command, the transaction is no longer associated with the current session; instead, its state is fully stored on disk, and there is a very high probability that it can be committed diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-reassign-owned.html postgresql-10-10.12/doc/src/sgml/html/sql-reassign-owned.html --- postgresql-10-10.10/doc/src/sgml/html/sql-reassign-owned.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-reassign-owned.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -REASSIGN OWNED

    REASSIGN OWNED

    REASSIGN OWNED — change the ownership of database objects owned by a database role

    Synopsis

    REASSIGN OWNED BY { old_role | CURRENT_USER | SESSION_USER } [, ...]
    +REASSIGN OWNED

    REASSIGN OWNED

    REASSIGN OWNED — change the ownership of database objects owned by a database role

    Synopsis

    REASSIGN OWNED BY { old_role | CURRENT_USER | SESSION_USER } [, ...]
                    TO { new_role | CURRENT_USER | SESSION_USER }

    Description

    REASSIGN OWNED instructs the system to change the ownership of database objects owned by any of the old_roles to diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-refreshmaterializedview.html postgresql-10-10.12/doc/src/sgml/html/sql-refreshmaterializedview.html --- postgresql-10-10.10/doc/src/sgml/html/sql-refreshmaterializedview.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-refreshmaterializedview.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view

    Synopsis

    REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
    +REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW

    REFRESH MATERIALIZED VIEW — replace the contents of a materialized view

    Synopsis

    REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] name
         [ WITH [ NO ] DATA ]

    Description

    REFRESH MATERIALIZED VIEW completely replaces the contents of a materialized view. To execute this command you must be the owner of the materialized view. The old contents are discarded. If @@ -18,8 +18,8 @@ number of rows are affected.

    This option is only allowed if there is at least one UNIQUE index on the materialized view which uses only - column names and includes all rows; that is, it must not index on any - expressions nor include a WHERE clause. + column names and includes all rows; that is, it must not be an + expression index or include a WHERE clause.

    This option may not be used when the materialized view is not already populated.

    Even with this option only one REFRESH at a time may diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-reindex.html postgresql-10-10.12/doc/src/sgml/html/sql-reindex.html --- postgresql-10-10.10/doc/src/sgml/html/sql-reindex.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-reindex.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -REINDEX

    REINDEX

    REINDEX — rebuild indexes

    Synopsis

    REINDEX [ ( VERBOSE ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } name

    Description

    REINDEX rebuilds an index using the data +REINDEX

    REINDEX

    REINDEX — rebuild indexes

    Synopsis

    REINDEX [ ( VERBOSE ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } name

    Description

    REINDEX rebuilds an index using the data stored in the index's table, replacing the old copy of the index. There are several scenarios in which to use REINDEX: diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-release-savepoint.html postgresql-10-10.12/doc/src/sgml/html/sql-release-savepoint.html --- postgresql-10-10.10/doc/src/sgml/html/sql-release-savepoint.html 2019-08-05 21:30:10.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-release-savepoint.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -RELEASE SAVEPOINT

    RELEASE SAVEPOINT

    RELEASE SAVEPOINT — destroy a previously defined savepoint

    Synopsis

    RELEASE [ SAVEPOINT ] savepoint_name

    Description

    RELEASE SAVEPOINT destroys a savepoint previously defined +RELEASE SAVEPOINT

    RELEASE SAVEPOINT

    RELEASE SAVEPOINT — destroy a previously defined savepoint

    Synopsis

    RELEASE [ SAVEPOINT ] savepoint_name

    Description

    RELEASE SAVEPOINT destroys a savepoint previously defined in the current transaction.

    Destroying a savepoint makes it unavailable as a rollback point, but it has no other user visible behavior. It does not undo the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-reset.html postgresql-10-10.12/doc/src/sgml/html/sql-reset.html --- postgresql-10-10.10/doc/src/sgml/html/sql-reset.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-reset.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -RESET

    RESET

    RESET — restore the value of a run-time parameter to the default value

    Synopsis

    RESET configuration_parameter
    +RESET

    RESET

    RESET — restore the value of a run-time parameter to the default value

    Synopsis

    RESET configuration_parameter
     RESET ALL

    Description

    RESET restores run-time parameters to their default values. RESET is an alternative spelling for diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-revoke.html postgresql-10-10.12/doc/src/sgml/html/sql-revoke.html --- postgresql-10-10.10/doc/src/sgml/html/sql-revoke.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-revoke.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -REVOKE

    REVOKE

    REVOKE — remove access privileges

    Synopsis

    REVOKE [ GRANT OPTION FOR ]
    +REVOKE

    REVOKE

    REVOKE — remove access privileges

    Synopsis

    REVOKE [ GRANT OPTION FOR ]
         { { SELECT | INSERT | UPDATE | DELETE | TRUNCATE | REFERENCES | TRIGGER }
         [, ...] | ALL [ PRIVILEGES ] }
         ON { [ TABLE ] table_name [, ...]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-rollback.html postgresql-10-10.12/doc/src/sgml/html/sql-rollback.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-rollback.html	2019-08-05 21:30:11.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-rollback.html	2020-02-10 22:31:55.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -ROLLBACK

    ROLLBACK

    ROLLBACK — abort the current transaction

    Synopsis

    ROLLBACK [ WORK | TRANSACTION ]

    Description

    ROLLBACK rolls back the current transaction and causes +ROLLBACK

    ROLLBACK

    ROLLBACK — abort the current transaction

    Synopsis

    ROLLBACK [ WORK | TRANSACTION ]

    Description

    ROLLBACK rolls back the current transaction and causes all the updates made by the transaction to be discarded.

    Parameters

    WORK
    TRANSACTION

    Optional key words. They have no effect.

    Notes

    Use COMMIT to diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-rollback-prepared.html postgresql-10-10.12/doc/src/sgml/html/sql-rollback-prepared.html --- postgresql-10-10.10/doc/src/sgml/html/sql-rollback-prepared.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-rollback-prepared.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -ROLLBACK PREPARED

    ROLLBACK PREPARED

    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit

    Synopsis

    ROLLBACK PREPARED transaction_id

    Description

    ROLLBACK PREPARED rolls back a transaction that is in +ROLLBACK PREPARED

    ROLLBACK PREPARED

    ROLLBACK PREPARED — cancel a transaction that was earlier prepared for two-phase commit

    Synopsis

    ROLLBACK PREPARED transaction_id

    Description

    ROLLBACK PREPARED rolls back a transaction that is in prepared state.

    Parameters

    transaction_id

    The transaction identifier of the transaction that is to be rolled back. diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-rollback-to.html postgresql-10-10.12/doc/src/sgml/html/sql-rollback-to.html --- postgresql-10-10.10/doc/src/sgml/html/sql-rollback-to.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-rollback-to.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT — roll back to a savepoint

    Synopsis

    ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name

    Description

    Roll back all commands that were executed after the savepoint was +ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT

    ROLLBACK TO SAVEPOINT — roll back to a savepoint

    Synopsis

    ROLLBACK [ WORK | TRANSACTION ] TO [ SAVEPOINT ] savepoint_name

    Description

    Roll back all commands that were executed after the savepoint was established. The savepoint remains valid and can be rolled back to again later, if needed.

    ROLLBACK TO SAVEPOINT implicitly destroys all savepoints that diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-savepoint.html postgresql-10-10.12/doc/src/sgml/html/sql-savepoint.html --- postgresql-10-10.10/doc/src/sgml/html/sql-savepoint.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-savepoint.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SAVEPOINT

    SAVEPOINT

    SAVEPOINT — define a new savepoint within the current transaction

    Synopsis

    SAVEPOINT savepoint_name

    Description

    SAVEPOINT establishes a new savepoint within +SAVEPOINT

    SAVEPOINT

    SAVEPOINT — define a new savepoint within the current transaction

    Synopsis

    SAVEPOINT savepoint_name

    Description

    SAVEPOINT establishes a new savepoint within the current transaction.

    A savepoint is a special mark inside a transaction that allows all commands that are executed after it was established to be rolled back, restoring diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-security-label.html postgresql-10-10.12/doc/src/sgml/html/sql-security-label.html --- postgresql-10-10.10/doc/src/sgml/html/sql-security-label.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-security-label.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SECURITY LABEL

    SECURITY LABEL

    SECURITY LABEL — define or change a security label applied to an object

    Synopsis

    SECURITY LABEL [ FOR provider ] ON
    +SECURITY LABEL

    SECURITY LABEL

    SECURITY LABEL — define or change a security label applied to an object

    Synopsis

    SECURITY LABEL [ FOR provider ] ON
     {
       TABLE object_name |
       COLUMN table_name.column_name |
    @@ -40,7 +40,7 @@
        label provider must interpret security labels; it merely provides a
        mechanism for storing them.  In practice, this facility is intended to allow
        integration with label-based mandatory access control (MAC) systems such as
    -   SE-Linux.  Such systems make all access control decisions
    +   SELinux.  Such systems make all access control decisions
        based on object labels, rather than traditional discretionary access control
        (DAC) concepts such as users and groups.
       

    Parameters

    object_name
    table_name.column_name
    aggregate_name
    function_name

    The name of the object to be labeled. Names of tables, diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-select.html postgresql-10-10.12/doc/src/sgml/html/sql-select.html --- postgresql-10-10.10/doc/src/sgml/html/sql-select.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-select.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SELECT

    SELECT

    SELECT, TABLE, WITH — retrieve rows from a table or view

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    +SELECT

    SELECT

    SELECT, TABLE, WITH — retrieve rows from a table or view

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
     SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
         [ * | expression [ [ AS ] output_name ] [, ...] ]
         [ FROM from_item [, ...] ]
    @@ -156,6 +156,11 @@
         In particular, data-modifying statements are guaranteed to be
         executed once and only once, regardless of whether the primary query
         reads all or any of their output.
    +   

    When there are multiple queries in the WITH + clause, RECURSIVE should be written only once, + immediately after WITH. It applies to all queries + in the WITH clause, though it has no effect on + queries that do not use recursion or forward references.

    The primary query and the WITH queries are all (notionally) executed at the same time. This implies that the effects of a data-modifying statement in WITH cannot be seen from diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-selectinto.html postgresql-10-10.12/doc/src/sgml/html/sql-selectinto.html --- postgresql-10-10.10/doc/src/sgml/html/sql-selectinto.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-selectinto.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SELECT INTO

    SELECT INTO

    SELECT INTO — define a new table from the results of a query

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    +SELECT INTO

    SELECT INTO

    SELECT INTO — define a new table from the results of a query

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
     SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]
         * | expression [ [ AS ] output_name ] [, ...]
         INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] new_table
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-set-constraints.html postgresql-10-10.12/doc/src/sgml/html/sql-set-constraints.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-set-constraints.html	2019-08-05 21:30:11.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-set-constraints.html	2020-02-10 22:31:55.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -SET CONSTRAINTS

    SET CONSTRAINTS

    SET CONSTRAINTS — set constraint check timing for the current transaction

    Synopsis

    SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }

    Description

    SET CONSTRAINTS sets the behavior of constraint +SET CONSTRAINTS

    SET CONSTRAINTS

    SET CONSTRAINTS — set constraint check timing for the current transaction

    Synopsis

    SET CONSTRAINTS { ALL | name [, ...] } { DEFERRED | IMMEDIATE }

    Description

    SET CONSTRAINTS sets the behavior of constraint checking within the current transaction. IMMEDIATE constraints are checked at the end of each statement. DEFERRED constraints are not checked until diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-set.html postgresql-10-10.12/doc/src/sgml/html/sql-set.html --- postgresql-10-10.10/doc/src/sgml/html/sql-set.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-set.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SET

    SET

    SET — change a run-time parameter

    Synopsis

    SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
    +SET

    SET

    SET — change a run-time parameter

    Synopsis

    SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { value | 'value' | DEFAULT }
     SET [ SESSION | LOCAL ] TIME ZONE { timezone | LOCAL | DEFAULT }

    Description

    The SET command changes run-time configuration parameters. Many of the run-time parameters listed in Chapter 19 can be changed on-the-fly with diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-set-role.html postgresql-10-10.12/doc/src/sgml/html/sql-set-role.html --- postgresql-10-10.10/doc/src/sgml/html/sql-set-role.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-set-role.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SET ROLE

    SET ROLE

    SET ROLE — set the current user identifier of the current session

    Synopsis

    SET [ SESSION | LOCAL ] ROLE role_name
    +SET ROLE

    SET ROLE

    SET ROLE — set the current user identifier of the current session

    Synopsis

    SET [ SESSION | LOCAL ] ROLE role_name
     SET [ SESSION | LOCAL ] ROLE NONE
     RESET ROLE

    Description

    This command sets the current user identifier of the current SQL session to be role_name. The role name can be @@ -17,13 +17,13 @@ user identifier to be the current session user identifier. These forms can be executed by any user.

    Notes

    Using this command, it is possible to either add privileges or restrict - one's privileges. If the session user role has the INHERITS + one's privileges. If the session user role has the INHERIT attribute, then it automatically has all the privileges of every role that it could SET ROLE to; in this case SET ROLE effectively drops all the privileges assigned directly to the session user and to the other roles it is a member of, leaving only the privileges available to the named role. On the other hand, if the session user role - has the NOINHERITS attribute, SET ROLE drops the + has the NOINHERIT attribute, SET ROLE drops the privileges assigned directly to the session user and instead acquires the privileges available to the named role.

    In particular, when a superuser chooses to SET ROLE to a diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-set-session-authorization.html postgresql-10-10.12/doc/src/sgml/html/sql-set-session-authorization.html --- postgresql-10-10.10/doc/src/sgml/html/sql-set-session-authorization.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-set-session-authorization.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session

    Synopsis

    SET [ SESSION | LOCAL ] SESSION AUTHORIZATION user_name
    +SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION

    SET SESSION AUTHORIZATION — set the session user identifier and the current user identifier of the current session

    Synopsis

    SET [ SESSION | LOCAL ] SESSION AUTHORIZATION user_name
     SET [ SESSION | LOCAL ] SESSION AUTHORIZATION DEFAULT
     RESET SESSION AUTHORIZATION

    Description

    This command sets the session user identifier and the current user identifier of the current SQL session to be user_name. The user name can be diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-set-transaction.html postgresql-10-10.12/doc/src/sgml/html/sql-set-transaction.html --- postgresql-10-10.10/doc/src/sgml/html/sql-set-transaction.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-set-transaction.html 2020-02-10 22:31:55.000000000 +0000 @@ -1,5 +1,5 @@ -SET TRANSACTION

    SET TRANSACTION

    SET TRANSACTION — set the characteristics of the current transaction

    Synopsis

    SET TRANSACTION transaction_mode [, ...]
    +SET TRANSACTION

    SET TRANSACTION

    SET TRANSACTION — set the characteristics of the current transaction

    Synopsis

    SET TRANSACTION transaction_mode [, ...]
     SET TRANSACTION SNAPSHOT snapshot_id
     SET SESSION CHARACTERISTICS AS TRANSACTION transaction_mode [, ...]
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-show.html postgresql-10-10.12/doc/src/sgml/html/sql-show.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-show.html	2019-08-05 21:30:11.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-show.html	2020-02-10 22:31:55.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -SHOW

    SHOW

    SHOW — show the value of a run-time parameter

    Synopsis

    SHOW name
    +SHOW

    SHOW

    SHOW — show the value of a run-time parameter

    Synopsis

    SHOW name
     SHOW ALL

    Description

    SHOW will display the current setting of run-time parameters. These variables can be set using the SET statement, by editing the diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-start-transaction.html postgresql-10-10.12/doc/src/sgml/html/sql-start-transaction.html --- postgresql-10-10.10/doc/src/sgml/html/sql-start-transaction.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-start-transaction.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -START TRANSACTION

    START TRANSACTION

    START TRANSACTION — start a transaction block

    Synopsis

    START TRANSACTION [ transaction_mode [, ...] ]
    +START TRANSACTION

    START TRANSACTION

    START TRANSACTION — start a transaction block

    Synopsis

    START TRANSACTION [ transaction_mode [, ...] ]
     
     where transaction_mode is one of:
     
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-syntax-calling-funcs.html postgresql-10-10.12/doc/src/sgml/html/sql-syntax-calling-funcs.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-syntax-calling-funcs.html	2019-08-05 21:29:56.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-syntax-calling-funcs.html	2020-02-10 22:31:41.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -4.3. Calling Functions

    4.3. Calling Functions

    PostgreSQL allows functions that have named +4.3. Calling Functions

    4.3. Calling Functions

    PostgreSQL allows functions that have named parameters to be called using either positional or named notation. Named notation is especially useful for functions that have a large number of parameters, since it diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-syntax.html postgresql-10-10.12/doc/src/sgml/html/sql-syntax.html --- postgresql-10-10.10/doc/src/sgml/html/sql-syntax.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-syntax.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 4. SQL Syntax

    Chapter 4. SQL Syntax

    This chapter describes the syntax of SQL. It forms the foundation +Chapter 4. SQL Syntax

    Chapter 4. SQL Syntax

    This chapter describes the syntax of SQL. It forms the foundation for understanding the following chapters which will go into detail about how SQL commands are applied to define and modify data.

    We also advise users who are already familiar with SQL to read this diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-syntax-lexical.html postgresql-10-10.12/doc/src/sgml/html/sql-syntax-lexical.html --- postgresql-10-10.10/doc/src/sgml/html/sql-syntax-lexical.html 2019-08-05 21:29:56.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-syntax-lexical.html 2020-02-10 22:31:41.000000000 +0000 @@ -1,5 +1,5 @@ -4.1. Lexical Structure

    4.1. Lexical Structure

    SQL input consists of a sequence of +4.1. Lexical Structure

    4.1. Lexical Structure

    SQL input consists of a sequence of commands. A command is composed of a sequence of tokens, terminated by a semicolon (;). The end of the input stream also diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-truncate.html postgresql-10-10.12/doc/src/sgml/html/sql-truncate.html --- postgresql-10-10.10/doc/src/sgml/html/sql-truncate.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-truncate.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -TRUNCATE

    TRUNCATE

    TRUNCATE — empty a table or set of tables

    Synopsis

    TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
    +TRUNCATE

    TRUNCATE

    TRUNCATE — empty a table or set of tables

    Synopsis

    TRUNCATE [ TABLE ] [ ONLY ] name [ * ] [, ... ]
         [ RESTART IDENTITY | CONTINUE IDENTITY ] [ CASCADE | RESTRICT ]

    Description

    TRUNCATE quickly removes all rows from a set of tables. It has the same effect as an unqualified DELETE on each table, but since it does not actually diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-unlisten.html postgresql-10-10.12/doc/src/sgml/html/sql-unlisten.html --- postgresql-10-10.10/doc/src/sgml/html/sql-unlisten.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-unlisten.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -UNLISTEN

    UNLISTEN

    UNLISTEN — stop listening for a notification

    Synopsis

    UNLISTEN { channel | * }

    Description

    UNLISTEN is used to remove an existing +UNLISTEN

    UNLISTEN

    UNLISTEN — stop listening for a notification

    Synopsis

    UNLISTEN { channel | * }

    Description

    UNLISTEN is used to remove an existing registration for NOTIFY events. UNLISTEN cancels any existing registration of the current PostgreSQL session as a diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-update.html postgresql-10-10.12/doc/src/sgml/html/sql-update.html --- postgresql-10-10.10/doc/src/sgml/html/sql-update.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-update.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -UPDATE

    UPDATE

    UPDATE — update rows of a table

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
    +UPDATE

    UPDATE

    UPDATE — update rows of a table

    Synopsis

    [ WITH [ RECURSIVE ] with_query [, ...] ]
     UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
         SET { column_name = { expression | DEFAULT } |
               ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-vacuum.html postgresql-10-10.12/doc/src/sgml/html/sql-vacuum.html
    --- postgresql-10-10.10/doc/src/sgml/html/sql-vacuum.html	2019-08-05 21:30:11.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/sql-vacuum.html	2020-02-10 22:31:56.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -VACUUM

    VACUUM

    VACUUM — garbage-collect and optionally analyze a database

    Synopsis

    VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE | DISABLE_PAGE_SKIPPING } [, ...] ) ] [ table_name [ (column_name [, ...] ) ] ]
    +VACUUM

    VACUUM

    VACUUM — garbage-collect and optionally analyze a database

    Synopsis

    VACUUM [ ( { FULL | FREEZE | VERBOSE | ANALYZE | DISABLE_PAGE_SKIPPING } [, ...] ) ] [ table_name [ (column_name [, ...] ) ] ]
     VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ table_name ]
     VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] ANALYZE [ table_name [ (column_name [, ...] ) ] ]

    Description

    VACUUM reclaims storage occupied by dead tuples. In normal PostgreSQL operation, tuples that diff -Nru postgresql-10-10.10/doc/src/sgml/html/sql-values.html postgresql-10-10.12/doc/src/sgml/html/sql-values.html --- postgresql-10-10.10/doc/src/sgml/html/sql-values.html 2019-08-05 21:30:11.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sql-values.html 2020-02-10 22:31:56.000000000 +0000 @@ -1,5 +1,5 @@ -VALUES

    VALUES

    VALUES — compute a set of rows

    Synopsis

    VALUES ( expression [, ...] ) [, ...]
    +VALUES

    VALUES

    VALUES — compute a set of rows

    Synopsis

    VALUES ( expression [, ...] ) [, ...]
         [ ORDER BY sort_expression [ ASC | DESC | USING operator ] [, ...] ]
         [ LIMIT { count | ALL } ]
         [ OFFSET start [ ROW | ROWS ] ]
    diff -Nru postgresql-10-10.10/doc/src/sgml/html/ssh-tunnels.html postgresql-10-10.12/doc/src/sgml/html/ssh-tunnels.html
    --- postgresql-10-10.10/doc/src/sgml/html/ssh-tunnels.html	2019-08-05 21:30:00.000000000 +0000
    +++ postgresql-10-10.12/doc/src/sgml/html/ssh-tunnels.html	2020-02-10 22:31:45.000000000 +0000
    @@ -1,5 +1,5 @@
     
    -18.10. Secure TCP/IP Connections with SSH Tunnels

    18.10. Secure TCP/IP Connections with SSH Tunnels

    It is possible to use SSH to encrypt the network +18.10. Secure TCP/IP Connections with SSH Tunnels

    18.10. Secure TCP/IP Connections with SSH Tunnels

    It is possible to use SSH to encrypt the network connection between clients and a PostgreSQL server. Done properly, this provides an adequately secure network connection, even for non-SSL-capable diff -Nru postgresql-10-10.10/doc/src/sgml/html/sslinfo.html postgresql-10-10.12/doc/src/sgml/html/sslinfo.html --- postgresql-10-10.10/doc/src/sgml/html/sslinfo.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/sslinfo.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.38. sslinfo

    F.38. sslinfo

    The sslinfo module provides information about the SSL +F.38. sslinfo

    F.38. sslinfo

    The sslinfo module provides information about the SSL certificate that the current client provided when connecting to PostgreSQL. The module is useless (most functions will return NULL) if the current connection does not use SSL. @@ -66,7 +66,7 @@ localityName (alias L) stateOrProvinceName (alias ST) organizationName (alias O) -organizationUnitName (alias OU) +organizationalUnitName (alias OU) title description initials diff -Nru postgresql-10-10.10/doc/src/sgml/html/ssl-tcp.html postgresql-10-10.12/doc/src/sgml/html/ssl-tcp.html --- postgresql-10-10.10/doc/src/sgml/html/ssl-tcp.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/ssl-tcp.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -18.9. Secure TCP/IP Connections with SSL

    18.9. Secure TCP/IP Connections with SSL

    PostgreSQL has native support for using +18.9. Secure TCP/IP Connections with SSL

    18.9. Secure TCP/IP Connections with SSL

    PostgreSQL has native support for using SSL connections to encrypt client/server communications for increased security. This requires that OpenSSL is installed on both client and diff -Nru postgresql-10-10.10/doc/src/sgml/html/standby-settings.html postgresql-10-10.12/doc/src/sgml/html/standby-settings.html --- postgresql-10-10.10/doc/src/sgml/html/standby-settings.html 2019-08-05 21:30:02.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/standby-settings.html 2020-02-10 22:31:47.000000000 +0000 @@ -1,5 +1,5 @@ -27.3. Standby Server Settings

    27.3. Standby Server Settings

    standby_mode (boolean) +27.3. Standby Server Settings

    27.3. Standby Server Settings

    standby_mode (boolean)

    Specifies whether to start the PostgreSQL server as a standby. If this parameter is on, the server will diff -Nru postgresql-10-10.10/doc/src/sgml/html/storage-file-layout.html postgresql-10-10.12/doc/src/sgml/html/storage-file-layout.html --- postgresql-10-10.10/doc/src/sgml/html/storage-file-layout.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/storage-file-layout.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -66.1. Database File Layout

    66.1. Database File Layout

    This section describes the storage format at the level of files and +66.1. Database File Layout

    66.1. Database File Layout

    This section describes the storage format at the level of files and directories.

    Traditionally, the configuration and data files used by a database cluster are stored together within the cluster's data directory, commonly referred to as PGDATA (after the name of the diff -Nru postgresql-10-10.10/doc/src/sgml/html/storage-fsm.html postgresql-10-10.12/doc/src/sgml/html/storage-fsm.html --- postgresql-10-10.10/doc/src/sgml/html/storage-fsm.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/storage-fsm.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -66.3. Free Space Map

    66.3. Free Space Map

    Each heap and index relation, except for hash indexes, has a Free Space Map +66.3. Free Space Map

    66.3. Free Space Map

    Each heap and index relation, except for hash indexes, has a Free Space Map (FSM) to keep track of available space in the relation. It's stored alongside the main relation data in a separate relation fork, named after the filenode number of the relation, plus a _fsm suffix. For example, diff -Nru postgresql-10-10.10/doc/src/sgml/html/storage.html postgresql-10-10.12/doc/src/sgml/html/storage.html --- postgresql-10-10.10/doc/src/sgml/html/storage.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/storage.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,3 +1,3 @@ -Chapter 66. Database Physical Storage

    Chapter 66. Database Physical Storage

    This chapter provides an overview of the physical storage format used by +Chapter 66. Database Physical Storage

    Chapter 66. Database Physical Storage

    This chapter provides an overview of the physical storage format used by PostgreSQL databases.

    \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/storage-init.html postgresql-10-10.12/doc/src/sgml/html/storage-init.html --- postgresql-10-10.10/doc/src/sgml/html/storage-init.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/storage-init.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -66.5. The Initialization Fork

    66.5. The Initialization Fork

    Each unlogged table, and each index on an unlogged table, has an initialization +66.5. The Initialization Fork

    66.5. The Initialization Fork

    Each unlogged table, and each index on an unlogged table, has an initialization fork. The initialization fork is an empty table or index of the appropriate type. When an unlogged table must be reset to empty due to a crash, the initialization fork is copied over the main fork, and any other forks are diff -Nru postgresql-10-10.10/doc/src/sgml/html/storage-page-layout.html postgresql-10-10.12/doc/src/sgml/html/storage-page-layout.html --- postgresql-10-10.10/doc/src/sgml/html/storage-page-layout.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/storage-page-layout.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -66.6. Database Page Layout

    66.6. Database Page Layout

    This section provides an overview of the page format used within +66.6. Database Page Layout

    66.6. Database Page Layout

    This section provides an overview of the page format used within PostgreSQL tables and indexes.[14] Sequences and TOAST tables are formatted just like a regular table.

    In the following explanation, a byte diff -Nru postgresql-10-10.10/doc/src/sgml/html/storage-toast.html postgresql-10-10.12/doc/src/sgml/html/storage-toast.html --- postgresql-10-10.10/doc/src/sgml/html/storage-toast.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/storage-toast.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -66.2. TOAST

    66.2. TOAST

    This section provides an overview of TOAST (The +66.2. TOAST

    66.2. TOAST

    This section provides an overview of TOAST (The Oversized-Attribute Storage Technique).

    PostgreSQL uses a fixed page size (commonly 8 kB), and does not allow tuples to span multiple pages. Therefore, it is not possible to store very large field values directly. To overcome diff -Nru postgresql-10-10.10/doc/src/sgml/html/storage-vm.html postgresql-10-10.12/doc/src/sgml/html/storage-vm.html --- postgresql-10-10.10/doc/src/sgml/html/storage-vm.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/storage-vm.html 2020-02-10 22:32:00.000000000 +0000 @@ -1,5 +1,5 @@ -66.4. Visibility Map

    66.4. Visibility Map

    Each heap relation has a Visibility Map +66.4. Visibility Map

    66.4. Visibility Map

    Each heap relation has a Visibility Map (VM) to keep track of which pages contain only tuples that are known to be visible to all active transactions; it also keeps track of which pages contain only frozen tuples. It's stored diff -Nru postgresql-10-10.10/doc/src/sgml/html/supported-platforms.html postgresql-10-10.12/doc/src/sgml/html/supported-platforms.html --- postgresql-10-10.10/doc/src/sgml/html/supported-platforms.html 2019-08-05 21:30:00.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/supported-platforms.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -16.6. Supported Platforms

    16.6. Supported Platforms

    A platform (that is, a CPU architecture and operating system combination) +16.6. Supported Platforms

    16.6. 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 diff -Nru postgresql-10-10.10/doc/src/sgml/html/tablefunc.html postgresql-10-10.12/doc/src/sgml/html/tablefunc.html --- postgresql-10-10.10/doc/src/sgml/html/tablefunc.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/tablefunc.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.39. tablefunc

    F.39. tablefunc

    The tablefunc module includes various functions that return +F.39. tablefunc

    F.39. tablefunc

    The tablefunc module includes various functions that return tables (that is, multiple rows). These functions are useful both in their own right and as examples of how to write C functions that return multiple rows. diff -Nru postgresql-10-10.10/doc/src/sgml/html/tablesample-method.html postgresql-10-10.12/doc/src/sgml/html/tablesample-method.html --- postgresql-10-10.10/doc/src/sgml/html/tablesample-method.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/tablesample-method.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -Chapter 57. Writing A Table Sampling Method

    Chapter 57. Writing A Table Sampling Method

    PostgreSQL's implementation of the TABLESAMPLE +Chapter 57. Writing A Table Sampling Method

    Chapter 57. Writing A Table Sampling Method

    PostgreSQL's implementation of the TABLESAMPLE clause supports custom table sampling methods, in addition to the BERNOULLI and SYSTEM methods that are required by the SQL standard. The sampling method determines which rows of the diff -Nru postgresql-10-10.10/doc/src/sgml/html/tablesample-support-functions.html postgresql-10-10.12/doc/src/sgml/html/tablesample-support-functions.html --- postgresql-10-10.10/doc/src/sgml/html/tablesample-support-functions.html 2019-08-05 21:30:15.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/tablesample-support-functions.html 2020-02-10 22:31:59.000000000 +0000 @@ -1,5 +1,5 @@ -57.1. Sampling Method Support Functions

    57.1. Sampling Method Support Functions

    The TSM handler function returns a palloc'd TsmRoutine struct +57.1. Sampling Method Support Functions

    57.1. Sampling Method Support Functions

    The TSM handler function returns a palloc'd TsmRoutine struct containing pointers to the support functions described below. Most of the functions are required, but some are optional, and those pointers can be NULL. diff -Nru postgresql-10-10.10/doc/src/sgml/html/tcn.html postgresql-10-10.12/doc/src/sgml/html/tcn.html --- postgresql-10-10.10/doc/src/sgml/html/tcn.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/tcn.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.40. tcn

    F.40. tcn

    The tcn module provides a trigger function that notifies +F.40. tcn

    F.40. tcn

    The tcn module provides a trigger function that notifies listeners of changes to any table on which it is attached. It must be used as an AFTER trigger FOR EACH ROW.

    Only one parameter may be supplied to the function in a diff -Nru postgresql-10-10.10/doc/src/sgml/html/test-decoding.html postgresql-10-10.12/doc/src/sgml/html/test-decoding.html --- postgresql-10-10.10/doc/src/sgml/html/test-decoding.html 2019-08-05 21:30:19.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/test-decoding.html 2020-02-10 22:32:03.000000000 +0000 @@ -1,5 +1,5 @@ -F.41. test_decoding

    F.41. test_decoding

    test_decoding is an example of a logical decoding +F.41. test_decoding

    F.41. test_decoding

    test_decoding is an example of a logical decoding output plugin. It doesn't do anything especially useful, but can serve as a starting point for developing your own output plugin.

    test_decoding receives WAL through the logical decoding diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-configuration.html postgresql-10-10.12/doc/src/sgml/html/textsearch-configuration.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-configuration.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-configuration.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -12.7. Configuration Example

    12.7. Configuration Example

    A text search configuration specifies all options necessary to transform a +12.7. Configuration Example

    12.7. Configuration Example

    A text search configuration specifies all options necessary to transform a document into a tsvector: the parser to use to break text into tokens, and the dictionaries to use to transform each token into a lexeme. Every call of diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-controls.html postgresql-10-10.12/doc/src/sgml/html/textsearch-controls.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-controls.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-controls.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -12.3. Controlling Text Search

    12.3. Controlling Text Search

    To implement full text searching there must be a function to create a +12.3. Controlling Text Search

    12.3. Controlling Text Search

    To implement full text searching there must be a function to create a tsvector from a document and a tsquery from a user query. Also, we need to return results in a useful order, so we need a function that compares documents with respect to their relevance to diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-debugging.html postgresql-10-10.12/doc/src/sgml/html/textsearch-debugging.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-debugging.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-debugging.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -12.8. Testing and Debugging Text Search

    12.8. Testing and Debugging Text Search

    The behavior of a custom text search configuration can easily become +12.8. Testing and Debugging Text Search

    12.8. Testing and Debugging Text Search

    The behavior of a custom text search configuration can easily become confusing. The functions described in this section are useful for testing text search objects. You can test a complete configuration, or test parsers and dictionaries separately. diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-dictionaries.html postgresql-10-10.12/doc/src/sgml/html/textsearch-dictionaries.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-dictionaries.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-dictionaries.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -12.6. Dictionaries

    12.6. Dictionaries

    Dictionaries are used to eliminate words that should not be considered in a +12.6. Dictionaries

    12.6. Dictionaries

    Dictionaries are used to eliminate words that should not be considered in a search (stop words), and to normalize words so that different derived forms of the same word will match. A successfully normalized word is called a lexeme. Aside from diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-features.html postgresql-10-10.12/doc/src/sgml/html/textsearch-features.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-features.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-features.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -12.4. Additional Features

    12.4. Additional Features

    This section describes additional functions and operators that are +12.4. Additional Features

    12.4. Additional Features

    This section describes additional functions and operators that are useful in connection with text search.

    12.4.1. Manipulating Documents

    Section 12.3.1 showed how raw textual documents can be converted into tsvector values. diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch.html postgresql-10-10.12/doc/src/sgml/html/textsearch.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,2 +1,2 @@ -Chapter 12. Full Text Search

    \ No newline at end of file +Chapter 12. Full Text Search \ No newline at end of file diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-indexes.html postgresql-10-10.12/doc/src/sgml/html/textsearch-indexes.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-indexes.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-indexes.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -12.9. GIN and GiST Index Types

    12.9. GIN and GiST Index Types

    There are two kinds of indexes that can be used to speed up full text +12.9. GIN and GiST Index Types

    12.9. GIN and GiST Index Types

    There are two kinds of indexes that can be used to speed up full text searches. Note that indexes are not mandatory for full text searching, but in cases where a column is searched on a regular basis, an index is diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-intro.html postgresql-10-10.12/doc/src/sgml/html/textsearch-intro.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-intro.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-intro.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -12.1. Introduction

    12.1. Introduction

    Full Text Searching (or just text search) provides +12.1. Introduction

    12.1. Introduction

    Full Text Searching (or just text search) provides the capability to identify natural-language documents that satisfy a query, and optionally to sort them by relevance to the query. The most common type of search diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-limitations.html postgresql-10-10.12/doc/src/sgml/html/textsearch-limitations.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-limitations.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-limitations.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -12.11. Limitations

    12.11. Limitations

    The current limitations of PostgreSQL's +12.11. Limitations

    12.11. Limitations

    The current limitations of PostgreSQL's text search features are:

    • The length of each lexeme must be less than 2K bytes

    • The length of a tsvector (lexemes + positions) must be less than 1 megabyte

    • The number of lexemes must be less than diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-parsers.html postgresql-10-10.12/doc/src/sgml/html/textsearch-parsers.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-parsers.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-parsers.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -12.5. Parsers

      12.5. Parsers

      Text search parsers are responsible for splitting raw document text +12.5. Parsers

      12.5. Parsers

      Text search parsers are responsible for splitting raw document text into tokens and identifying each token's type, where the set of possible types is defined by the parser itself. Note that a parser does not modify the text at all — it simply diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-psql.html postgresql-10-10.12/doc/src/sgml/html/textsearch-psql.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-psql.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-psql.html 2020-02-10 22:31:45.000000000 +0000 @@ -1,5 +1,5 @@ -12.10. psql Support

      12.10. psql Support

      Information about text search configuration objects can be obtained +12.10. psql Support

      12.10. psql Support

      Information about text search configuration objects can be obtained in psql using a set of commands:

      \dF{d,p,t}[+] [PATTERN]

      An optional + produces more details. diff -Nru postgresql-10-10.10/doc/src/sgml/html/textsearch-tables.html postgresql-10-10.12/doc/src/sgml/html/textsearch-tables.html --- postgresql-10-10.10/doc/src/sgml/html/textsearch-tables.html 2019-08-05 21:29:59.000000000 +0000 +++ postgresql-10-10.12/doc/src/sgml/html/textsearch-tables.html 2020-02-10 22:31:44.000000000 +0000 @@ -1,5 +1,5 @@ -12.2. Tables and Indexes

      12.2. Tables and Indexes

      The examples in the previous section illustrated full text matching using +12.2. Tables and Indexes

      12.2. Tables and Indexes

      The examples in the previous section illustrated full text matching using simple constant strings. This section shows how to search table data, optionally using indexes.